Een complete webapp bouwen

20 min Gevorderd Pro

Een complete webapp bouwen

In deze les bouwen we een volledige webapplicatie met Claude Code — van idee tot deployment. We gebruiken een takenlijst-app als voorbeeld, maar de aanpak werkt voor elk type webapp.

Fase 1: Planning

Begin niet met code, maar met een plan:

Ik wil een takenlijst app bouwen met deze features:
- Taken toevoegen, afvinken en verwijderen
- Taken categoriseren met labels
- Filteren op label en status
- Data opslaan in een database

Tech stack: Next.js 14, Tailwind CSS, Prisma, SQLite.
Maak een implementatieplan in volgorde van bouwen.

Claude maakt een gestructureerd plan:

1. Project setup (Next.js, Tailwind, Prisma)
2. Database schema (tasks, labels)
3. API routes (CRUD voor tasks en labels)
4. Frontend: TaskList component
5. Frontend: AddTask formulier
6. Frontend: Filters en labels
7. Styling en responsive design
8. Testen
9. Deployment
Tip

Vraag altijd eerst om een plan. Het voorkomt dat Claude op eigen houtje beslissingen maakt over architectuur die je later moet terugdraaien.

Fase 2: Project setup

Begin met stap 1: zet het project op. Initialiseer
Next.js 14 met TypeScript, Tailwind CSS en Prisma.
Configureer SQLite als database.

Claude voert de setup commando’s uit:

npx create-next-app@latest todo-app --typescript --tailwind
cd todo-app
npm install prisma @prisma/client
npx prisma init --datasource-provider sqlite

Na elke stap: test of het werkt (npm run dev), commit.

Fase 3: Database

Maak het Prisma schema voor de tasks en labels.
Een task heeft: id, title, completed, createdAt.
Een label heeft: id, name, color.
Een task kan meerdere labels hebben.

Claude schrijft het schema en maakt de migratie:

model Task {
  id        String   @id @default(cuid())
  title     String
  completed Boolean  @default(false)
  createdAt DateTime @default(now())
  labels    Label[]
}

model Label {
  id    String @id @default(cuid())
  name  String
  color String
  tasks Task[]
}
Info

Door elke fase apart te bouwen en te testen, voorkom je dat een fout in de database pas opduikt als je de frontend bouwt. Test elke laag voordat je verder gaat.

Fase 4: API routes

Maak API routes voor tasks:
- GET /api/tasks — lijst alle taken
- POST /api/tasks — maak nieuwe taak
- PATCH /api/tasks/[id] — update taak (afvinken)
- DELETE /api/tasks/[id] — verwijder taak

Gebruik de Prisma client. Voeg error handling toe.

Claude bouwt elke route met proper error handling en TypeScript types.

Fase 5: Frontend

Bouw de frontend pagina met:
- Een input veld bovenaan om taken toe te voegen
- Een lijst van taken met checkboxes
- Een delete knop per taak
- Een filter balk voor labels
- Gebruik fetch() voor de API calls
- Tailwind voor styling, mobile-first

Dit is de grootste stap. Laat Claude het in delen doen:

Begin met het TaskList component en de AddTask form.
De filters doen we daarna.

Fase 6: Deployment

Als alles werkt lokaal:

Bereid de app voor op deployment naar Vercel.
Check of alle environment variables goed staan
en of de database migratie werkt in productie.

Claude helpt met:

  • vercel.json configuratie
  • Environment variables instellen
  • Database migratie script
  • Build en deploy commando’s
Let op

Test altijd lokaal met npm run build voordat je deployt. Build errors die je lokaal niet zag, kunnen je deployment blokkeren.

Het complete plaatje

Het hele proces in een notendop:

FaseSessieDuur
Planning15 min
Setup110 min
Database1-215 min
API220 min
Frontend2-330 min
Styling315 min
Deployment3-415 min

Totaal: een complete webapp in 2-4 Claude sessies.

Checkpoint bereikt!

Wat je nu moet kunnen:

Je weet nu hoe je een complete webapp bouwt met Claude:

  • Begin altijd met een plan voordat je code schrijft
  • Bouw in lagen: database, API, frontend
  • Test en commit na elke fase
  • Deploy pas als alles lokaal werkt

Probeer het: kies een simpele app (takenlijst, notities, bookmarks) en bouw het van begin tot eind met Claude.

Pro

Premium les

Upgrade naar Pro om "Een complete webapp bouwen" volledig te bekijken.

Maak een account