How I Use Claude to Build Full-Stack Apps in Under 4 Hours — The Complete Workflow
Three months ago, I spent 3 weeks building a SaaS dashboard. Last week, I built a more complex one in 3 hours and 42 minutes — using Claude as my co-pilot.
The difference wasn't just "using AI." It was a specific, repeatable workflow that eliminates the bottlenecks most developers hit when coding with AI.
Here's exactly how I do it — step by step, with real prompts.
The Problem: Most People Use AI Wrong
I see developers making the same mistakes:
- ❌ Pasting entire codebases into Claude and hoping for the best
- ❌ Using vague prompts like "build me a dashboard"
- ❌ Not breaking down the problem before asking AI
- ❌ Copy-pasting AI output without understanding it
- ❌ Not using AI for the things it's actually best at
The secret? AI is a junior developer that never sleeps, never gets bored, and has read every Stack Overflow answer ever written. But like any junior dev, it needs clear direction.
My 4-Hour Framework
I divide every project into 4 phases of ~1 hour each:
| Phase | Time | What AI Does | What I Do |
|---|---|---|---|
| 1. Blueprint | 60 min | Generates architecture, tech choices | Define requirements, review plan |
| 2. Scaffold | 60 min | Generates boilerplate, database schema | Set up repos, configure env |
| 3. Build | 60 min | Writes core feature code | Review, test, iterate |
| 4. Polish | 45 min | CSS, error handling, edge cases | Final review, deploy |
Let me walk through each phase.
Phase 1: Blueprint (60 Minutes)
Before writing a single line of code, I spend an hour planning with Claude. This is the most important phase and the one most people skip.
Step 1: Define the Problem
I start with a clear, structured prompt:
I'm building a SaaS product. Here's what I need:
Product: A subscription analytics dashboard
Users: SaaS founders who want to track MRR, churn, and LTV
Data Source: Stripe API
Tech Stack: Next.js 14 (App Router), TypeScript, Prisma, PostgreSQL, TailwindCSS
Timeline: Need a working prototype today
Give me:
1. A complete database schema with all relationships
2. API route structure (REST endpoints)
3. Component hierarchy (what pages/components I need)
4. The order I should build things in (dependency graph)
5. Potential gotchas I might hit
Why this works: Claude generates a concrete plan. No more "I'll figure it out as I go." You get a roadmap.
Step 2: Generate the Database Schema
Then I drill into each part:
Based on the schema you generated, write:
1. Complete Prisma schema with all models, relations, and indexes
2. Seed data (at least 20 records per model) that looks realistic
3. Migration SQL if needed
Format as a single `schema.prisma` file I can copy directly.
Step 3: API Contract
For each API route, give me:
1. The endpoint path and HTTP method
2. Request body/params type (TypeScript interface)
3. Response type (TypeScript interface)
4. Authentication requirement
5. Brief description of what it does
Format as a TypeScript file with all types exported.
Phase 1 output: You now have a complete spec — database schema, API types, component list, and build order. This would take 2-3 days to produce manually.
Phase 2: Scaffold (60 Minutes)
Now let AI generate all the boring stuff.
Generate Project Structure
Set up a Next.js 14 project with:
- App Router (not Pages Router)
- TypeScript strict mode
- TailwindCSS with these custom colors: [your palette]
- Prisma with PostgreSQL
- NextAuth.js for authentication (GitHub + email)
- shadcn/ui component library
Give me the exact commands to run and the folder structure.
Generate Type Definitions
Create a complete `types/index.ts` file that includes:
- All database model types (from our schema)
- All API request/response types
- All component prop types
- Utility types (pagination, API response wrapper, etc.)
Make it fully typed. No `any` allowed.
Generate Utility Functions
Write these utility functions:
1. `apiResponse<T>(data, status, message)` — standardized API response
2. `validateRequest<T>(schema, body)` — Zod validation wrapper
3. `paginate(query, page, limit)` — cursor-based pagination
4. `formatCurrency(amount, currency)` — i18n currency formatting
5. `calculateMRR(subscriptions)` — Monthly Recurring Revenue calc
6. `calculateChurn(subscriptions, period)` — Churn rate calc
Each function should be production-ready with proper error handling.
Phase 2 output: A complete project skeleton with types, utils, auth, and database — ready to build features on top of.
Phase 3: Build (60 Minutes)
This is where the magic happens. I build features one at a time, using a specific prompt pattern.
The Feature Prompt Pattern
For every feature, I use this template:
Build me the [FEATURE NAME] feature.
Context:
- Tech stack: Next.js 14, TypeScript, Prisma, TailwindCSS, shadcn/ui
- Database schema: [paste relevant models]
- API types: [paste relevant types]
Requirements:
1. [Specific requirement 1]
2. [Specific requirement 2]
3. [Specific requirement 3]
Give me:
1. The API route code (app/api/...)
2. The React component code
3. Any Prisma queries needed
4. Test cases for edge cases
Important rules:
- Use Server Components by default, Client Components only when needed
- Handle loading states and errors
- Use optimistic updates where appropriate
Example: Building the Dashboard Page
Build me the main dashboard page.
It should show:
1. Revenue chart (line chart, last 12 months) — use Recharts
2. Current MRR card with % change from last month
3. Active subscribers count
4. Churn rate card
5. Top 5 plans by revenue (horizontal bar chart)
6. Recent transactions table (last 10, with pagination)
Layout:
- Top row: 3 stat cards
- Middle: Revenue chart (full width)
- Bottom left: Top 5 plans chart
- Bottom right: Recent transactions
The key insight: each feature prompt includes full context. Claude doesn't guess — it knows your exact schema, types, and tech stack.
The Review Loop
After each feature, I spend 5-10 minutes reviewing:
- Does it compile? Run the code mentally through TypeScript's checker
- Is the SQL efficient? Check for N+1 queries, missing indexes
- Are edge cases handled? Empty states, loading, errors
- Is the UX solid? Loading spinners, toast notifications, error messages
If something's wrong, I send a correction prompt:
The component you wrote has an issue:
- It doesn't handle the loading state when the API is fetching
- The Prisma query creates an N+1 problem (it queries inside a .map())
- The chart doesn't show anything when data is empty
Fix these three issues. Keep the same code structure.
Phase 3 output: A fully functional application with all core features implemented.
Phase 4: Polish (45 Minutes)
The last phase is about making it feel production-ready.
Error Handling Prompt
Add comprehensive error handling to the entire application:
1. Wrap all API routes in try-catch with proper error responses
2. Add error boundaries to all page components
3. Create a global error page with a "Report Bug" button
4. Add toast notifications for all user actions (success/error)
5. Add retry logic for failed API calls (with exponential backoff)
CSS Polish Prompt
Polish the UI with these improvements:
1. Add subtle animations on page transitions
2. Improve the loading skeleton components
3. Add hover states to all interactive elements
4. Make it responsive for mobile (375px, 768px, 1024px breakpoints)
5. Add a dark mode toggle
6. Fix any visual inconsistencies (spacing, font sizes, colors)
The Final Checklist
Before deploying, I run through this:
- [ ] All routes return proper status codes (200, 201, 400, 401, 404, 500)
- [ ] Empty states look good (no broken layouts)
- [ ] Loading states exist for all async operations
- [ ] Responsive on mobile, tablet, desktop
- [ ] No console errors
- [ ] Database queries are optimized (no N+1)
- [ ] Environment variables are properly set up
- [ ] Auth is properly protecting all routes
Phase 4 output: A polished, deployable application.
The Results
Using this workflow, I've built:
| Project | Time | What It Does |
|---|---|---|
| SaaS Dashboard | 3h 42m | Analytics, billing, user management |
| E-commerce Admin | 4h 15m | Product CRUD, orders, inventory |
| AI Writing Tool | 3h 20m | Content generation with templates |
| Project Tracker | 2h 55m | Kanban boards, time tracking |
| Customer Support App | 3h 08m | Ticket system, knowledge base |
Each one is production-quality with auth, error handling, and responsive design.
Key Takeaways
- Spend more time planning — The blueprint phase saves hours of rework
- Provide full context in every prompt — Claude is smart but not psychic
- Build one feature at a time — Don't try to generate the whole app at once
- Review every output — AI makes mistakes, catch them early
- Use AI for boilerplate — It excels at generating types, schemas, and utilities
The Future is Human + AI
I'm not saying AI replaces developers. I'm saying a developer using AI effectively will replace one who doesn't.
The workflow I described isn't about typing less. It's about spending your mental energy on the things that matter — architecture decisions, UX design, business logic — and letting AI handle the tedious implementation details.
Try it on your next project. Time yourself. I'd love to hear your results.
What's your AI development workflow? I'm always looking to improve mine. Drop a comment!
If you found this useful, follow me for more AI development tips. I write about practical ways to use AI tools to ship faster and build better products.
Top comments (0)