Someone on the internet declared databases dead. Their vibe-coded apps, they said, store everything in the browser’s local storage. It was posted with the calm confidence of a person who has never been paged at 03:00 because ten thousand sessions decided to disagree about reality.
That take is not brave. It is not “first principles.” It is what happens when a demo that works for one human — maybe ten — gets confused with production infrastructure. Vibe coding did not invent overconfidence. It just made shipping overconfidence faster than reading a textbook.

What vibe coding actually is
Vibe coding is the habit of steering a coding agent (or a chat model) until the UI looks right and the happy path clicks. You feel productive. The green checkmarks pile up. You have not designed for concurrency, durability, identity, backups, or the day a second device exists.
Used honestly, a coding agent is a force multiplier for people who already know what “wrong” looks like. Used as a substitute for judgment, it is a machine for generating plausible architecture theatre. The agent will happily implement local storage as a “database” if you never ask what happens at the hundred-thousandth user.
Local storage is not a data platform
Browser storage is a convenience cache on a single client. It is not multi-writer. It is not multi-device. It is not transactional across users. It is not your audit trail. It is not your disaster recovery plan. It is bounded, user-clearable, and invisible to your ops story.
At one user, local storage feels like freedom: no managed hosting bill, no schema migrations, no boring ops. At a hundred thousand users you do not have a clever architecture. You have a hundred thousand disconnected lies about state, none of which you can query, reconcile, or restore.
- Scale is not “more CSS.” Scale is concurrent writers, consistency, and failure domains.
- Durability is not optional. Users expect yesterday’s work to still exist tomorrow.
- Identity is not a JSON blob in DevTools. Accounts, sessions, and revocation are product requirements.
- Observability is not a console.log. You need to know which version broke which cohort.
Databases are not a religion. They are a compressed century of answers to “what if two people click at once?” Pretending that problem went away because your framework scaffolded a to-do app is not innovation. It is amnesia with better autocomplete.
The simpleton pattern
There is a recurring pattern in vibe-coded discourse:
- Build something that works on one laptop.
- Rename the laptop constraint as a philosophy (“databases are dead”).
- Mock people who still care about boring infrastructure as dinosaurs.
- Discover, much later, that customers are not a single browser tab.
Complexity in IT is not cosplay. Distributed systems, capacity planning, backups, and security exist because reality is adversarial and concurrent. AI engineering does not delete those constraints. It only changes how fast you can run into them.
If your app’s entire universe fits in one user’s browser, say so. Call it a personal tool. Do not market it as a platform. Do not sneer at the stack that keeps banks, hospitals, and payroll systems from inventing new forms of data loss every Tuesday.
Cycle of Fuckups

IT does not so much progress as it overcorrects. Each generation invents a permanent fix for the previous generation’s embarrassment — then discovers a larger embarrassment with better branding.
First the workplace got Windows on every desk. Files moved by optimism and removable media. Then someone decided colleagues needed a real server, so a second PC appeared under somebody’s desk and became “infrastructure.” When that somebody went on leave, the office learned what a single point of failure feels like in fluorescent lighting.
Naturally the fix was a server room: racks, air conditioning, laminated access badges, a sense of arrival. Until someone brushed the wrong switch on the rack and an entire campus went quiet before lunch. The lesson was not humility. The lesson was put it somewhere nobody can touch the switch.
So arrived the cloud: no more accidental power buttons in the hallway. Correct. Also correct: the monthly bill, which taught finance a new vocabulary and scheduled meetings that still have not ended. Centralisation fixed the under-desk problem by relocating fragility into contracts, regions, and pricing tiers.
Now the topping on the cake is AI — not as a tool beside engineers, but as the pitch that engineers and coders can be replaced wholesale. The pattern is familiar: declare the last layer obsolete, automate the competence out of the loop, scale the remaining risk until the blast radius is continental. Desks, rooms, and clouds were large. Models that sit under every product decision are larger. When that dust settles, the fuckup will not be a flipped PDU. It will be institutional amnesia sold as inevitability.
You can already hear the next slide loading. It will claim this time we fixed it for good. History suggests we should keep a human who still knows what a backup is for — and who is allowed to say no when the demo confuses itself with production.
Vibe coding and “databases are dead” are not a new species of error. They are the latest costume in the same parade: skip the hard chapter, ship the slogan, discover scale when the audience is already watching.
An education failure, not just a tool failure
Blaming the model alone is too easy. A lot of these takes come from people who were plunked onto the market after a short course that optimized for portfolio screenshots, not for systems that survive contact with concurrent humans. Bootcamps and rushed degrees can mint “engineers” who have never been forced to answer: what is the source of truth, what breaks at 10× load, and who gets paged when it lies?
That is not an insult aimed at every junior. It is an indictment of pipelines that sell job titles faster than they teach scalability, capacity, failure modes, and the boring discipline of production. Vibe coding then amplifies the gap: a coding agent will implement whatever story you tell it, including the story that scale is someone else’s problem. If nobody ever graded you on multi-writer consistency, you will not ask the agent for it.
Industry hiring shares the blame when it confuses demo velocity with engineering judgment. The result is a generation fluent in frameworks and mute on databases, queues, backups, and the day the free tier is not a business plan.
Where the real spearpoint is
The interesting future is not “AI replaces engineering.” Not this year, and not because a model can emit React. The spearpoint for years to come is the pairing we already practice when it works: a human with decades of scars, paired with an unbelievably fast and knowledgeable assistant — a long session of judgment plus generation, session continuity across real systems, prompt cache and token cost treated as engineering inputs rather than magic.
That is not vibe cosplay. That is peer work. The human still owns the call when the agent is wrong, when the schema must survive a decade, when “it works on my machine” is not an SLA. The agent still compresses hours of boilerplate and research into minutes. Together you move faster than either alone — without pretending scale is a myth invented by consultants.
At 3DN we care about compute, managed hosting, and digital sovereignty precisely because production is where ideology goes to die. Family products — work · money · politics, DutchBud, PolitiCap, ZZP2ZZP, IWISH — only matter if the boring layers hold when more than one person shows up.
A short checklist before you declare a technology dead
- How many concurrent writers?
- What is the source of truth when two clients disagree?
- How do you restore last Tuesday after a bad deploy?
- How do you revoke access for one user without wiping everyone?
- What is your story at 10, 10 000, and 100 000 users — not slogans, numbers?
If you cannot answer those, you do not have a hot take. You have a prototype. Prototypes are fine. Lying about their scale is not.
Vibe coding will keep shipping demos. Engineering will keep shipping systems. The market eventually notices the difference — usually after the local storage fills up.
Leave a Reply