Your puzzles are yours

These puzzles are personal — inside jokes, memories, things only you and someone you care about would understand. That kind of data has no business sitting readable in someone else's database.

If I were a user, I'd hesitate. And I don't build things I'd hesitate to use.

So here's what we did.

Encrypted before it leaves your browser

When you create a crossword, your browser generates a random encryption key, scrambles everything — the name, the clues, the answers, the personal message — and only then sends the scrambled data to our server. The key to unlock it? It lives in the link you share, in the part after the # symbol. That part never gets sent to any server. Not ours, not anyone's. It stays in the browser.

Our database stores meaningless scrambled text. We can't read your clues. We can't see who the puzzle is for. We can't read your message. Even if someone broke into our database, they'd find nothing usable.

The only way to read your puzzle is to have the exact link you shared.

How it works

Your browser
1You write your puzzle — name, clues, message
2Browser generates a random secret key
3Browser encrypts everything into scrambled text
Encrypted datasent to server
Secret keystays in link
Our server
name:""
clues:"a8xK2f..."
message:""

Stores only scrambled text. We can't read any of it.

The link you share
crosswrd.site/p/abc123#k=secret-key-here
Before # — sent to serverAfter # — never leaves the browser
Their browser
1Browser fetches encrypted data from server
2Browser reads the secret key from the link
3Browser decrypts everything locally
Puzzle is restored and playable

No accounts. No tracking. No analytics. No cookies. We don't know who you are, and we don't want to.

Still don't believe us? Our code is open source. Read exactly how it works, line by line. We have nothing to hide — and neither should your data.

Cheers,

Vivek