In e-commerce your store is your edge, so we hide all of it. Its name, its full address, your Shopify and Meta logins: sealed before they reach our database, with keys the database never holds. We never know which store is yours.
Only what you share with it: your store's name — or a codename — and its daily numbers.
Showing the name is your call, and it happens only on the page your friends open. On our side it stays sealed. Change your mind? Hide it any time, in any room.
About you: the most we hold is the basics you sign up with — a name and an email — and even those are sealed in the database. They're opened only to show them to you, or to email you something you asked for.
Master key
Lives only in the server's environment. Never in the database, never in a backup.
↓ HKDF-SHA256 derives a separate key for every job ↓
Account keys
one per account · AES-256-GCM
email · name · store names · shop addresses · Shopify & Meta logins · ad accounts
Room keys
one per room · AES-256-GCM
room name · aliases · nicknames · roasts · chat · challenge titles & prizes
Fingerprint key
one for lookups · HMAC-SHA256
email and shop fingerprints — to sign you in and stop a store being connected twice
You connect a store
Its name, its address and its credentials are sealed with your account's own key the moment they arrive. The database only ever stores the sealed version.
Every value is bound to you
The seal records whose value it is and what it is. Copied into someone else's account or into another field, it refuses to open. Change a single bit, same.
We find you without reading you
To sign you in, we look up a keyed fingerprint of your email. It matches, but nobody can turn it back into an address — or test guesses against it — without the server's key.
Opened only where it's needed
Your store's name is opened only inside the page your room loads, for its members. The address and tokens only for the seconds a sync talks to Shopify and Meta. Nothing is written down in the clear.
Fictitious exampleA made-up account — Sam Example and Sample Socks Co. don't exist — sealed for real, with the same keys and the same code as yours, every time this page loads. Your own account is stored exactly like this; we never put anyone's real name, store or email on a page.
| Field | In our database | What its owner sees |
|---|---|---|
| Account | c7k2mq9x4wb83nd0e5tqv1yha random id | — |
| rf2:snMkNE…xw0z (72 chars)kept to sign you in, reach you about your account and share important updates about ROAStify — news and offers only if you said yes | sam.example@example.com | |
| Email fingerprint | 285d2577e7…3856 (64 chars)finds you at sign-in, can't be turned back into an email | — |
| Name | rf2:IEpIG0…OZEe (56 chars) | Sam Example |
| Password | $2b$12$… (60 chars)bcrypt: one-way, nobody can read it back | — |
| Store name | rf2:HLvVCK…Sg2g (63 chars) | Sample Socks Co. |
| Shop address | rf2:8BV7yH…RhzY (76 chars) | sample-socks.myshopify.com |
| Shopify credentials | rf2:lVhGud…mqcM (79 chars) | never shown, not even to its owner |
| A day of numbers | c9w4hz2rkt… · 2026-10-02 · 612000 · 81not sealed, so the podium can add them up — but next to a random id, not a name | $6,120 · 81 orders |
| Ad account | rf2:ZWP1CG…YiTw (55 chars) | act_1234567890 |
| A room | rf2:XoG1iO…9m5w (58 chars) | Example Crew |
It's sealed like the rest, but it's the one thing we open on purpose: to sign you in, send password resets, reach you about your account and share important updates about ROAStify — and, only if you said yes, news and offers. One switch in your account settings turns those off.
Every ten minutes the server opens your shop's address and token in memory, for the few seconds Shopify needs to answer. They're never written down in the clear, and never logged.
Daily sales, orders, sessions and ad spend are stored as they are, so the server can rank the podium — and so are a store's niche and main market, so benchmarks can group them. They sit next to random ids, not names.
Whoever runs the server could, in theory, open everything — true of any app that works while you sleep. The key isn't in the database or its backups, there's no admin panel, and no screen shows a store to anyone but its own room.
ROAStify · monthly bill
1 small servera few $
Investors to pay back$0
Ad networks$0
Data sold$0 · never
Paid bythe sponsor spots
ROAStify runs on one small server that costs us a few dollars a month. That's the whole bill: no investors to pay back, no ad network, no data deals.
The sponsor spots around the leaderboard cover it — and sponsors never see a name or a number.
Your data isn't the product. It couldn't be: it's sealed.
Questions, or found a hole? Write to hello@roastify.club. What we read from Shopify and Meta, and why: Privacy.