Curio Against the Five Tests

Curio is the AI chat assistant I sell to website owners. It already has a written constitution and a pricing page that shows its math. That's a head start, not a pass, so it answers to the same five tests as everything else.

Curio puts a chat assistant named Hugo on a website. A site owner adds one script tag, Curio reads their site, and Hugo answers visitors' questions from that site's content, with links to where each answer came from. Site owners pay for the answers from a prepaid balance.

It has two kinds of people to answer to: the site owners who pay, and the visitors who type questions. I checked each test against both, using Curio's public pages and its code.

One thing to say up front: Curio sends some account signals to MIR, which is also mine. Where that matters below, I say so.

Test 1: Leaving is easy

A customer can export everything they put in, in a format another tool can read, without asking anyone.

Visitors: passes. A visitor's conversation lives in their own browser. The chat menu has "Download transcript" and "Email me a copy", and neither needs an account.

Site owners: not met. Removing Curio is deleting one script tag, and there are no exit fees. But a site owner puts in more than their website: settings, house rules, corrections to wrong answers, comparison notes for sales questions, and months of usage and billing records. None of it has a download button. Curio's own constitution says "export on request", and the test says without asking anyone. There's no way to close the account yourself either. Prepaid credits aren't refundable, so a balance you haven't used stays behind if you go. The terms say that plainly, which is better than hiding it, but it's still a cost of leaving.

Test 2: Pricing is legible

The price page says what one unit costs and what a unit is.

Passes, and it's the strongest result of any product I've measured. The pricing page says what a unit is (one conversation, billed by the AI model's tokens), what a typical one costs (about 9 cents on Standard, 14 on Pro), and how that's worked out. It publishes the raw rates Curio pays per million tokens, and the multiple charged on top: 5.2 times on Standard, 8.5 times on Pro. Anyone can check the arithmetic. It also says what the multiple pays for. The balance is prepaid, so there are no surprise bills. When it runs out, Hugo pauses.

One heading contradicted it, and it's fixed. The constitution called this "Honest, at-cost pricing." A price at 5.2 to 8.5 times cost isn't at cost. The heading now reads "Honest, usage-based pricing," which matches what the pricing page says.

Test 3: Privacy is the default

There's a public list of every piece of data the product collects, and why.

The strong part. Curio doesn't store conversations. The privacy page says so, and the one exception is stated plainly: a short note a visitor adds to a thumbs-down, kept so the site owner can fix the gap. There's a public list of every company that touches the data and what each one sees. Personal details are removed before a transcript is sent to the site owner. The widget tells every visitor they're talking to an AI, and tells them when the chat is shared with the site owner.

Two things aren't on the list. The server's request log records the IP address of every visitor and the page they asked from. The privacy page's "Automatically" section names a sign-in cookie and the browser's own storage, but not that log, and it gives no retention period for it. And when a transcript is sent to a site owner, Curio adds the visitor's IP address and the page they were on. The widget tells visitors that personal details are removed before sharing. It doesn't say the IP address is added.

Not met until both are listed, and the widget's notice mentions the IP address. The simpler fix for the second might be to stop attaching it.

Test 4: Accountability is independent

The party being judged doesn't hold sole control of the evidence it's judged by.

Not met. Curio counts the tokens and bills from that count. The dashboard shows a site owner their token totals, and the published rates let them check the math, but not the count itself. Outage credits work the same way: they're automatic, which is generous, but Curio's own monitor decides when there was an outage.

One part goes further than anything else I've built. When a transcript is emailed, Curio records its fingerprint in MIR's public log, and that log is anchored to the Bitcoin blockchain within a few hours. Anyone holding the transcript can check it hasn't been changed, without trusting Curio. MIR is also mine, so until the anchor lands it's my company checking my company. The Bitcoin anchor is what makes it independent. It covers transcripts, though, not the bill.

Test 5: The principles live in the structure

A future owner can't quietly remove them. The charter holds them, not the founder's good intentions.

Not met, but closest. Curio is the first product I've measured here with its principles written down: a public constitution with a list of what it will never do. Writing them down was the hard part. But nothing binds it. The terms of service don't mention the constitution, and the terms say they can change with notice. Curio is a brand of my company, phpMyDEV, LLC. A future owner could edit the constitution the same afternoon they bought it.

Where that leaves it

  • Test 1, leaving: passes for visitors, not met for site owners.
  • Test 2, pricing: passes.
  • Test 3, privacy: strong, not met until the request log and the IP address in transcripts are listed.
  • Test 4, accountability: not met. Transcripts can be checked from outside, but the bill can't.
  • Test 5, structure: not met, but the constitution exists.

Curio shows what the five tests look like when a product starts from them: prices you can check, conversations it doesn't keep, a constitution in public. What's missing is the same as with Pixboard and VoltJS: the exit for paying customers, a complete data list, and something that holds the constitution past me.

What has to change, in order:

  1. The privacy page lists the request log and how long it's kept, and the IP address and page added to transcripts. The widget's notice says so too, or Curio stops adding them.
  2. The constitution's pricing heading matches the pricing page. Done.
  3. Site owners can download everything they set up, and their usage and billing records, without asking.
  4. Site owners can close their own account.
  5. Site owners have some way to check the token count against something besides Curio's own records.
  6. The terms of service make the constitution binding, so changing it takes more than an edit.

When these change, this page will say so.

-- Richard Whitney. Write to me if this lands with you, or if you think I've got it wrong. More case studies.