Separate services
Development starts empty. Deploy the Postgres, Auth, Storage and Redis it needs, and they never share anything with production's.
Every project starts with production. Add a development environment next to it, with its own database, bucket, Redis, keys and .env. Nothing is shared, so work in development never touches real data.
Production and development, each with its own services, keys and .env.
Development starts empty. Deploy the Postgres, Auth, Storage and Redis it needs, and they never share anything with production's.
Each environment has its own credentials, custom variables and .env file. A leaked development key opens nothing in production.
Switch from the project header and stay on the same tab. Development lives at <slug>-dev and its pages carry a tag, so you always know where you are.
Production is the default. Add ?environment=development to the API and .env download, or pass the environment argument to the MCP tools.
Development buckets already accept browser uploads from http://localhost on any port. Production accepts only the sites you list.
Delete the development environment from Settings and only its services go. Production is deleted only with the whole project.
Open the switcher under the project's name and add a development environment. It starts empty.
Deploy the services development needs. Each gets its own credentials and its own .env.
Point your local app at development's .env and your live app at production's. Switch any time.
# Production's variables (the default)
curl -fsS -H "Authorization: Bearer <access token>" \
"https://cloudhike.dev/api/projects/<project id>/env" > .env.production
# Development's variables, for your machine
curl -fsS -H "Authorization: Bearer <access token>" \
"https://cloudhike.dev/api/projects/<project id>/env?environment=development" > .env.localSame project, same .env, same bill.
Postgres, auth, storage, Redis, email and AI models. One API key.