Walk me through FlashyCardy.

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
Flashy Card product screen

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.

Flashy Card interface
Flashy Card deck screen
Flashy Card study screen
Flashy Card account screen

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.

Flashy Card debug screen
Flashy Card build screen
Flashy Card deploy screen
Flashy Card log screen
Flashy Card recovery screen
Flashy Card shipped screen

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

EmailLinkedInGitHub