Vibecoding Crash Course: Build and Deploy a Web App with AI Assistance
v0.4.0 - May 17, 2026
Vibe coding is a term coined by Andrjey Karpaty. Originaly used to descirbe a practice of AI-assisted approach to professional development it also applicable for using LLMs by non-technical folk. Like me and you.
The guide below has two goals. First, it teaches a disciplined methodology for AI-assisted development inspired by metacoding. Second, it gives you a concrete technical path to get a modern web app online with GitHub, Firebase Hosting, Firestore, and GitHub Actions.
Default mode keeps the methodology front and center while leaving technical details collapsed inside each step. Full mode reveals the entire workflow, including setup, delivery, and deployment details.
Development Guide
The main path teaches disciplined AI-assisted development habits. The optional technical detail under each step turns those habits into a real GitHub and Firebase shipping workflow.
Guide mode
Default keeps technical details collapsed. Full reveals them inside the workflow.
Guide progress
0 of 10 visible steps completed
0%
Start with conversation, not code. Use the LLM you prefer to turn your idea into a product requirements document that defines what you are building and what the first release must prove.
Leave this step with concrete files rather than a vague chat history:
- prd.md with users, problems, flows, MVP scope, and release criteria
- entities.json with the main data objects and fields you expect to store
- screens.json with the core screens, states, and user actions
- integrations.json with external services such as auth, payments, email, or analytics
- tasks.json with the first small implementation slices ordered by priority
Pick one AI-assisted development instrument for the first shipping cycle and stay consistent. Switching tools every hour usually creates noise instead of progress.
Choose the environment you want to learn and use it consistently:
Antigravity
Best for: teams exploring structured AI-assisted workflows
Claude Code
Best for: terminal-first work with strong repo inspection and planning
Codex
Best for: shared-workspace implementation, review, and guided execution
Cursor
Best for: editor-centric development with fast chat and inline editing
GitHub Copilot
Best for: VS Code users who want AI support inside familiar GitHub workflows
Create a minimal modern web app scaffold and make it runnable before asking the agent for feature work. A working baseline keeps later diffs small and understandable.
Before you move on, make sure the repo already has:
- a package manager lockfile
- a .gitignore file
- an .env.example file for configuration that will come later
- a local development command
- a lint, test, and build story, even if the first tests are still basic
Now make the workflow explicit. Metacoding gives the coding agent a process to follow instead of leaving the collaboration to ad hoc prompting.
Use this as the reference for the workflow:
Do not jump straight from requirements into a large implementation prompt. First ask the agent to review the PRD and JSON files, identify missing decisions, and break the work into small verifiable slices.
A useful review request should ask for:
- gaps, contradictions, and risky assumptions in the product definition
- a proposed architecture and repository structure
- the first small vertical slice to implement
- a TDD-friendly test strategy for that slice
- clear acceptance criteria for each upcoming task
Connect the project to real infrastructure early so every meaningful change can be exercised in a realistic environment. This keeps the first shipping loop honest.
For this guide, the default delivery stack is:
- GitHub for the remote repository
- Firebase Hosting for deployment
- Firestore as the default database
- GitHub Actions for CI/CD
Start with the smallest vertical slice in the implementation plan and use test-driven development. The goal is one real capability that can be checked, not a broad unfinished system.
The collaboration pattern should stay disciplined:
- choose exactly one task from the implementation plan
- define the expected behavior before writing production code
- ask the agent to add or update the failing test first
- ask for the smallest implementation that makes the test pass
- review the diff before you accept it
After each implemented slice, use the product yourself. Manual validation catches integration issues and UX gaps that a passing unit test may miss.
Every iteration should end with automated verification. This is the discipline that turns AI-assisted coding into a reliable habit instead of a demo-only workflow.
Use the coding agent as a repair loop, not as a substitute for checks:
- run the checks yourself or ask the agent to run them
- capture the failing output
- ask for a minimal fix tied to the actual failure
- rerun the same checks until they pass cleanly
Close the loop by documenting what changed, preserving the project context, and publishing the iteration. Good habits are built when the docs and the shipped product stay in sync.
Before you call the iteration done:
- update _meta files to reflect decisions and completed tasks
- record the new state of the implementation plan
- make sure the README or operator notes still match reality
- note the next smallest task instead of jumping to a broad rewrite