The Test Mode vs Live Mode Line-Up
Almost everything you plug into has two of itself — a sandbox for you to break and the real one your customers touch. Nobody set them all up in one sitting.
The two crossed wires are not the same mistake. One costs you a day. The other costs you something you cannot get back.
one-time · instant download · yours to keep
01 — The problem
You wired them one at a time, and they drifted.
Nobody set them up in one sitting
The database went in on day one, payments three weeks later, email when you needed a password reset. Each time you pasted whichever value was in front of you, and nobody stopped to ask which environment you meant.
A crossed wire looks exactly like a working one
Nothing errors. Your app talks to something, gets an answer, and carries on. The only signal is that the answer came from the wrong place, and you will not notice that until a real customer or a real record is involved.
And the dangerous direction is the quiet one
A live app on a sandbox announces itself within a day — nothing charges, no emails arrive. Your local work pointing at production announces itself the first time you run something destructive, and by then it has already run.
02 — What's inside
Four questions per service. None of them an opinion.
Whether there are two of it at all
Some services offer a sandbox and some only have one of themselves. A domain has one. A public status page has one. That is not a gap, and the sheet will not treat it as one.
What each side reaches
Two separate answers: which environment your work talks to, and which one your live app talks to. The pair of them is what decides the row, and the order matters.
Whether they share an account
The question people get wrong. Two config files can point at one account, and then the mode setting is a label rather than a wall.
The sheet ships with the ten services most first apps plug into, so the first thing it does is name the ones you forgot you had wired. Delete what you do not use and add anything missing.
03 — The standard
Three rules it will not bend for you.
The two crossings are ranked differently, on purpose
A live app on a sandbox is broken and recoverable: point it back and you have lost a day of orders. Your work pointing at the real thing is not recoverable that way — a test run that deleted production rows cannot be undone by fixing the setting afterwards. Most tools treat both as "misconfiguration". They are not the same mistake and they are not ranked as one.
Two settings can be labels on one thing
A service where both sides share an account reads DEV ON LIVE no matter how carefully the mode settings are filled in. Two config files pointing at one thing is not two things, and a label does not stop a delete. This is the row people are most surprised by, because on paper it looks perfectly separated.
An answer you could not find is scored as the worst it could have been
Not a guess about what is likely — the worst, because an answer you cannot produce is not evidence. Stated that way it also cannot be gamed: writing cant_find can never get you a better result than telling the truth would have. Where an unfound answer could not have changed the row either way, it is not counted against you and the row says so.
04 — How it works
An hour with your settings pages open.
01
Start from the ten services already in the sheet. Delete the ones you do not use and add anything you plug into that is not listed.
02
For each one, check whether it even offers a sandbox. Some do not, and those rows are done.
03
Read which environment each side points at, and whether the two sides share an account. Answer cant_find honestly where you have to.
04
Fix the DEV ON LIVE rows before anything else. The sandbox ones are costing you a day; those are costing you the ability to undo.
05 — What you'll see
The worked example, live.
Ten services most first apps plug into. Compare S-03 and S-04 — both crossed, ranked differently on purpose. Then look at S-02: the mode settings are perfect and it still reads DEV ON LIVE, because both sides are one account.
Try it on the worked example
Ten services most first apps have. Compare S-03 and S-04 — both crossed, ranked differently on purpose. Then look at S-02: perfect mode settings, one account.
| Service | Has a sandbox | Your work reaches | Your app reaches | Same account | Destination |
|---|---|---|---|---|---|
S-01 Your database | SEPARATED your work points at the sandbox and your app points at the real one | ||||
S-02 Payments | DEV ON LIVE the two settings say separate, but your work and your app use the same account - two config files pointing at one thing is not two things | ||||
S-03 Sending email | DEV ON LIVE your work is pointing at the real one | ||||
S-04 File and image storage | PROD ON TEST your live app is talking to the sandbox - it will look like it is working and nothing real will happen | ||||
S-05 Your domain and DNS | NO SEPARATE MODES this service only has one of itself, so there is nothing to separate and nothing here to fix | ||||
S-06 Sign-in redirect addresses | SEPARATED your work points at the sandbox and your app points at the real one | ||||
S-07 The AI provider your app calls | DEV ON LIVE your work is pointing at the real one | ||||
S-08 Website analytics | NO SEPARATE MODES this service only has one of itself, so there is nothing to separate and nothing here to fix | ||||
S-09 Background jobs and queues | DEV ON LIVE the two settings say separate, but your work and your app use the same account - two config files pointing at one thing is not two things | ||||
S-10 Text messages and push | PROD ON TEST your live app is talking to the sandbox - it will look like it is working and nothing real will happen |
Verdict
WIRES CROSSED
Something you work against is pointing at the real thing.
Fix first S-07 — your work is pointing at the real one
6 of 10
services that need work
60% of the services listed
2
separate in name only
looks separated, is one thing
2
crossings that cost a day, not the data
broken, and recoverable
2
told to leave alone
only one of them exists
None of the four numbers above changes the verdict. Services that read NO SEPARATE MODES are never counted against you.
This is the live engine. 60 rows, the same formulas, in a file you keep Start Here tab that explains every answer in plain words Dashboard with the verdict, the counts, and what to fix first
Get the kit — $4906 — Who it's for
For the person who is the whole team.
Buy this if
- You built something with an AI tool and wired each service as you needed it.
- You have run something locally and wondered afterwards which database it hit.
- You let an agent run a command against your project and were not sure what it reached.
- You cannot say, right now, whether your dev setup can delete a real customer record.
Skip it if
- You run separate environments with real infrastructure. There is nothing here you do not know.
- Nothing you built plugs into a third-party service yet.
- You want something that inspects your live accounts — this is a read-off, not a scanner.
What this is not
It connects to nothing and sees no part of your project, your accounts, or your data. It grades how an environment is wired and never a person. It is not a scanner, a penetration test, or a security audit, and it is not legal advice — it reads back what you tell it, using rules you can see in the formulas.
07 — Works alongside
Where this sits.
This one is the wiring between your work and the real thing. The three below are the idea it comes from, the credentials that travel along it, and where to take what you find.
The Browser Line Read-Off
$59The keystone of the same line. Where this one asks which environment a service reaches, that one asks where each decision your app makes actually happens.
The Keys & Secrets Sorting Drill
$49The credentials themselves. Run them together: this one finds the services pointing the wrong way, that one finds the keys that got out while they were.
Vibe-Coded App Pre-Launch Security Gate
$79The launch-moment go/no-go across six controls. Crossed environments are the quietest way to fail it, because everything looks like it is working.
08 — Common questions
Before you buy.
Because the two mistakes cost different things. A live app talking to a sandbox is broken and obvious — payments do not charge, emails go nowhere, and you find out within a day. Point it back and it is over. Your work pointing at the real thing is different in kind: a test run that deleted production rows or emailed real customers cannot be undone by fixing the setting afterwards. One costs a day. The other costs something you cannot get back, and they are ranked accordingly.
Because the two settings can be labels on the same thing. If your work and your app use the same account, project, or workspace, there is one thing there, not two — and a mode setting does not stop a delete from reaching it. That row reads DEV ON LIVE even though on paper it looks perfectly separated. It is the row people are most surprised by, and it is usually the true one.
No, and the sheet says so. Plenty of things only have one of themselves — a domain, a public status page, a single analytics property. Demanding a sandbox where none exists is inventing work, and a tool that flags everything trains you to flag nothing. Those rows read NO SEPARATE MODES and are never counted against you.
No. It connects to nothing and uploads nothing. You open your own settings, read which environment each side is pointed at, and type it in. Four answers per service, none of them a value or a credential.
Answer cant_find. It is scored as the worst answer that question could have had — not a guess about what is likely, the worst, because an answer you cannot produce is not evidence. That also means writing cant_find can never get you a better result than the truth would have. Where an unfound answer could not have changed the row either way, it is not counted against you and the row says so.
That is the case it was built for. Working alone is exactly how these get crossed — you set each service up once, in a hurry, and there was never a moment where somebody asked which environment you meant. The sheet takes an hour and the fix is usually a single setting per row, which is a very cheap way to find out that your local work has been writing to the database your customers use.
Get the Read-Off
Find out what your work is actually pointing at.
- One .xlsx — Start Here, Dashboard, Line-Up
- 60 rows with dropdowns and live formulas
- The ten services most first apps have, already filled in
- Offline forever — nothing uploaded, no access granted