FlashyCardy
A designer who decided to ship code.
A flashcard SaaS I built and deployed myself. The point wasn’t to learn Next.js. It was to own a product end to end, including the parts designers usually hand off: database, auth, billing, deployment and debugging at 11pm. Live on Vercel
- Type
- Solo project
- Year
- 2026
- Status
- Live on Vercel
- Stack
- Next.js 15, TypeScript, Clerk, Neon and Drizzle, Tailwind, shadcn/ui

What I built001
01
Sign in and protected pages with Clerk.
Logged in users go straight to their dashboard.
02
A database for decks and cards.
Each user’s data is kept separate.
03
A freemium model.
Free accounts get three decks, with a warning at two and an upgrade prompt at three. Pro is unlimited, billed through Clerk.
04
Automatic deploys.
Pushing to main ships to production.




What broke, and why002
01
The build failed with an error that meant nothing.
The real cause was a version clash: Clerk didn’t support Next.js 16 yet. I ruled out four other causes before finding it, and the fix was downgrading to Next.js 15.
02
An AI agent broke 14 files at once.
I asked Cursor to fix one lint error. It fixed it, then rewrote 14 files in the same commit. The build passed, but the app crashed on every page.
03
The fix was live but nothing changed.
Vercel kept serving an old deployment from cache. Understanding why took longer than the fix itself.
How I fixed them003
01
Read the dependency versions, not just the error.
Checking Clerk’s supported versions against Next.js release notes found the clash.
02
Used git history as a debugger.
I found the breaking commit, rolled back to the last working version, and restored only the files that were still good.
03
Read runtime logs, not build logs.
Build logs show what failed to compile. Runtime logs show what crashed for real users, down to the file and line.






What I learned004
- Give AI agents small, specific tasks and review every change. Broad instructions produce broad damage.
- One error message can have many causes. Treat it as a clue, not an answer.
- Version compatibility is infrastructure. I now check it before every upgrade.
- Building changes how I design. Once you’ve debugged the thing you designed, you design with what’s hard to build in mind.
What’s next005
AI generated decks for Pro users. You give it a topic, text or a link, and the OpenAI API returns ready made cards. Also on the list: sending users back to their dashboard after payment.
Explore projects