Skip to content
Coffee Env

Somewhere to keep your .env files.

Sign in with Google. Unlock with a passphrase. Paste. Save. Open it on the other laptop and copy it back out, byte for byte. The server holds ciphertext and nothing else.

Invite only. One person, several projects, a handful of environments each.

What it looks like, on made-up projects. Every value is masked until you ask.

What comes out is exactly what went in

Stored as pasted

No trimming, no reformatting, no sorting. CRLF, a missing trailing newline, a multi-line private key — all kept, byte for byte.

Sealed in your browser

AES-256-GCM, under a key derived from your passphrase with 600,000 rounds of PBKDF2. The key never leaves the tab.

Every save is kept

The last twenty versions of each environment, so pasting local over production is a mistake you can undo.

Values stay masked

Keys are shown, values are dots until you ask. Copy one value or the whole file, and the clipboard is cleared after you.

What the server learns anyway

  • Your email address, your name and your avatar, from Google.
  • How many projects you have and how many environments are in each.
  • Roughly how large each environment is — one of seven size steps, from 4 KB up.
  • When each row was created and last saved, and how many times it has been saved.
  • Your IP address and browser, as any web server does.

What it never learns

  • A project name, an environment label or a note.
  • A variable name, or a value.
  • Your passphrase, your recovery key, or any key derived from them.

Those are the things people actually care about, and the reason the list beside this one is acceptable.

The honest limits

There is no reset.
Lose both your passphrase and your recovery key and the data is gone — not withheld, gone. Nobody here can open it, which is the point.
Copied is copied.
A copied secret is on your clipboard, in any clipboard manager you run, and — with Universal Clipboard — on your other Apple devices. This app clears its own copy when it safely can, and says so when it cannot. It cannot reach anywhere else.
The page is the trust.
Your passphrase is typed into JavaScript this site serves. Whoever controls the site in future could change that JavaScript. What they could not do is read anything you stored before.
It is not a runtime secret store.
No API, no CLI, no CI integration. The moment a machine can fetch a secret without a person typing a passphrase, the passphrase stops being the protection.