The promise

Six commitments, and what would catch us breaking each one.

Most study apps make money by being hard to leave. The four promises that used to be on this page described a billing system we do not have, which made them impossible to break and therefore worth nothing. These are the ones that can be checked.

Cancelling takes two taps, and always will.

Settings, cancel, confirm. No exit interview, no four-screen retention funnel, no “are you sure?” followed by “are you really sure?”. Your plan runs to the end of the period you paid for and we do not charge again.

Held by a route

POST /api/subscription/cancel exists and works today, before there is anything to cancel.

We will not put a number on this page that we cannot show you the source of.

No student count, no star rating, no invented retention percentage, no testimonials from people who do not exist. Every figure we publish is either sourced to somebody else's open dataset or computed from our own logs with its sample size printed next to it.

Held by a test

src/lib/honesty.test.ts fails the build if any of the deleted figures or the eight invented testimonial names is retyped anywhere in src.

A sentence about what this product does has to name the code that makes it true.

And that code may not be a component. Chrome asserting a capability, evidenced by more chrome, is how a competitive-play button that issued no network request shipped to a live screen in this product — so the rule is mechanical rather than cultural.

Held by a test

backingIsValid() in src/lib/marketing/claimScan.ts refuses anything under components/ or ending .tsx as evidence.

The measurements that failed stay published.

We built a levels-of-response marker for extended answers, tested it against a fixed rubric, and it missed its bar — so it is off, and the number is on /proof at the same size as the numbers we like. A proof page you can only pass is not a proof page.

Held by a route

/proof renders it from publishedAgreement(), which recomputes from the raw run at module load.

Nothing you have earned will expire, and no upsell will interrupt you.

Not a banner mid-lesson, not a countdown, not a modal between a question and its answer. And nothing you have built — your record, your due dates, your learner model — sits behind a card or runs out if you stop paying.

Held by nothing yet

Nothing enforces this yet, because there is nothing to sell. It is written here now precisely because it costs us nothing today, which is the only time a commitment like this is worth making.

Your data stays yours and you can take it out.

We do not sell it, we do not feed it to third-party training runs, and we do not hand it to advertisers. A school or a parent sees only what you choose to share with them.

Held by a route

GET /api/account/export builds the full payload today, before there is any lock-in to escape.

Not naming names

What other study apps do.

You have probably been on the receiving end of at least two.

  • Auto-renew silently when a free period ends, with no warning
  • Hide the cancel button behind five screens and an email request
  • Send daily upsell modals while you are trying to study
  • Ignore cancellation emails and keep charging
  • Sell or share student data with advertisers
  • Use dark patterns to make you forget you are paying

Studara does none of the above, and cannot start doing most of them without deleting a test first.

One promise we will not make.

We will not promise never to be wrong. We will be. When we are, it goes on this page and on /proof, and we fix it — the marker that failed its bar is already there.

There is nothing to buy today. Not as a launch offer — as a fact about the code: no feature in Studara checks whether you have paid, so every tier we could print would describe a distinction the product does not make.

Get startedThe proof

This page is the source of truth. If you find somewhere in the product where we are not living up to it, tell us athello@studara.app.