The Storyone non-coder, twelve months

From “What's npm?”
to thirty shipped apps.

I'm an accountant and tax preparer in New Jersey. No computer-science degree, no bootcamp, no prior code to my name. In January I installed Claude Code, asked it what npm meant, and then I didn't stop.

Most vibe-coding content is written by someone who built one thing once, on a good weekend, and moved on. This is the other thing — what happens when a non-programmer stays. Through platform failures, an account lockout I had to fight, whole architectures I tore down and rebuilt, and a running argument with an AI I told to push back on me. The sustained part is the story. The one-weekend demos never get there.

~30 apps 500+ commits in ~60 days under $700 total zero CS background

The 51/49

how it worked

The productive sessions all had the same shape: I brought the direction and the judgment — I know the users, the tax work, the actual problem — and the AI brought execution and honest resistance. Fifty-one to forty-nine, mine. The moment that ratio flips — the AI turns agreeable, or I go passive and just accept output — the quality falls off a cliff. Every real breakthrough here came out of friction, not frictionless compliance. So the timeline below isn't a victory lap. It's the record of a partnership that argued its way to working software.

The Timeline

seven phases

Reconstructed from commit history across 37 repositories, GitHub creation dates, and the conversation logs. The conversations explain why; the commits show what. Together they're the receipts.

Before Jan 25 · Pre-History

The years of things that didn't stick.

Before any of this, I'd been trying to build software for a while and failing at it. ChatGPT-era automation scripts. Browser-scraping hacks for a claims portal I used in a side line of insurance work. A couple of half-built apps that never shipped. I tried Replit, I tried a few AI coding tools — nothing held together long enough to become a habit. The itch was real; the workflow wasn't.

the pattern before Claude Code: started, stalled, abandoned
Jan 25–27 · Ignition

The install fought back. Then it worked.

Getting Claude Code to run at all was a three-day battle — Node, Git Bash, environment variables, an execution-policy wall in PowerShell. My very first question to it was, in plain words, “what's npm?” Once it ran, the first real thing I built was a script to pull documents out of that claims portal — and I set the two rules I've kept ever since: explain it without jargon, and don't ask my permission for every step.

first question asked, verbatim: “What's npm?”
Jan 28–31 · Strategy & Architecture

One constraint that shaped everything after.

Before writing much more, I set the rule the whole portfolio would answer to: automation has to make me more indispensable, never more replaceable. From there the foundations got laid fast — a tax-planning engine that parsed hundreds of organizer PDFs into a searchable database, a document parser built to survive every broker's ugly statement format, and the first seed of what became a flood-claims pipeline.

the north star: keep the human indispensable
Feb 1 · The Stack Decision

The fork in the road was a bill.

One choice defined the architecture of everything that followed. Replit was flexible but the metered pricing was unpredictable and climbing. The alternative — Claude Code plus Vercel plus Supabase — was a flat, knowable monthly cost. I picked the boring, predictable stack. Every app in this portfolio is built on that one Tuesday decision.

chose flat + predictable over metered-and-climbing
Feb 4–28 · App Explosion

Nineteen repos in twenty-four days.

Once the stack was settled, the dam broke. In February alone I spun up nineteen new repositories spanning tax, fitness, education, coaching, accounting, auditing, language learning, and a cryptographic timestamping experiment. A tax report-card scanner shipped twenty-one commits on its first day. By the 22nd I could say out loud: eleven working apps, one month, under seven hundred dollars.

19 repos in 24 days · 11 apps · under $700
Mar 1–15 · Maturation & Infrastructure

The boring parts that make it real.

Building the thing is the easy half. This stretch was billing (Stripe subscriptions and metered charges), test harnesses across five apps at once, multi-tenant plumbing, an embeddable widget, and an iOS App Store build. The lesson I'd give my earlier self: you need a test harness at app number three, not app number twenty-seven — because the SAT-tutoring monorepo alone would go on to eat 146 commits, and nothing that big stays sane without one.

most-worked repo: 146 commits, one app
Mar 16–22 · Platform Integration

The apps stopped being apps and became a platform.

The last stretch is where the pieces connected. A flood-claims pipeline went from manual PDF grind to an automated pipeline with a dashboard. An email-answering system got built end-to-end in a single day. A Claude-vs-Claude test runner came online to grade the other apps. And I unified Google/Apple sign-in across four consumer apps at once. On the busiest day I created four new repositories before dinner.

500+ commits · 37 repos · ~60 days · 4 new repos in one day

Where it goes from here

read next

The timeline is the map. The living work is everywhere else on this site — and it's still going. Every app above kept shipping past this window: hardening, monetization, whole rewrites when the first design was wrong.

If you want the day-to-day of how it actually gets built — the scars, the tools I tried, the frustrations that bit — start with the Blog, where each field note is welded to a real thing I tested. If you want the verdicts — every platform, model, and connector I ran, the wins and the ones I dropped on sight — read the Factory Reviews. No hype in either. Just what happened, and the receipts.