Capstone: ship a real app
اختتامی منصوبہ: ایک حقیقی ایپ ریلیز کریں
45 min read
Three ways to see it
Shipping is the only act that matters. Reading nine lessons builds knowledge; shipping a fifth thing turns knowledge into skill. The deliverable is a GitHub repository URL, a live URL, a one-page architecture diagram, and an AI-prompt log. Five days, four pages, one feature each. Day 1 set up. Day 2 build. Day 3 finish. Day 4 polish and deploy. Day 5 user test with two real shopkeepers from Anarkali. If any day slips, cut features, not quality. The point is not perfection; it is to feel what shipping actually demands.
Way one, the architecture. Next.js 15 App Router on Vercel. Postgres on Neon free tier (or Supabase). Drizzle ORM. NextAuth or Lucia for auth with email-and-password or Pak-ID OAuth (if you have access). Tailwind for styling. Four pages: /login, /members, /loans, /reports. One protected layout that wraps everything except /login. Roles: admin (the elder shopkeeper) and member. Admin can create members, create loans, mark loans paid. Member can see their own balance and outstanding loan. One database with three tables: users (id, name, role, phone, password_hash), pools (id, monthly_amount, start_date), loans (id, user_id, amount, granted_at, repaid_at).
Way two, the five-day plan. Day 1, set up. Bootstrap with create-next-app, push to GitHub, deploy a blank page to Vercel, create the Neon Postgres, write the Drizzle schema, run the first migration. Day 2, build auth and members. Login screen, signup hidden behind admin invite, role-based protected layout, /members CRUD. Day 3, build loans and reports. /loans CRUD, grant a loan, mark repaid, /reports page with a Drizzle query that shows monthly pool size, total loaned, total outstanding. Day 4, polish. Mobile-first audit on a Telenor 4G phone, accessibility scan, error states, empty states, loading states. Day 5, user test. Sit with two shopkeepers in Anarkali. Watch them try. Note every confusion. Fix the top three the same evening.
Quick check
Quick check: what makes modern AI different from a rule-based program?
The why-tree
Why-tree level one: why a real user? Because two shopkeepers from Anarkali will reveal more in fifteen minutes than fifteen days of guessing. They will tap places you did not expect, mispronounce a label, fail to find the back button, and abandon a flow at exactly the line you spent two hours on. Building without watching real users is the most common reason Pakistani student projects never become products.
Try this with Claude
AI-edge prompt to try with Claude on Day 1: 'I am building a 4-page karobaar-loan circle app in Next.js 15 App Router on Vercel with Postgres on Neon and Drizzle ORM and NextAuth. The users are 20 Lahore shopkeepers, mostly Urdu-first, one admin and the rest members. Plan the database schema, the route map, the auth flow, and a day-by-day 5-day build plan. Mark every place where you would normally over-engineer for an MVP this small and propose what to skip. Output a single architecture.md.'
Sources
Sources and further reading. Next.js Learn course (nextjs.org/learn). Drizzle ORM docs (orm.drizzle.team). NextAuth and Lucia docs. Neon and Supabase quickstarts. Vercel deployment docs. Excalidraw for diagrams (excalidraw.com). The Anand Kumar Super-30 case study. The Lean Startup by Eric Ries on shipping minimum viable products. The Pragmatic Programmer by Hunt and Thomas. Pakistan Software Houses Association PASHA case studies on first-time SME shipping.