coding

The Joy of Building TinyNotes — A More Human Story of AI-Assisted Development

I didn’t set out to build something complicated.

In fact, TinyNotes is about as simple as it gets — a small notes app built with Next.js, SQLite, and a clean server-first approach.

But what made this project interesting wasn’t the app itself.

It was how it came together.


It Started With a Course… and a Friction Point

Like a lot of people exploring AI-assisted coding, I started with a course — Maximilian Schwarzmüller’s “Codex - The Practical Guide.”

It’s a solid course. Practical, hands-on, and grounded in real development.

But I ran into something I think many people quietly experience:

When AI is involved, following along doesn’t always produce the same results.

Prompts vary. Outputs drift. Small differences compound.

So instead of trying to match the course step-for-step, I made a decision:

I’d take the idea… and build it my own way.


Slowing Down to Speed Up

The first real shift was this:

I stopped trying to generate code immediately.

Instead, I worked with ChatGPT to: - Rewrite the spec - Clarify what the app should do - Break everything into phases

That gave me three simple but powerful files:

  • SPEC.md — what the app is
  • PLANS.md — how to build it
  • AGENTS.md — how Codex should behave

At that moment, nothing was built yet.

But everything was clearer.


The Environment (and a Small Reality Check)

I moved between a few machines:

  • Mac Mini (briefly… and uncomfortably)
  • Windows desktop (powerful, but friction with permissions)
  • Ubuntu laptop (older… but stable)

I landed on Ubuntu.

And honestly, that made sense.

Because at the end of the day: - Most web servers run Linux - Most production environments feel like Linux

So building there just simplified everything.


The Rhythm That Emerged

What surprised me most was how naturally a rhythm formed between ChatGPT and Codex.

It wasn’t chaotic. It wasn’t random.

It became structured.

ChatGPT became the planner:

  • Breaking work into phases
  • Writing clear prompts
  • Helping reason through issues

Codex became the builder:

  • Executing instructions
  • Writing code
  • Filling in implementation details

I wasn’t replacing myself — I was orchestrating.


Phase 1 — Just Get It Running

The goal here wasn’t elegance.

It was momentum.

  • Create the Next.js app
  • Set up routing
  • Add a basic layout
  • Make sure the dev server actually runs

That last point sounds obvious.

It isn’t.

In my first attempt, I didn’t test early enough — and paid for it later.

So I adjusted:

Phase 1 ends only when the app runs cleanly.

That one decision saved a lot of frustration down the line.


Phase 2 — Make It Real

This is where TinyNotes stopped being an idea and became an application.

  • Added SQLite
  • Defined a simple notes table
  • Created server-side functions
  • Hooked up basic create/read functionality

No over-engineering.

No unnecessary abstractions.

Just: - Server components for reads - Server actions for writes

And suddenly… data was flowing.

That moment matters.

Because once your app is alive, everything else becomes easier.


The Mistake That Changed the Process

Originally, I pushed too far before testing.

By Phase 3, things broke — and I didn’t want to untangle it.

So I reset.

Not the project — the process.

I moved validation earlier.

Smaller phases. Faster feedback.

And everything got smoother.


What This Really Taught Me

TinyNotes is simple.

But the lessons weren’t.

1. AI needs structure

If you don’t guide it, it drifts.

2. Smaller steps beat big leaps

Breaking work into phases made everything predictable.

3. Early testing is everything

Catching issues early prevents rebuilds.

4. You’re still the developer

AI helps — but direction comes from you.


Where This Goes Next

TinyNotes isn’t “done.”

Next steps include: - UI refinement - Authentication - Deployment to a home server - Backup strategy

But the foundation is solid.

And more importantly — repeatable.


Final Thought

This project wasn’t about building a notes app.

It was about learning how to build with AI in a way that actually works.

And that, more than anything, is what made it worth doing.