About Work Blog Get in touch
Back to blog
Learning Apr 9, 2026

What I'm Starting to Understand About
Building Real Apps

I'm learning how real apps come together using Cursor, Git, and databases. Here's what's finally starting to click — and what I'm still figuring out. Written for past-me and anyone else who's new to this.

Cursor — AI code editor branding

I've been building basic websites, but I'm starting to realize that a real app is a different kind of project. At first a lot of what I did felt straightforward: you design a page, add sections, make it look clean, ship it. When I started trying to build something more interactive, I hit a whole other layer I hadn't really thought about before — the part that isn't just what you see in the browser.

Small shortcuts add up

One of the first things I started using more in Cursor is commands — the slash commands and quick actions that let you do common tasks without clicking through everything. It sounds small, but when you're building and testing over and over, not breaking your flow matters. Instead of hunting for the right button every time, you can stay focused on the thing you're actually trying to build.

Git started because I watched other people use it — now I get why

That workflow pushed me into using Git more intentionally. Before, I mostly set it up because I'd watched people who actually use it and it seemed like something I was supposed to do — not because I really understood it yet. Now I'm using it closer to how it's meant to be used. The simplest way I think about it: checkpoints. You save where you're at, try something new, and if it goes wrong you can step back instead of panic-undoing in your head. That alone makes experimenting feel less scary.

Why databases suddenly mattered

The bigger shift has been understanding what a database is actually for. A marketing site can be mostly static: here's the copy, here's the layout, done. An app has to remember things — users, posts, likes, settings, whatever the product needs. Even a tiny example like a list that should still be there tomorrow needs somewhere persistent to live. Without that, you're just moving pixels; you're not holding state.

I've been looking at InstantDB as one of the friendlier ways to get a database in place fast: you spin something up, get a key, and connect your project. I'm not endorsing it as "the best" forever — I'm still one person trying tools — but it's been a clear enough on-ramp that I could focus on how the pieces connect instead of getting lost on day one.

The docs aren't optional — they're the instruction manual

What took me a minute to internalize: Cursor (or any AI assistant) doesn't automatically know how your database or API works. You have to give it the documentation — basically the official "here's how this is supposed to work" text. Once that's in context, the agent can read it, try things, and correct course when something errors. It's less magic and more like having a very fast collaborator who still needs the right reference material.

That clicked why people talk so much about context. The model isn't guessing in a vacuum; it's working from what you (and your files) give it. Better inputs → less wasted back-and-forth.

What I'm still sorting out

I'm still mapping when something belongs on the frontend vs. what should happen on the backend, and I definitely don't understand every line the agent writes yet. A lot of the time I'm just following along while it figures out the structure and I ask why. I'm fine with that for now.

Where I'm at

A little while ago I was mostly focused on making things look good. Now I'm starting to see how things work underneath, and how "real" apps get stitched together. I don't have it all figured out. Things are clicking in a way they didn't before, and for now that's the win I'm writing down.

Back to all posts