Getting started
Development and production
Two environments, deliberately unlike each other.
Every project starts with a development environment. You create production when you are ready to have real users.
They share nothing: separate users, separate keys, separate signing keys, separate organizations. A user who signs up in development does not exist in production.
What development does differently
Email is captured, not delivered. Sign-up confirmations, magic links and password resets are stored and shown in the console’s Sandbox instead of being sent. You can build and test a whole sign-up flow without an inbox, and without emailing a real person by accident during a seeding script.
Limits are lower. Development caps the number of users, which keeps a runaway test loop from filling a table you will never look at again.
The ZevAuth badge always shows. “Secured by ZevAuth” cannot be removed in development on any plan, so you never design against a screen that production will not give you.
Going live
Production requires a verified domain, because a publishable key is locked to it. The console walks you through the DNS records and tells you what is outstanding.
Once production exists, the two run side by side forever. You do not migrate between them, and you do not promote one to the other.
Changing your domain later
The domain is a security boundary, not a label: your live publishable key only answers for browsers on it, and the ZevID badge vouches for it. So changing it is deliberate. In Configuration → General the domain is read-only with a Change button that says what will happen first: the DNS proof is cleared, live browser sign-ins pause until the new domain is proved, and ZevID resets your verification. Server-to-server calls with your secret key are unaffected throughout. You are taken straight to Go live to prove the new domain, and the pause lifts the moment the record checks out.
If your domain is at ZevCloud
The last step is a DNS TXT record proving the domain is yours. If you manage that domain at ZevCloud, the console offers to add the record for you: one button, and ZevID is asked to check straight away. The first time, ZevAuth asks for permission to manage DNS on your behalf; you approve it at ZevID and are returned to the same step. Nothing is written until you have approved, and you can revoke the access from your ZevID account at any time.
One thing worth knowing whichever way you add it: press Check now after the record exists, not before. A check that runs while the name is still missing teaches DNS resolvers that it does not exist, and they remember that for up to 30 minutes. It clears on its own; there is nothing to fix.
The button appears only when you have a ZevCloud account and a zone that covers the project domain. Without one, the record shown above is what to add, in whichever DNS provider you use.
Updated at, Wednesday, October 21, 2026