Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Browse all series

Vibe Coding Workshop

Hi, I'm Josh, the creator of Wender. In this series, I'll teach you everything I've learned about how to treat vibe coding like a craft... rather than a magic trick. We're not chasing weekend Airbnb clones. No, we're interested in practical workflows for building better applications using AI. You'll learn about writing better prompts, what to do when things go sideways, and how to review diffs like a pro!

Series trailer thumbnail

Progress

Series Info

Episodes
11
Run Time
1h 55m
Difficulty
Intermediate
Last Updated
Jan 15, 2026
Version
Latest

Series Episodes

  1. Episodes (11)
    1. Golden Rule

      We're going to tackle how to manage context so our LLM helpers don't suffer from context rot and start making bad choices. Along the way we'll learn practical tricks for working with big codebases and tools like Cursor so we can actually ship reliable vibe coding apps.
    2. Getting Started

      Let's get hands-on with vibe coding by building small throwaway prototypes in V0 to explore the core idea of an infinite canvas app with movable iframe tiles. Instead of handing a huge PRD to an LLM we will iterate piece by piece, discover the minimal frontend stack like Next.js and React, and let those prototypes teach us what backend pieces we actually need.
    3. Prompting Tips

      Okay, now that we prototyped and picked a direction, we need to learn how to change an existing codebase without pulling the wrong block out of the Jenga tower. We're going to work on letting us select multiple artboards with Shift and on managing the LLM context in tools like Cursor so the bot makes focused safe edits and the UI remains predictable.
    4. Vibe Reviewing

      Now that we used the explain method to add multi-artboard dragging and the LLM produced a bunch of new code, we need to actually evaluate whether that code is any good and where to improve it. We'll open a fresh chat as a new agent, run a branch diff, and ask it to review like a professional React engineer, grouping issues into critical, should fix, and low priority so we can fix the big stuff like duplicated logic first and iterate from there.
    5. Making Plans

      Now that we've been breaking work into tiny chunks, we're going to build a speculative feature called Brand Central and use a detailed technical plan to help an LLM manage the large refactor. We'll wire up a modal that pulls together the images tab and the properties tab, add a few unit tests to keep us safe, and iterate on the design in the next lesson.
    6. Vibe Debugging

      All right, we hit a bug where the LLM's quick fixes left our app full of junk, so we're going to learn how to wrestle the problem back under control by rolling back checkpoints and starting a fresh agent. We'll get the model to think through the existing logic step by step with the explain and analyze prompts, use targeted logs and model switching to find the root cause, and only then apply clean fixes.
    7. Vibe Coding Tools

      Now that we've finished most of the course in Cursor, let's step back and look at some other tools I use - like Next.js, TypeScript, and Supabase - to keep Wender fast and flexible. We'll also cover practical advice on avoiding model dependence and on basic security and Git habits that will save us a lot of pain later.
    8. Annoying Things Agents Do

      Now that we've built with coding agents, let's tackle the common annoyances they create and learn how to keep them in line. We'll use Cursor rules, treat the app as production-grade when needed, run audits, and create review agents so our code stays secure, performant, and readable.

Continue Learning