How Your App Actually Fits Together
The restaurant was the intuition. This is the same picture with the real names on it, and a simple diagram, so that when your developer says "the frontend" or "the API," you know exactly which part of the restaurant they mean.
A while back I described your app as a restaurant: a dining room you sit in, a kitchen out back, a pantry full of supplies, and waiters carrying things between them. That picture is genuinely how an app is arranged, and it's worth holding onto.
But your developer is never going to say "the waiters." They're going to say "the API," and "the backend," and "the database," and if the restaurant is all you have, those words still sound like a foreign language. So here's the same restaurant with the real labels on the doors. Same building, actual names.
The four parts, in real terms
The dining room is the frontend. It's what runs on your customer's screen, the pages and buttons in their browser or their phone. It's the only part they ever see or touch.
The kitchen is the backend, and it lives on a server, a computer that stays on somewhere and does the real work. The rules, the decisions, the actual processing all happen back here, out of sight.
The pantry is the database, where all your information is kept: customers, orders, history. The memory of the whole operation.
And the waiters are the API. When the frontend needs something, it doesn't march into the kitchen. It sends a request to the API, the API carries it to the backend, and the answer comes back the same way. The API is the set of doorways between the parts, and the only sanctioned way across.
Drawn out, the everyday path of a single click looks like this:
(the dining room)"] -->|"request"| S["Server: backend + API
(kitchen + waiters)"] S -->|"read / write"| D[("Database
(the pantry)")] S -->|"response"| B
Someone taps a button in their browser. The browser sends a request to the server through the API. The server does the work, reads or writes to the database if it needs to, and sends an answer back. That round trip happens constantly, every click, every page, every app on your phone. That's the whole shape of it.
Why it's built in separate pieces
You might wonder why it's carved up like this at all, rather than one big blob that just does everything. The separation is the entire point, and it's what you're paying a good developer to maintain.
Because the pieces only talk through defined doorways, each one can change without dragging the others down with it. You can redesign the whole dining room, a fresh look for your customers, without touching the kitchen or the pantry. You can upgrade the equipment in the kitchen, make it faster, and no diner notices. You can even move to a new building, a new server, and as long as the doorways stay the same, everything still works.
When the pieces are kept clean and separate, your app grows and changes one part at a time. When they're tangled together, when the diners are allowed to wander into the kitchen and grab from the pantry, you can't change anything without risking everything. That is exactly how apps end up frozen, where every small change is expensive and nerve-wracking.
Why this matters to you
You're not going to build any of this. But now you can follow the conversation, and better, you can steer it.
When something breaks, you can ask which part it's in: is the dining room fine but the kitchen down? When you want a change, you'll have a feel for whether it's a coat of paint or a kitchen renovation. And when you're choosing who builds it, you can ask the one question that separates a lasting app from a frozen one: are the parts kept cleanly separate, so I can change one without rebuilding all of them? A good developer will say yes and mean it, because they built the doorways on purpose.
The restaurant was never just a cute story. It's the real shape of the thing you're paying for. Now you know the names on the doors.