About

We built a bookmark manager we don’t need to be trusted with.

A promise is only as good as the people making it. What reaches our servers is already encrypted: even if we changed our minds tomorrow, we still could not open it.

Why this one exists

What you save is a fairly complete picture of what you are reading, buying, worrying about, and working on. Most bookmark managers hold that picture in readable form on their servers, and most of them mean well. But meaning well is a policy, and policies change with funding rounds, acquisitions, subpoenas, and breaches.

So Bracemark is built the other way round. Your password unlocks a key on your own device; every link, list, and tag becomes its own encrypted file before it is uploaded; what the server keeps of it is a path, a size, a timestamp, and some bytes. Around that sits the account — your username, your sessions, your plan if you buy one — and nothing readable from a single link. There is no “we promise not to look” in that sentence, because there is no looking available to promise against.

What it costs to build it this way

Each of these is something you can do in an ordinary bookmark manager and can’t do here. We would rather you knew now.

No password reset
We hold no key, so there is nothing on our side to reset with. A recovery code is the second door, and saving it is genuinely on you.
No shared or public lists
Sharing means handing someone the means to decrypt part of your library. It is real work rather than a button, and we would rather not fake it.
No public API
There is no public API today, and nothing for another app or a script to connect to. Part of that is simply unbuilt, and part of it is the architecture: anything we could serve from our side is ciphertext, so a useful API would mean putting your key somewhere it currently never goes. The export is the seam that does work — a readable backup, free on every plan, as often as you like.
No version history
Each link is its own encrypted file and the newest write is the one that survives. We hold no readable copy of your links to keep earlier versions in, so an edit you regret can’t be rolled back from our side. A backup export taken beforehand keeps the old version where you can read it. Restoring that backup brings back links you deleted and leaves the ones you still have untouched, so an old title or note is yours to copy back in.
No server-side search
Search runs on your device, over the copy of the library it already holds. That is why it is instant, and why it reaches only as far as that copy: our servers have nothing readable to search, so a device that hasn’t finished syncing has nothing to search either.
A saved link can rot
A saved link keeps the address, anything you write about it, and any preview data Bracemark extracts — at save time or later. The page itself is on someone else’s server: if it changes or goes away, what the library keeps is your record of the web, not the web.

Where it came from

Bracemark is the successor to Brace.to, a bookmark manager we have run since 2020 and still run today, on a decentralised identity stack. That one worked, and the people who used it were generous with their patience — but it was named after a domain nobody could say out loud, and better ways to do the same job arrived. Nothing forced the move: that stack is open source and we could have stayed on it indefinitely. We would rather build on the best tools for the job than stay on that stack out of loyalty — and a blockchain was never the part that kept those bookmarks private.

This one keeps the promise and rebuilds what it rests on. The encryption is now ours end to end: a key your password unlocks, with a recovery code as the second door. You create an account with a username. Nothing else.

How it pays for itself

Subscriptions. That is the whole model. There is no advertising, no data to sell even if we wanted to, and no investor waiting for us to change that.

It works because the architecture that keeps us out of your library also keeps it cheap to run: we store opaque blobs and do no work on their contents. That is why the free plan has no time limit on it. What Plus costs $48 a year pays for is the part that isn’t cheap: four clients, two servers, and the people who keep all of them working on platforms that change every year.

We intend to keep today’s free features free, and to never show an advertisement. If the app is worth paying for, some of you will pay for it.

Who makes it

A small team at STX Apps Co., Ltd. in Bangkok. Small enough that the person who answers support@bracemark.com is the person who wrote the code you are asking about — which is a support model with obvious limits and one real advantage.

See for yourself

Everything above is a claim about how the software works, made by the people who profit from you believing it. So the software is public: github.com/stxapps/bracemark-monorepo, under the AGPL-3.0. The apps, the browser extension, the two servers behind them, the key derivation, this page — one repository, all of it.

Being precise about what that buys you: you can read exactly what we do, and you can check that the encryption happens where we say it does. You cannot, from the source alone, prove that the code your browser just ran was built from it — that would take reproducible builds, which we don’t yet publish. Anyone who tells you otherwise about their own app is overselling it. What open source removes here is our ability to describe the design as one thing while shipping another.

One more absence, since you would find it anyway: no third party has audited this code. There is no report to link, no security firm on retainer, and no transparency report, because none of those exist yet rather than because they say something we would rather you missed. What is here instead is the repository, this page, and a policy that inventories every field we hold.

Built with

Source
AGPL-3.0 · github.com/stxapps/bracemark-monorepo
Encryption
Argon2id · AES-256-GCM · Ed25519
Apps
React · Next.js · Expo
On device
IndexedDB via Dexie · SQLite
Server
Cloudflare Workers · R2 · D1
Interface
Tailwind CSS · Radix · shadcn/ui
Type
Bricolage Grotesque · Inter · IBM Plex Mono

The best way to judge it is to use it.

200 links, no card, no email address.

Create your account