Should I vibe code
Build an interactive quiz or calculator and capture its results
Everything else here is judged on what it stores. A calculator is judged on the number it told a stranger.
?
Their verdict, the Start price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Every other form entry on this site is graded on what it stores. This one is graded on what it says. A quiz or a calculator exists to hand a stranger an output — a saving, a quote, a score, a recommendation, a category with a name — and that output is a claim your company made, in writing, to somebody who came to your website to find out a number. The build really is one sitting: questions, weights, a result page, an email capture in front of it. What comes with it is that nobody QA's arithmetic. A wrong coefficient, a rate constant nobody updated since launch, a rounding step in the wrong order, an edge case where two answers both add to the same bucket — all of them render as a confident, well-typeset figure that looks exactly like the right one, and the first person to notice is a prospect holding a screenshot next to your actual invoice. Behind the result page sits the second half: an email address you collected in order to show someone their own answer, which then goes into a list and gets sequenced. That is a consent story with a regulator on the end of it, and it is not the part you will be thinking about on Saturday.
What actually breaks
not "if". the specific failures.
- The formula, quietly. A quote calculator with a stale rate or a misplaced bracket produces a plausible number, and plausible numbers do not generate bug reports — they generate expectations
- The scoring thresholds, where an off-by-one on a boundary sends everyone who scores exactly 40 into the wrong recommendation and the segment looks fine in aggregate
- The logic living in the browser, which means both that the pricing model you consider proprietary is readable in the bundle, and that the total posted back is whatever the visitor's devtools say it is
- The result email, which is the moment a lead-capture quiz becomes a sending domain with a reputation, an unsubscribe obligation and a consent record you did not keep
- Partial responses, because a funnel that saves as it goes stores the answers of everyone who changed their mind on question three, including the ones who never reached the consent checkbox
- The embed, once it is on a page you do not control: your endpoint now accepts posts from anywhere, and a CORS setting made permissive during debugging never gets tightened
- Personalisation from quiz answers, which is where the questions drift somewhere uncomfortable — a wellness quiz asking about symptoms is health data whatever the marketing calls it
- Any payment step in the funnel, where the amount to charge is derived from answers the visitor supplied and validated by nothing
- The archive, because a quiz that ran for two years holds thousands of people's answers and there is no expiry on a table nobody has looked at
It arrives through the contact form, which is the first clue it is not an outage. A prospect has attached two things: a screenshot of your fit-out calculator quoting £2,340, and the quote your team sent last week for £5,900. He is polite, and he is very clear that he chose you over two competitors on the strength of the first number. You open the calculator code and find it in under a minute — the materials multiplier is applied before the area band rather than after, so anything over 40 square metres comes out at roughly a third. That has been live since the week you shipped it. The database says 1,180 people completed it, 260 of them gave an email address in exchange for their result, and each one of those received the number in writing, from your domain, with your logo on it. There is no version history on the formula, so you cannot even tell the difference between the ones who got a wrong figure and the ones who got a right one before you last touched the file.
Is that you?
the verdict is a default, not a law
- The output is entertainment — a which-one-are-you quiz whose result nobody will act on or pay against
- No email address is required to see the result, which removes the entire consent and list-building half of this page
- The formula is a handful of documented constants in one file, reviewed by whoever owns the actual pricing, with the date of the last change in the repo
- The result carries a visible, honest caveat that it is an estimate and not a quote
- You run it for a fixed campaign, with a switch-off date written down before it launches
- The number the visitor sees is money — a price, a saving, a return, a premium, a valuation
- It gates the result behind an email address and that address then enters a marketing sequence
- The questions touch health, finances or anything else a person would not want sitting in a spreadsheet
- There is a payment step inside the funnel
- Nobody in the business other than you can explain, or wants to own, the arithmetic behind the answer
If you build it anyway
the checklist, then the prompt that enforces it
- Put the calculation on the server and keep it in one file with named constants and a comment for every one saying where the number came from and when. If a visitor can read the formula in devtools, so can the competitor who was researching you this morning.
- Write tests for the boundaries before the design. Every threshold gets a case at the value, one below and one above, plus zero, negative, empty and absurdly large inputs. This is the cheapest thing on the list and the one that would have caught the incident above.
- Version the formula and stamp every stored result with the version that produced it. Without that you cannot answer "who got a wrong number and when", which is the only question that matters afterwards.
- Label the output as an estimate, on the page and in the email, in words a lawyer would recognise. It costs nothing and it changes what the number is.
- Have the person who owns real pricing sign off the constants, and re-check them on a calendar reminder. Rates go stale silently.
- Treat the email address as a separate decision from the quiz. Record what the consent was for, when, and from which page, and do not slide a marketing subscription in under the label of sending someone their result.
- Give responses a retention deadline at write time and expire abandoned partials sooner than completions — those people did not finish.
- Rate-limit and bot-check the submit endpoint, pin CORS to the domains you actually embed on, and validate every answer server-side rather than trusting the shapes the widget produced.
- If money is charged anywhere in the funnel, price it on the server from your own list. Never charge a total the browser computed from quiz answers.
I am building an interactive quiz and calculator funnel: questions, a scored or
calculated result shown to the visitor, and an email capture. Treat the output as
a published claim, not as UI. Work in this order.
1. Start with the calculation, not the design. Put it server-side, in one module,
with every constant named and commented with its source and date. If I ask you
to compute the result in the browser, refuse and explain that the visitor can
both read the formula and change the answer.
2. Before any styling, write boundary tests: every threshold at, just below and
just above its value, plus zero, empty, negative and very large inputs. Show me
the table of results and make me confirm the edges are what I intended.
3. Version the formula. Stamp every stored response with the version that produced
it, so "who saw a wrong number, and between which dates" is answerable.
4. Render the result with an explicit estimate disclaimer in the page and in any
email. Do not present a computed figure as a quote.
5. Validate every submitted answer on the server against the question definition.
The embed's endpoint is public regardless of where the widget is embedded, so
pin CORS to my real domains, rate-limit it, and add a bot check in v1.
6. Keep the email capture a separate step with its own record: what was consented
to, when, and from which URL. Do not bundle a marketing subscription into the
act of showing somebody their own result — if I ask for that, push back.
7. Store partial responses only if I ask, and if I do, expire them sooner than
completed ones and tell me the retention window you chose.
8. Give every response a deletion deadline at write time and write the job that
enforces it before the admin screen.
9. Do not add a payment step. If I insist later, the amount is priced on the
server from my own list and never taken from the request.
10. Refuse to add questions about health, symptoms, medication, income or debt
without telling me what that turns the stored responses into.
11. Out of scope for v1: email sequences, CRM sync, A/B testing the questions.
Say so, and say that if this quiz is going to quote people money, $49 a month
for someone else's tested funnel is the cheaper mistake.That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
The moment the result is a number somebody might act on. $49 a month is not buying the question cards — you can build those tonight, and probably better. It is buying a calculation engine other people have already been wrong in, versioned funnels, consent capture that comes with the form rather than after it, and payment and CRM steps that were not wired together by an agent at midnight. If the quiz is decorative, build it. If it quotes money, the subscription is cheaper than one screenshot.
$49/mo is cheaper than your weekend.
The pieces come apart cleanly, which is the one genuinely good thing here. The funnel definition is JSON, the responses are a CSV, and both import into any of the commercial builders in an afternoon. Two things do not travel. The first is the formula, which lives in your code and has no equivalent field in an export — write it down separately, with its constants and their provenance, or the migration silently drops the only part that was ever yours. The second is consent: whatever you recorded about why you hold each email address has to move with the address, because a list that arrives at a new provider with no provenance is a list you cannot lawfully send to. Export both, then delete the responses you no longer have a reason to keep.
Actively developed open-source survey and experience platform with logic jumps, self-hostable so responses stay on your own infrastructure.
Questions
It's a marketing quiz. How much trouble can arithmetic be?
Depends entirely on what the answer is denominated in. "You're a Type B planner" is entertainment and belongs in the ship-it list on this page. "You could save £4,100 a year" is a representation your business made to a consumer, and the interesting thing about wrong formulas is that they do not fail loudly — the number is well-formatted, confident and stable, so it survives for months while people make decisions on it.
Why does gating the result behind an email matter so much?
Because it changes what the transaction was. The visitor gave you an address to see their own answer; the list then gets sequenced, and the record of what they actually agreed to is usually a checkbox nobody stored. Under GDPR consent has to be specific and demonstrable, and CAN-SPAM has its own rules about what you send afterwards. Capture the purpose, the timestamp and the source URL at the moment of capture, or you have a list you cannot defend.
Can I just keep the calculation in the browser? It's faster.
It is faster, and it hands over two things. Your pricing model becomes readable to anyone who opens the bundle, which matters more than people expect for quote calculators. And any value posted back — the total, the score, the tier — is now under the visitor's control, so if anything downstream trusts it, from a discount to a payment amount, it is not a calculation any more, it is a suggestion.
- GDPR Art. 5 — principles relating to processing of personal data (EU)
- GDPR Art. 7 — conditions for consent (EU)
- CAN-SPAM Act compliance guide for business (FTC, US)
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
A form that emails a result to whatever address it is handed is an open relay with your logo on it.
A public poll is a vote count anyone can write to. Yours is accurate until one person with a for-loop cares.
A total computed in the browser is a discount code for anyone who can open devtools.
last reviewed 2026-08-05 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice