DEV Community

Onkar Deokate
Onkar Deokate

Posted on AI-assisted

I built a parking marketplace in five weeks. The AI wrote most of the code. I did the other part.

For the last eleven posts I showed you what ParkEase does: a peer-to-peer parking marketplace for India, with drivers, owners, valets, car washers and an admin panel, all live as a demo.

I left something out. Almost every line of it was written by an AI.

Not autocomplete. Not "it suggested a function and I tweaked it". An AI agent, Claude Code, opened files, wrote features, ran the tests, read the failures, fixed them, and opened the pull requests. Five weeks, 29 merged PRs, roughly 86,000 lines of TypeScript, 3,246 unit tests and 1,080 integration tests against a real Postgres.

So the honest question is: what did I do?

The part that isn't typing

Here's how the work actually split.

I decided what to build, and what not to. ParkEase has 34 architecture decision records. Money is integer paise in a double-entry ledger. Double booking is refused by the database, not by application code. The app never computes a price. Every one of those is a decision a human made and wrote down, because an AI will happily make a different, reasonable-sounding decision every session if you let it.

I picked between options, not from a blank page. Before any significant screen was built, the AI had to render two or three design directions and show them to me. ParkEase's look, "Wayfinder", was chosen from three rendered options. I'm not a designer. I am very good at saying "that one".

I wrote the rules the AI works under. A project file the agent reads at the start of every session: the stack, the ten rules that matter most, what's forbidden ("don't use floats for money", "don't call external APIs inside database transactions"), and where the deeper documents live.

I caught it when it lied. Not maliciously. But an AI that has written a payment path "security-consciously" will describe the security properties of its own code and call that a security review. It isn't one. More on that in a later post.

I kept the receipts. Every hard-won fix went into a file the AI reads before every task. By the end that file had 246 entries.

The part that is typing

The AI did the volume: scaffolding a monorepo with five apps and six packages, writing NestJS commands and Drizzle schemas, Expo screens, Zod contracts, migrations, tests, Dockerfiles, CI workflows. It debugged its own failures, usually well, sometimes by trying random things until I stopped it.

And it was fast in a way that changes what "a side project" means. Things I'd normally cut for time, like an admin panel with an audit log nobody can edit, a surge heat map, or load tests with 100 drivers racing for 10 slots, all fit.

What surprised me

Speed wasn't the bottleneck. Trust was. The AI could produce a feature in an hour. Knowing whether that feature was right took the rest of the day. Most of what I built around the AI, the workflow, the gates, the learnings file, exists to make its output trustworthy without me re-reading every line.

It forgets everything, every session. The model doesn't remember last Tuesday's mistake. The project has to. That turned out to be the most important design problem of the whole build.

Process beat prompting. Clever prompts helped a little. A fixed, enforced workflow helped enormously.

That's what this series is about. Not "AI wrote my app, wow", but the machinery that made AI-written code something I'd put my name on: the process, the instruction files, the skills, the learnings loop, the tests, and the places it all went wrong.


Next: the seven-phase workflow every change went through, from "think" to "ship", and the one rule that stopped it from turning into ceremony.

ParkEase is a peer-to-peer parking marketplace for India, built solo with Claude Code.
Code: https://github.com/Deonkar/parkease ยท Demo: https://parkease-app-six.vercel.app

Top comments (0)