Skip to main content
Building with AI (Vibe Coding)

⏱ About 20 min20 XP

Application Build Studio

This lesson is a studio session: you apply every technique from this module to build a complete, working application end to end. The application is small enough to be realistic in a single session but large enough to require every skill you have studied — the build loop, multi-file prompting, interface design, data modeling, iteration discipline, version control habits, and steering the AI. You are not just practicing isolated techniques; you are integrating them into a coherent build process.

The Application: A Personal Reading Log

You will design and build (on paper, as a complete specification and prompt sequence) a personal reading log application with the following features: 1. Add a book: a form that accepts a title (required, string), author (required, string), status (required, one of: 'reading', 'finished', 'want-to-read'), rating (optional, integer 1-5, only valid when status is 'finished'), and notes (optional, string). 2. View the reading list: a page that displays all books, filterable by status. 3. Edit a book: the ability to update any field of an existing book record. 4. Delete a book: the ability to remove a book from the list. The application has three layers: a front-end (HTML/CSS/JavaScript), a back-end API (HTTP routes), and a database (one table: books). This specification is the describe phase for the entire project. From it, you will derive a complete build plan — one that any developer (or a well-prompted AI) could follow to produce this application.

A Specification Is a Promise

A specification is a promise from the builder to the user: the application will do exactly these things, in exactly these ways. Writing a precise specification before building forces you to resolve ambiguities before they become bugs. Every vague requirement ('the form should be user-friendly') is an invitation to a misalignment between what was built and what was needed. The time to resolve vagueness is in the specification, not in the debugger.

Build plan structure: for each of the four features, you will produce: A. Database component — the table schema or schema change required. B. Interface specification — the HTTP route(s) that support this feature, with full input/output/error definitions. C. Anchor prompt — the one-paragraph project brief excerpt relevant to this feature. D. Scope prompt — the precise instruction for the AI for this loop. E. Verification checklist — the specific inputs you will test and the outputs you expect after this loop. This five-part structure for each feature is the build loop at scale made explicit. Every concept from Lessons 1 through 8 appears: the loop (A-E), multi-file prompting (C), interface design (B), data modeling (A), iteration discipline (E), and AI steering (C+D). Version control integration: at each milestone (after schema is finalized, after each route is verified, after front-end is connected), record a commit message describing the milestone. These form the commit history of your project.

Match each build plan element to the lesson where its technique was introduced.

Terms

Database schema with typed columns and relationships
Interface specification with input, output, and error definitions
Anchor prompt with project brief excerpt
Verification checklist with specific inputs and expected outputs
Commit message at each milestone

Definitions

Lesson 3: Connecting the Pieces
Lesson 2: Prompting Across a Codebase
Lesson 5: Iterating Without Breaking Things
Lesson 6: Version Control as a Safety Net
Lesson 4: Working With Data and APIs

Drag terms onto their definitions, or click a term then click a definition to match.

Integrating the Full Loop

With the build plan complete, the actual build proceeds as a sequence of bounded loops — each one applying the full four-phase cycle. The discipline of this studio is not speed. The discipline is completeness: every loop has an explicit describe phase (your scope prompt), an explicit generate phase (the AI's output), an explicit review phase (reading the diff against the interface specification and verification checklist), and an explicit refine phase (correction prompt or acceptance). Two integration checkpoints deserve particular attention: Checkpoint 1 — Back-end complete, front-end not yet started: at this point, verify every route manually (using a tool like curl or Postman, or by tracing through the logic on paper). Confirm every interface specification is honored. Commit this state explicitly before touching any front-end code. Checkpoint 2 — Front-end and back-end connected: at this point, trace through each feature end to end. For the 'Add a book' feature: submit a valid book, confirm it appears in the database (or the in-memory store for the paper build), confirm it appears in the reading list view. For the 'Edit a book' feature: change a field, confirm the change persists. For 'Delete': confirm the record is removed and no longer appears. This is manual integration testing — not automated, but thorough. Version control at these checkpoints is mandatory: a commit after checkpoint 1 and a commit after checkpoint 2 are the two most important commits in the project.

The Paper Build Is a Real Build

You do not need a running computer to practice these skills. A paper build — writing out every prompt, every interface specification, every verification checklist, every commit message — exercises the same planning and decision-making muscles as a live build. The habit of thoroughness developed on paper transfers directly to live development.

In the Application Build Studio, why is checkpoint 1 (back-end complete, front-end not started) an important commit point?

A builder has written a complete interface specification for all four features before building any code. A classmate argues this is wasted time since the specification will change anyway. What is the strongest counter-argument?

Full Build Plan for the Reading Log

  1. Produce a complete build plan for the Reading Log application described in this lesson. Work through all four features (Add, View/Filter, Edit, Delete) in order.
  2. For each feature, write:
  3. A. The database table schema or schema change (column names, types, constraints, default values).
  4. B. The interface specification for every HTTP route the feature requires (method, URL, request format, success response, error response).
  5. C. A one-paragraph anchor prompt for the AI (project summary + conventions relevant to this feature).
  6. D. A precise scope prompt for the AI (exactly what to generate for this loop).
  7. E. A verification checklist: at least three specific test cases (input + expected output) you would use to confirm this feature works correctly.
  8. At the end, write the commit messages for your two integration checkpoints.
  9. Exchange your build plan with a partner. Without any additional context, ask them: could you build this application end to end using only this build plan? Identify every gap, ambiguity, or missing specification. Revise until the build plan is complete.