You paid someone to build your app - an agency, an offshore team, a solo contractor, or lately "we vibe-coded it" - and you judged the work the only way you could: the demo. It opened, it clicked, it looked done. But a quiet worry stays in the back of your mind: was it actually built well, or does it just look finished? You do not need to read code to answer that.
I am a developer, and over the years I have been handed a lot of codebases that non-technical founders paid someone else to build. Almost every time, the story in the history was different from the one the founder had been told. The same handful of things go wrong, again and again - and none of them require you to read a line of code, because they are all sitting in the project's own history.
The short version: you cannot judge a build from the demo, but its history reveals the five failures that matter most - constant rework, no tests, no review, everything written by one person, and a build that cannot be handed off. The demo hides all five. The history hides none of them.
Red flag 1: rework that never shows up in a status update
The same files get rewritten over and over. From the outside it looks like steady progress - something changes every week, the updates keep coming. In the history it looks like someone going in circles and billing you for the laps. A little rework is normal and healthy; every build refines itself. A lot of it, quietly, is where budgets disappear without anyone ever telling you that the last month was spent redoing the month before.
Red flag 2: no tests, ever
Not "few" tests - zero. The app works today because someone clicked through it by hand before the demo. The problem arrives the first time you need a change: with no automated tests, nobody built a safety net, so every small edit becomes a gamble that something invisible elsewhere just broke. Tests are the difference between "we can improve this" and "do not touch it." A build with none is moving fast today and quietly buying you fragility for tomorrow.
Red flag 3: nothing gets reviewed
One person writes the code, the same person approves it, and no other human ever looks. That is fine while they are around and paying attention. It becomes a real problem the day they leave or go quiet, because no second person ever understood why anything is the way it is. Review is not bureaucracy - it is the simplest way knowledge spreads to more than one head as the work happens, instead of all of it walking out the door at once.
Red flag 4: it all lives in one head
Everything meaningful was touched by exactly one person. That is not a moral failure and it does not mean anyone did anything wrong - it is just risk, and it is risk you are carrying without knowing it. If that person walks, you do not have an app, you have a hostage situation. This is the single most expensive problem in inherited software, and it has a name: a bus factor of one. A healthy build has at least two people who understand each critical part.
Red flag 5: it cannot be handed off
No structure, no docs, no consistency. The next developer you hire takes one look and quotes you a rewrite instead of a fix, because picking this up is genuinely harder than starting over. This is usually where the "my old dev scammed me" stories actually come from - not fraud, just a black box nobody else can open. The cruel part is that it is invisible until the moment you need someone new to touch the code, which is exactly the moment you can least afford a surprise.
The demo lies. The invoice lies too.
Here is the uncomfortable part: a founder can be completely happy with a build that has every one of these problems, right up until the day it matters. The finished screens tell you nothing about how they were built, and neither does the bill. This is the core difference between looking at the code and looking at the process: the code shows you what exists right now, while the process shows you how it got there and whether it will survive the next person who touches it. That distinction is worth understanding on its own - it is the subject of code analysis vs process analysis.
What to ask instead of "does the demo work?"
You do not need to become an engineer. You need answers to a handful of process questions, and you can ask them in plain language at your next review:
- How much of this was redone, versus built once and left alone?
- Are there tests, and do they cover the parts that matter?
- Does anyone besides the author ever review the work?
- Could a brand-new developer pick this up without a rewrite?
Those answers are sitting in the project history whether or not anyone shows them to you. Most founders never think to look, because they assume you have to read code to understand it. You do not - the history is a record of the process, and the process is exactly what a non-technical owner can read.
A shortcut to reading the history
Reading that history by hand takes a developer you trust and a few hours. That is exactly the gap we built PulseRepo to close: it reads the history for you and turns it into plain-English questions a non-technical owner can raise at the next meeting - how the work is distributed, whether tests and review are keeping up, what looks unusual - each one cited back to the actual commits. Not scores, not a verdict on anyone, not surveillance. You can see a sample report to get a feel for it, and there is a free tier if you want to point it at your own repo.