THE WRAPPER TEST
Can a founder tell a real AI product from a thin wrapper?
- TYPE
- PERSONAL PROJECT
- ROLE
- Solo: questions, scoring, build
- TIMELINE
- Sep 2026
- PLATFORM
- Web
- STACK
- React · TypeScript · vite-react-ssg · Vercel Functions · Resend · Vitest
The problem
A lot of AI products are a prompt around someone else’s model. The founders building them often can’t tell whether theirs is one of those, and the people they ask either sell them something or tell them it’s fine.
The useful question is narrower than “is it good”: what does the product do that the model alone doesn’t, what happens when the model is wrong, what does each request cost at the floor, and how would anyone know it got worse.
What I had to learn
- How to turn a judgement call into a scoring model someone can check: thirteen questions, each weighted 0–3, rolled up into four axes and nine sections, with the thresholds printed on the result so a score can be argued with.
- How to keep “I don’t know” honest. Every question has a fourth option that scores zero but is reported separately, because an unknown is a finding in its own right and folding it into a low score hides it.
- How to prerender share pages from a pure function, so a link to a result carries its own title and card image without a server.
What I built
A single page at /teardown. The intro and first question are in the prerendered HTML, so the proposition is readable before any JavaScript runs. Answers stay in the browser until the reader asks for the report by email.
- 01
Scoring is arithmetic only
The scoring module returns numbers and never a sentence. That keeps its tests pure and leaves one place in the code where words reach a reader, which is the one place the tone rules have to be enforced.
- 02
Diagnose, never prescribe
The breakdown says what the answers show, not what to do about it. A test fails the build if any finding uses advice phrasing like “you should” or “make sure”. Advice without the context of the product is guessing.
- 03
The server re-scores, it never trusts
The email function takes the raw answers, thirteen small integers, validates them exhaustively and re-runs the same modules the browser ran. There is one implementation of the scoring in the system, not two that can drift.
- 04
The gate is a courtesy, not a lock
The report is computed in the browser from data already in the bundle. Moving it server-side to protect something given away for free would cost a round trip on every reveal.
- 05
Forty prerendered result pages
One per reachable score, resolved from the scorer at build time, each with its own title and share card. They are noindex: forty near-duplicates would dilute the pages worth finding.
Where it stands
Live and free at anadithakur.in/teardown, with no account.
Scoring, report and email payload are covered by unit tests, including the no-prescriptions rule.
What it taught me
Writing the thresholds onto the result page changed how I wrote the questions. Once the reader can check the arithmetic, every weight has to be defensible.
Thirteen questions, about three minutes.
Take the Wrapper Test →