Module 1 · Chapter 1: Building with AI
What building with AI means
In short
AI writes most of the code; you decide, read, test and release. A prototype and a ready app can look the same; the difference is in what you cannot see. Start with a small tool for your own team.
After this lesson you can
- Explain what AI does and what the builder still does when making an app
- Tell a quick prototype apart from an app ready for other people to use
- Choose a small first app that is worth building
Terms in this lesson
Understand
Building an app with AI is not the same as telling AI to make an app and waiting for it. AI, especially a coding agent that can read files, write code and run commands on its own, does most of the typing. It writes forms, server routes, database tables and tests in minutes. Work that once needed a small team can now be started by one person.
But writing speed is not the hard part of building an app. The hard part is deciding what to build, making sure what was built is right, and keeping the app alive once other people use it. That part stays your job. In this book you are called the builder: the person who decides, reads, tests and releases. AI is the partner that writes fast, never tires, and is sometimes confident about the wrong thing, exactly as you learned in AI Foundations.
The whole book follows one loop: Plan, Build, Check, Release. In Plan you write what gets built and how you will know it is right. In Build AI writes code, one small change at a time. In Check you read that change and run the tests, not just read the AI's report. In Release you move the app to a server in a way that can be undone. AI helps in all four stages, but the decisions in each stage are yours.
Two things often get mixed up: a prototype and an app ready for other people. A prototype is a quick version to see whether an idea makes sense. Its data can be fake, only you use it, and if it breaks nobody is hurt. How to make one is covered in the making prototypes lesson, and AI is very good at making them.
An app ready for use must hold up against things that never happen in a prototype: real data that must still be there tomorrow, people who may only see their own data, empty or odd inputs, two people saving in the same second, secret keys that must not leak, and a new version that must be reversible if it breaks. The gap between the two is not about looks. A prototype and a ready app can look exactly the same on screen. The difference is in what you cannot see, and those things are what most of this book is about.
Your first app should be small, real and cheap if it fails. Pick a problem that you or your team handle today with a spreadsheet, a group chat or paper notes, for a small group of people you know and can ask. Avoid sensitive data such as health data, personal financial data or ID numbers until you have finished the security chapter. Also avoid payments and sign-up open to the public. A good size: the first version can be done in a few days, with one kind of user and one main flow. The example you will often see in this book is a team equipment-loan tool: who borrowed what, when, and when it came back.
To be honest from the start, here is what this book promises and what it does not. When you finish it, you can build a small web app with AI, read the changes it writes well enough to catch common mistakes, write tests, keep a history of your work with version control, and release the app to a server in a way that can be undone. You will also know when a job is beyond you and needs an experienced engineer.
This book does not promise that you will become a senior engineer, or that AI will make a large app without problems. A coding agent can write hundreds of tidy-looking lines and still be wrong in one place that matters. It can report tests passing when those tests were never run. It can change files you did not ask about. These things happen to us too, and the case at the end of each chapter tells some of them, including how we found out and the rule we keep now.
The order of the book: four foundation chapters (this one, the web app map, setting up your machine and from idea to spec), then core skills such as reading code and asking for small changes, then tools in practice such as the terminal, git and releases, then a more mature way of working with test-first and separate reviewers. There are four projects along the way, and each builds on the one before.
Before
The prompt
Make me a complete equipment-loan app for the office.
What came back
The agent created dozens of files: a sign-in page with three roles, email reminders, a QR code for every item, monthly reports and a chart dashboard. At the end it wrote: "The app is complete and every feature works well." No test was run, and the email sending used a sample address and key that never existed.
After
The prompt
Goal: I want a first version of a team equipment-loan tool that replaces our spreadsheet. Reader: the five people on my team; one person, me, manages the items. Material: our spreadsheet columns today are item name, borrower, loan date, return date. Limits: no email, roles or reports yet. Do not write code yet. Shape: a short plan with the pages, the data kept and the order of tasks, plus the questions I need to answer. Check: every task has a way to check that it is done.
What came back
The agent wrote a one-page plan: two pages (item list and loan form), one loans table with four columns, and five ordered tasks, each with a way to check it. Below it were three questions: may one item be borrowed by two people at once, must the return date be filled in when borrowing, and who may delete a record.
What changed
- The better request uses the Foundations checklist: goal, reader, material, limits, shape, check.
- The limit "do not write code yet" makes decisions happen in the plan, not in hundreds of lines of code.
- The agent's questions are decisions that really are yours; answer them yourself rather than letting the agent guess.
Common mistake
- Mistake
- Accepting an AI's "done, all tests pass" report without seeing the test output yourself.
- Why it hurts
- A model writes reports based on what should have happened. A convincing report can hide tests that never ran or a feature that only works on the easiest example, and you find out only when users complain.
- Do this instead
- Ask for the commands that were run and their output, rerun them yourself when needed, then try the feature as an ordinary user before calling it done.
Common mistake
- Mistake
- Picking a large, important first app, such as a payroll system or an app open to the public.
- Why it hurts
- A beginner's mistake in an app like that hits money, personal data or strangers straight away. You also do not yet have the habits of testing, version control and rollback to recover, so one mistake can make you or your team stop trusting this approach.
- Do this instead
- Start with a small tool for your own team whose data is not sensitive. Raise the stakes after you finish the first project and the security chapter.
Try
Sorting card
While building the equipment-loan tool, which work can you hand to AI and which stays yours?
Explaining what an error message means
Suggesting column names for the loans table
Deciding whether one item may be borrowed by two people at once
Deciding when a new version is released to the team
Writing a first draft of the loan form code
Reading the test output and deciding whether a change may be accepted
6 cards left
You are just starting and want to build a first app within a week. Which is the best fit?
A prototype that looks finished often hides these problems. Guess what each means for a ready app first, then open the card.
Prototypes often keep data in memory. A ready app keeps it in a database and has backups.
A ready app checks on the server who is signed in and what they may see or change.
A ready app rejects data that makes no sense, and a test proves it.
A ready app keeps the old version so it can go back with one command if the new one breaks.
Take home
Before you pick your first app
- The problem is real and handled today with a spreadsheet, messages or paper
- Its users are few and you can ask them directly
- Its data is not sensitive: no health data, personal finances or ID numbers
- No payments and no sign-up open to the public
- The first version has one kind of user and one main flow
- If the app breaks, the team can go back to the old way for a while
Ask AI to help screen ideas for a first app
Works with any AI assistant.
Your prompt
Goal: I want to choose one small first app to build with AI in a few days. Reader: myself; I have never worked as a programmer. Material: my ideas below, each with who its users are and how the work is done today. ‹daftar-ide› Limits: do not choose for me. Do not add features to my ideas. Flag ideas that use sensitive data, payments or public users. Shape: a table with columns idea, number of users, sensitive data yes or no, estimated size of the first version (small, medium, large), and risk if it breaks. Check: for each idea, name one thing I need to confirm myself before choosing.
What went wrong for us
A "done" claim that was only assumed
- Context
- We built a large feature with several AI agents. Each implementer agent handed its work to a separate reviewer agent that did not see the implementer's conversation.
- What happened
- One implementer reported its task done with all tests passing. The reviewer ran its own checks and found that part of what was reported as passing had only been assumed, never run.
- Impact
- Nothing reached users. The task went back to the implementer and cost one extra round.
- Root cause
- The model wrote a convincing report based on what should have happened, not on what it actually ran.
- What we did
- The implementer ran the missed checks, fixed what failed, and the reviewer checked again.
- The guard we keep now
- Every agent task is reviewed by another agent that runs its own checks. A claim without command output as evidence is not accepted.
The lessonAn AI's report is not evidence; the output of the commands it ran is.
What it means for your workWhen AI or a colleague says a job is done, ask for output you can see for yourself and check part of it before you also call it done.
