We publish the real number, whatever it is.
Violet is pre-launch, which means the honest numbers are small. Most sites hide small numbers or dress them up. This page does the opposite: the waitlist count below is read live from the same database the signup form writes to, and the inventory below it lists what is built and what is not. If the number embarrasses us, it stays anyway. That is the deal.
On the waitlist right now
The live count is not showing, which means JavaScript is off or the endpoint did not answer. Nothing is cached or substituted in its place: this page shows the live number or this sentence, never a stale or invented one.
Total is every signup. Confirmed is signups that clicked the double opt-in email. Both move only when a real person acts.
The number comes from GET /api/open, which returns exactly two aggregate counts: total and confirmed. It never returns emails, sources, positions, or anything about an individual signup, it is rate limited like every other waitlist endpoint, and it is served with cache-control: no-store so what you see is live. You can call it yourself and check.
Why show a small number on purpose
Because the product is a promise about honesty
Violet's whole pitch is that we built ourselves out of the ability to lie to you about your data. A marketing site that inflates its numbers while making that pitch would refute itself. So the site runs under the same rule as the product: real data or an honest empty state.
Because small real numbers are proof
Anyone can claim thousands of users. A live counter that is willing to say a small number is evidence of the thing that actually matters here: that every number on this site is real. The count is the trust demo, not the traction demo.
Because you can check it
The endpoint is public, the worker code and its tests are in the repository, and the build log records what shipped and when. A claim you can verify is worth more than a big number you cannot.
Built and not built, as of 2026-08-17
Same rule as the build log: built means the code exists and its tests pass, live means a stranger can touch it in production, and nothing here is a roadmap. The full story is in build log 001 and build log 002.
Live today
This site at heyviolet.io. The waitlist with double opt-in email and referral positions computed from real database math. The seal-a-secret demo on the homepage, running the product's actual crypto in your browser. Three free tools: the passphrase strength checker, the personal threat model worksheet, and the voice assistant privacy audit. The build log with its RSS feed. This counter. And as of 2026-08-17, the product itself at app.heyviolet.io: accounts and end-to-end encrypted sync are live, with AI reasoning off until a model provider is wired, which the app states honestly.
Built and tested, partly launched
The companion client (49 passing tests) and the cloud spine with end-to-end encrypted sync (91 passing tests) now serve app.heyviolet.io. The zero-knowledge recovery kit ships with them. Desktop packaging is built but unsigned. Deployed is not adopted: the door is open, and the room is still empty.
Not true yet
No AI reasoning in the product (no model provider key is set, so the app says so instead of pretending). No paying customers, no revenue, no checkout. No app store listings. Privacy policy and terms are drafts awaiting counsel. When any of these changes, the build log will say so with a date.
Where to check our work
- 01The build log: dated, plain entries on what actually got built, including the unflattering parts. Subscribe by RSS.
- 02The security reviews: build log 002 documents the adversarial review gates finding real holes in our own code, what the holes were, and how each was closed.
- 03The encryption, line by line and what standards recommend vs what we ship: the architecture explained against its own code and primary sources.
If a company that publishes its real numbers is the kind you want holding your sealed envelopes, join the count above. One email when she is ready.
Join the waitlist