MiniEnv vs
sending the .env file

Sending the file works. That is why almost everybody does it, and why a comparison page that pretends otherwise is not worth reading. The problem is not the sending. It is that you cannot unsend it, nobody records who has it, and changing one value means finding every copy.

FIGURES CHECKED 30 AUGUST 2026
MiniEnv compared with Sending the .env file
MiniEnvSending the .env file
CostFree to five people, then $29.99/mo flatNothing, ever
SetupDownload, sign in, share a projectNone. You already know how.
Who has a copyThe current members of the projectUnknown, and unknowable
Changing one valueEveryone has it on their next pullFind every thread you sent it in
When somebody leavesEvery value re-encrypted before the removal is acceptedNothing happens. They keep the file.
Secrets that are not KEY=valueA vault of up to 100 entries per project, alongside the env varsWhatever you attach, carrying every problem above

The comparison is against the practice, not a product, so the only checkable figures here are ours and the popularity of the .env format itself.

What MiniEnv does not do. The app runs on macOS 12 or later, on Apple Silicon. There is a CLI, which does the same encryption with the same Keychain identity and covers projects, members, teams, devices and the vault, but it is macOS only as well and it needs Node 20.19. So: no Windows, no Linux, no iOS, no Android, on either. Nothing injects secrets into a running service and nothing fetches values at boot. If any of that is a requirement, stop reading here: the tool on the other side of this page is the right one.

Why it is so hard to beat

The .env file is not a bad format. It won because it is the smallest thing that works: one file, one line per value, readable by everything. The dotenv package recorded 178,126,632 npm downloads in the week of 23 to 29 August 2026, which is not a fashion.

And sending it is free, instant, needs no account from the person receiving it, and has no failure mode on the day you need it. Every tool on this site, including ours, is worse than that on all four counts.

What it actually costs, stated plainly

Not "it is insecure". That is the version of this argument nobody acts on. Three specific things:

MiniEnv does not fix the third one retroactively either. Removing somebody re-encrypts everything so they read nothing new, but a value they already pulled is on their machine and stays there. Rotate it at the provider. Anybody selling you a tool that claws a secret back is selling you something that does not exist.

And the things that are not in the .env file at all

The .env is only half of what gets sent. The other half is the service-account JSON, the Apple .p8, the PEM, the deploy key, the recovery codes. Those get attached to a message, and they are worse than the env file on every count above: bigger, longer-lived, and harder to rotate.

MiniEnv keeps them in a vault beside the env vars, encrypted to exactly the same people, up to 100 entries per project at up to 65,536 bytes each. It is a separate collection rather than a flag, so nothing that writes a .env or pushes to Vercel can reach one.

One thing it does not hide: the relay can see that a project holds an entry labelled "Firebase admin (prod)" of kind service_account. The label and the kind are plaintext to us. The value never is.

When sending the file is still right

A side project with one contributor. A value that is not a secret. A one-off handover to somebody who is about to have production access anyway. Anything where the list of who holds a copy is short enough to keep in your head and short enough to stay there.

The moment that list stops fitting in your head is the moment any of this is worth paying for, and that moment usually arrives somewhere around the third or fourth person.

When to keep sending the file

Where these numbers came from

Every figure above, including ours. If one of them has gone stale, it is a bug on this page and worth telling us about.

The other comparisons