Free tool · No email · Nothing leaves your browser
Launch readiness scorer
Two weeks before a launch, every checklist you can find presents forty items as though they were the same size. They are not. Four of them decide whether you are allowed to go live at all, a dozen more decide how the first week goes, and the rest can follow you into the month after without anybody being harmed. A list that will not say which is which leaves the ranking to whoever is most tired.
This scores 23 items across six areas, weights the areas, and then refuses to average the four blockers away: a backup nobody has restored, secrets in the repository, no error tracking, and a rollback nobody has rehearsed. Each open blocker caps the whole score. Then it takes the days you actually have left and tells you whether the blocking list fits in them, which is the part a checklist cannot do and the part that decides whether the date moves.
Your answers stay in this browser tab. No account, no form, no server call. Nothing you enter is transmitted anywhere, which is also why nothing is saved: close the tab and it is gone. Copy the report before you do.
This is for your own product, in the fortnight before it goes live. If you are assessing somebody else’s codebase before an acquisition or an investment, the technical due diligence scorer asks a different set of questions and ranks its findings by how reliably each one reprices a deal. The two overlap on two items and nowhere else.
Launch readiness, out of 100
0 of 23 answered. The 100-point spread is what the 23 unanswered items cost you: the low end assumes each turns out badly, the high end assumes each turns out well. Answering them closes the range.
0 of 4 launch blockers confirmed open, 4 counting the ones you have not answered.
Nothing is capping your score, so what you see is the weighted checklist: 0 to 100.
The cap table, published rather than derived: one open blocker caps at 40, two at 20, three at 10, four at 5. A blocker counts as open unless you picked the top answer. There is no half credit for a restore nobody ran.
| Area | Score | Weight | Adds |
|---|---|---|---|
| Security0 of 5 answered, 5 unknown | 0 to 100 | 22% | 0 to 22 |
| Data0 of 4 answered, 4 unknown | 0 to 100 | 20% | 0 to 20 |
| Reliability0 of 4 answered, 4 unknown | 0 to 100 | 20% | 0 to 20 |
| Legal and compliance0 of 4 answered, 4 unknown | 0 to 100 | 14% | 0 to 14 |
| Performance0 of 2 answered, 2 unknown | 0 to 100 | 12% | 0 to 12 |
| Operations0 of 4 answered, 4 unknown | 0 to 100 | 12% | 0 to 12 |
| Checklist score | sum of the last column | 0 to 100 | |
| After the blocker cap | cap 5 to 100 | 0 to 100 | |
Inside an area every item counts the same. Weighting an area against itself would be the magic number this page exists to refuse. The areas do not count the same as each other, and those weights are in the form on the left.
Does the blocking list fit in the days you have
You are short by 8 to 37 engineer-days.
The blocking list needs 18 to 47 engineer-days and you have 10. Everything below the line in the plan is what does not fit. Move the date, add hands, or move those items into week two deliberately and write down that you did.
- Capacity
- 10d
- Blocking list
- 18 to 47d
- Blockers alone
- 4 to 12d
What to do, in the order to do it
A different order from the list below, on purpose. That list answers what is worst. This answers what clears the most risk per engineer-day, so a cheap item with a blast radius of 7 outranks an expensive one with a blast radius of 8. Blockers are forced to the top regardless, cheapest first, because a blocker does not trade against anything. The running total is cumulative, and it is compared to your 10 engineer-days as it goes.
| What to fix | Effort | Running total |
|---|---|---|
| BlockerIs error tracking wired into production, with releases tagged?In an EdgeBrain build · blast radius 10/10 · 10 ÷ 1.5 = 6.67 per day | 1 to 2d | 1 to 2fits |
| BlockerHas a backup been restored into a working environment, on purpose, with the elapsed time written down?In an EdgeBrain build · blast radius 10/10 · 10 ÷ 2 = 5.00 per day | 1 to 3d | 2 to 5fits |
| BlockerAre there live secrets in the repository, including its history?In an EdgeBrain build · blast radius 10/10 · 10 ÷ 2 = 5.00 per day | 1 to 3d | 3 to 8fits |
| BlockerHave you rehearsed a rollback on the production pipeline?In an EdgeBrain build · blast radius 10/10 · 10 ÷ 2.5 = 4.00 per day | 1 to 4d | 4 to 12only if optimistic |
| Is one named person on call for launch week, with the access to act?Stays with you · blast radius 7/10 · 7 ÷ 1 = 7.00 per day | 1d | 5 to 13only if optimistic |
| Does an alert reach a named human within minutes, including at night?Stays with you · blast radius 8/10 · 8 ÷ 1.5 = 5.33 per day | 1 to 2d | 6 to 15only if optimistic |
| Is something outside your infrastructure checking that the product is up?In an EdgeBrain build · blast radius 7/10 · 7 ÷ 1.5 = 4.67 per day | 1 to 2d | 7 to 17only if optimistic |
| Has a dependency vulnerability audit been run against the exact tree you are shipping?In an EdgeBrain build · blast radius 7/10 · 7 ÷ 1.5 = 4.67 per day | 1 to 2d | 8 to 19only if optimistic |
| Has session handling been checked end to end: expiry, revocation and cookie flags?In an EdgeBrain build · blast radius 8/10 · 8 ÷ 2 = 4.00 per day | 1 to 3d | 9 to 22only if optimistic |
| Is there a rate limit on login, signup, password reset, and anything that costs you money per call?In an EdgeBrain build · blast radius 8/10 · 8 ÷ 2 = 4.00 per day | 1 to 3d | 10 to 25only if optimistic |
| Is there a privacy policy, and does it describe what the system actually does?Stays with you · blast radius 7/10 · 7 ÷ 2 = 3.50 per day | 1 to 3d | 11 to 28past your capacity |
| Is there a support inbox a human reads, with an answer time you have committed to?Stays with you · blast radius 5/10 · 5 ÷ 1.5 = 3.33 per day | 1 to 2d | 12 to 30past your capacity |
| Can you list every place customer data is stored, including third parties?Stays with you · blast radius 6/10 · 6 ÷ 2 = 3.00 per day | 1 to 3d | 13 to 33past your capacity |
| Is there a runbook covering restart, restore, key rotation and rollback?In an EdgeBrain build · blast radius 6/10 · 6 ÷ 2 = 3.00 per day | 1 to 3d | 14 to 36past your capacity |
| Are there terms of service, including cancellation and refund terms if you take money?Stays with you · blast radius 5/10 · 5 ÷ 2 = 2.50 per day | 1 to 3d | 15 to 39past your capacity |
| If you use non-essential cookies or analytics, is consent handled properly?Only if it is in the scope · blast radius 4/10 · 4 ÷ 2 = 2.00 per day | 1 to 3d | 16 to 42past your capacity |
| Do you have a written answer to a customer who asks you to delete their data?Stays with you · blast radius 6/10 · 6 ÷ 3.5 = 1.71 per day | 2 to 5d | 18 to 47past your capacity |
Engineer-days, not calendar days, and they are our judgement rather than a measurement. None of them includes the bug you will find while doing the work, which is the usual reason a two-day item takes four.
Genuinely blocking, on your answers
Ranked by blast radius: what this one item costs you in the first week live if it is wrong. Blockers first, because those are the four that cap the score rather than reduce it.
- Data · launch blockerblast radius 10/10 · 1 to 3d
Has a backup been restored into a working environment, on purpose, with the elapsed time written down?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Restore last night's backup into a scratch environment. Time it. Write the number and the date somewhere the on-call person will find them at 3am.
In an EdgeBrain build
- Reliability · launch blockerblast radius 10/10 · 1 to 2d
Is error tracking wired into production, with releases tagged?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Wire a tracker, tag the release, then raise a deliberate error from production and watch it arrive. Half an hour, and it is the highest-value half hour on this page.
In an EdgeBrain build
- Reliability · launch blockerblast radius 10/10 · 1 to 4d
Have you rehearsed a rollback on the production pipeline?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Deploy something trivial, roll it back, and time it. If a migration blocks the revert, split it into expand and contract so the schema can outlive the code that wrote it.
In an EdgeBrain build
- Security · launch blockerblast radius 10/10 · 1 to 3d
Are there live secrets in the repository, including its history?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Run an open-source secret scanner over the full history, rotate every key it finds at the provider rather than in the file, then put the scanner in CI so the next one is caught on the branch.
In an EdgeBrain build
- Reliabilityblast radius 8/10 · 1 to 2d
Does an alert reach a named human within minutes, including at night?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Name the person for the first week, route the alert to something that makes their phone ring, and fire a test alert at an inconvenient hour to prove the whole chain.
Stays with you
- Securityblast radius 8/10 · 1 to 3d
Has session handling been checked end to end: expiry, revocation and cookie flags?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Test it by hand against production rather than localhost: two devices, one password change, and a look at what the browser was actually sent.
In an EdgeBrain build
- Securityblast radius 8/10 · 1 to 3d
Is there a rate limit on login, signup, password reset, and anything that costs you money per call?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. A limit per IP and per account on every authentication route, then a stricter one on anything that sends a message or calls a metered API. Confirm it returns a 429 rather than falling over.
In an EdgeBrain build
- Legal and complianceblast radius 7/10 · 1 to 3d
Is there a privacy policy, and does it describe what the system actually does?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Take the data inventory and write what you collect, why, who else sees it, and how long you keep it. Have a lawyer read it if you take money or hold health, financial or children's data.
Stays with you
- Operationsblast radius 7/10 · 1d
Is one named person on call for launch week, with the access to act?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Name one person and one backup for the first week, verify both have production access before launch day, and tell the rest of the team who they are.
Stays with you
- Reliabilityblast radius 7/10 · 1 to 2d
Is something outside your infrastructure checking that the product is up?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Point an external monitor at a route that touches the database, at a one-minute interval, and make it alert the person named in the next item.
In an EdgeBrain build
- Securityblast radius 7/10 · 1 to 2d
Has a dependency vulnerability audit been run against the exact tree you are shipping?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Run the audit your package manager already ships, against the production lockfile. Fix or document every critical and high, then add the command to CI.
In an EdgeBrain build
- Datablast radius 6/10 · 2 to 5d
Do you have a written answer to a customer who asks you to delete their data?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Write the path: every system holding a copy, in order, with the person who runs each step. Then run it once against a test account and time it.
Why it is here rather than in week two. You said the product holds personal data, so this moves in front of the launch. The deadline on a deletion request is somebody else's to set.
Stays with you
- Datablast radius 6/10 · 1 to 3d
Can you list every place customer data is stored, including third parties?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. One table. System, what it holds, where it lives, who can read it, how long it stays. Start from your vendor invoices rather than from memory.
Why it is here rather than in week two. You said the product holds personal data, so this moves in front of the launch. It is the item the other two data answers are built on.
Stays with you
- Operationsblast radius 6/10 · 1 to 3d
Is there a runbook covering restart, restore, key rotation and rollback?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. One page per procedure: restart, restore, rotate a key, roll back, who to call. Then have somebody else follow it while the author watches and says nothing.
In an EdgeBrain build
- Legal and complianceblast radius 5/10 · 1 to 3d
Are there terms of service, including cancellation and refund terms if you take money?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Write the cancellation and refund terms first, because those are the ones a customer will hold you to, then read them line by line against what the billing code does.
Why it is here rather than in week two. You said the product takes money, so this moves in front of the launch. The terms are the contract sitting behind the first charge.
Stays with you
- Operationsblast radius 5/10 · 1 to 2d
Is there a support inbox a human reads, with an answer time you have committed to?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. One address, one owner, one published answer time. A shared inbox with a name against it beats a help desk nobody has configured.
Why it is here rather than in week two. You said the product takes money, so this moves in front of the launch. A paying customer with no way to reach you disputes the charge instead.
Stays with you
- Legal and complianceblast radius 4/10 · 1 to 3d
If you use non-essential cookies or analytics, is consent handled properly?
You answered: Not sure
What this means on launch day. Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Remedy. Block the scripts by default, load them on consent, and make the refuse control the same size as the accept one.
Why it is here rather than in week two. You said the product holds personal data, so this moves in front of the launch. Consent collected late does not cover what you already gathered.
Only if it is in the scope
Real, and it can follow in week two
These are genuine gaps and they belong on a plan. They are listed separately because effort spent here in launch week is effort not spent on the list above, and a checklist that presents every gap as equally urgent is exactly how that happens. Put a date against each one before you launch, so week two is a commitment rather than a hope.
- Can the primary flow be completed with a keyboard, and has an automated accessibility pass been run?5/10 · 2 to 5d
Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
In an EdgeBrain build
- Have you measured Core Web Vitals on the production build, on the pages that carry your traffic?5/10 · 1 to 3d
Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
In an EdgeBrain build
- Has the product been tested against the traffic shape you actually expect, including the worst hour?5/10 · 2 to 6d
Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Only if it is in the scope
- Is there a written retention period for each kind of data you store?4/10 · 1 to 3d
Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Stays with you
- Do you have an agreed way of telling customers when something is wrong?4/10 · 1 to 2d
Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
Stays with you
- Have the security headers been verified on the production domain?4/10 · 1 to 2d
Unanswered. On this page an unknown is costed as if it needs doing, because that is what it costs if you check and the answer is bad. Ten minutes of asking closes it.
In an EdgeBrain build
Who owns what
Written down here because pretending otherwise sets up an argument in the worst week to have one. This is how we split it on our own builds. Another studio will split it differently, and the useful move is to ask them to mark up this same list before the contract is signed rather than after something breaks.
In an EdgeBrain build
12 of 12 still openWe wire this and hand it over. It sits inside the build price rather than arriving as a line on top of it, and if we did not do it we did not finish.
- Are there live secrets in the repository, including its history? (still open)
- Has a dependency vulnerability audit been run against the exact tree you are shipping? (still open)
- Has session handling been checked end to end: expiry, revocation and cookie flags? (still open)
- Is there a rate limit on login, signup, password reset, and anything that costs you money per call? (still open)
- Have the security headers been verified on the production domain? (still open)
- Has a backup been restored into a working environment, on purpose, with the elapsed time written down? (still open)
- Is error tracking wired into production, with releases tagged? (still open)
- Is something outside your infrastructure checking that the product is up? (still open)
- Have you rehearsed a rollback on the production pipeline? (still open)
- Have you measured Core Web Vitals on the production build, on the pages that carry your traffic? (still open)
- Can the primary flow be completed with a keyboard, and has an automated accessibility pass been run? (still open)
- Is there a runbook covering restart, restore, key rotation and rollback? (still open)
Only if it is in the scope
2 of 2 still openReal engineering that we will happily do and that has to be written into the scope before it exists. Not free, not assumed, and cheaper to agree now than to argue about in launch week.
- Has the product been tested against the traffic shape you actually expect, including the worst hour? (still open)
- If you use non-essential cookies or analytics, is consent handled properly? (still open)
Stays with you
9 of 9 still openNo agency can own this for you. We can build the mechanism; the decision, the named person and the promise to your customers belong to the company making them.
- Is there a written retention period for each kind of data you store? (still open)
- Do you have a written answer to a customer who asks you to delete their data? (still open)
- Can you list every place customer data is stored, including third parties? (still open)
- Does an alert reach a named human within minutes, including at night? (still open)
- Is there a privacy policy, and does it describe what the system actually does? (still open)
- Are there terms of service, including cancellation and refund terms if you take money? (still open)
- Is one named person on call for launch week, with the access to act? (still open)
- Do you have an agreed way of telling customers when something is wrong? (still open)
- Is there a support inbox a human reads, with an answer time you have committed to? (still open)
What this page is not
A self-assessment records what you believe on the day you filled it in. It cannot open your repository, fetch your headers or watch a restore run. Every green item here is a claim, and the three claims most often made in good faith and wrongly are the backup, the alert route and the rollback. All three are provable in an afternoon, and none of them is proved by this page.
Why four items get to cap the whole score
Averaging is what makes most readiness checklists comforting and useless. Thirty-eight green ticks and two red ones produce a respectable percentage, and the percentage is what gets read out on the call. But the two red ones were not two thirty-eighths of the risk. They were the whole of it, and the arithmetic quietly converted a launch decision into a progress report.
These four are different in kind rather than degree, and they share one property: each of them is the thing you need after something else has already gone wrong. A backup matters on the day you have lost data. A rollback matters on the day you shipped the bad release. Error tracking matters on the day the thing you did not predict happened. Secret hygiene matters on the day somebody else found the key first. You cannot acquire any of them once the day has started, so their value is entirely in having them beforehand, and a score that lets thirty other ticks compensate is describing a different product from the one you are about to launch.
Read the spread first
If the headline is a range, its width is the first thing worth looking at. It is the cost of the items nobody has answered, and on this page an unanswered blocker alone will hold the floor near 40 while the ceiling stays in the nineties. That is not the tool being dramatic. It is the honest shape of not knowing whether your backups restore: the optimist and the pessimist genuinely are that far apart, and ten minutes of asking is what closes the gap.
The matching mistake is answering optimistically to tidy the number. A backup marked as restored when what actually happened was somebody looking at a dashboard produces a clean page and no useful output, and the only person it costs is you, at 2am, in the week you were hoping to enjoy.
Blocking and important are different words
The week two list is not the list of things that do not matter. It is the list of things that can be true a fortnight later without anybody being harmed in the meantime, which is a specific and narrow claim. Accessibility is on it and accessibility matters enormously; it is there because a keyboard trap on day three is a fix, while a lost database on day three is an ending. Sorting by importance rather than by that distinction is how teams end up spending the last Thursday before launch on a cookie banner.
The switches at the top of the form move items across that line, and they are the only honest way to answer this. A product that takes money cannot launch without terms. One that holds personal data cannot launch without an answer to a deletion request. A launch attached to a press date cannot launch untested at volume. The same item is genuinely optional for one product and genuinely blocking for another, and a checklist that will not ask which is guessing on your behalf.
The list is not the plan, and the plan is not the point
The point is the last box: whether the blocking list fits in the days you have. That question is the reason readiness checklists get abandoned halfway through, because it is the only one with a consequence attached, and it is the one no published checklist answers. Three outcomes exist. It fits, and you work through the order. It nearly fits, which means you are relying on every estimate landing at its optimistic end and should decide now what you would drop. Or it does not fit, and the honest options are moving the date, adding hands, or launching with a named gap that somebody decided to accept in writing.
The third of those is a legitimate choice. Products launch with known gaps constantly and most of them are fine. What separates a decision from an accident is that somebody wrote down which gap, who accepted it, and when it closes. If the plan above is longer than your capacity and nobody has had that conversation, the decision is still going to be made. It will just be made at 2am by whoever is awake.
Run it twice, and hand it to somebody else
Fill it in yourself, then hand the same questions to the engineer who would have to prove each answer. Two or three usually change, and rarely the ones anyone predicted. The delta between those two runs is the most useful output on this page and it is the one thing no checklist can hand you, because it is a fact about your team rather than about your software.
Keep reading
- Why your Next.js site is slow, and which fixes are worth doingThe performance item on this page, at length: how to read field data at the 75th percentile and which fix pays.
- Stripe webhooks in productionFive predictable failures on the path that takes money, and the reconciliation job that catches the ones you missed.
- Background jobs in Next.jsWhere the retries, the queues and the scheduled sweeps live when there is no server to run them on.
Other free tools, none of them gated, are on the tools page.
Then clear the blockers.
Most of this list is work your own team can do, and the page gives you the order without asking for anything. If the plan is longer than the days you have, send us the report you just copied. Our published bands start at $7,500 for a build, and a support retainer that carries the monitoring and the out-of-hours alert starts at $2,500 a month. Those are estimates in US dollars, not quotations; the quote that follows scoping is fixed in writing before kickoff.