Skip to content

Preview vs Production

Every Vulcan app has two environments. Understanding the difference keeps you from accidentally breaking things that are already live.


The two environments

Preview

  • Your work-in-progress environment
  • Every time the AI makes changes, the preview redeploys automatically
  • Has its own isolated URL, data, and storage
  • Safe to experiment in — nothing here affects your production app

Production

  • Your live, stable app
  • Only updates when you explicitly click Deploy to Production
  • Has its own isolated URL, data, and storage
  • This is what your users see — be intentional before deploying here

The workflow

The intended flow is:

  1. Work in the chat → changes go to preview automatically
  2. Test in preview — click around, try the features
  3. When you're happy → click Deploy to Production
  4. Production is updated; preview continues as your sandbox

Preview URLs

Preview apps are accessible at a URL like:

https://vulcan.shipveho.com/preview/yourname/your-app/

You can share this URL with a teammate to get feedback before going to production.


Production URLs

Production apps live at:

https://vulcan.shipveho.com/yourname/your-app/

This is your permanent, shareable app link.


Data isolation

Preview and production have completely separate data. This includes:

  • KV storage
  • SQL databases
  • File buckets

This means:

  • Records you create in preview don't appear in production
  • You can safely add, edit, or delete test data in preview
  • Rolling back in preview won't affect production data

Build check

Before deploying, Vulcan runs a quick build check — it compiles your app to make sure there are no syntax errors or broken imports. If the build fails:

  • The deploy is cancelled before anything goes live
  • Your previous version keeps running — a failed build never takes your app offline
  • The error appears in the Build Logs tab and in the chat
  • The AI can fix it: click "Send to Chat" in Build Logs or paste the error directly

This means you can always iterate freely. A bad change doesn't break anything that was already working.


Scale and traffic

Your app runs on a cloud platform that scales automatically. There's no server to configure and no capacity to manage.

In practice: whether ten people use your app at once or ten thousand, it handles it the same way. There's no "the app is overwhelmed" scenario.

The platform is suitable for any internal tool you'd realistically build for Veho. If you ever hit a genuine platform limit, the error will be explicit — but for typical internal apps it's not something you need to think about.


Custom domains

Apps are served at nyx.shipveho.com/{yourname}/{appname}/. Custom domains (e.g. mytool.shipveho.com) are not currently supported.


Who can access your app

Both preview and production URLs are protected by Vulcan's session auth — the same login that gates Vulcan itself. This means:

  • Only logged-in Veho employees can open your app
  • No one outside Veho can access it, even if they have the URL
  • Users are automatically identified — no separate login screen in your app

You don't need to add any auth code for this. It's enforced by the Nyx gateway before a request ever reaches your app.


When to deploy to production

A good rule of thumb:

  • ✅ New feature working correctly in preview
  • ✅ Nothing visually broken
  • ✅ Data operations (create, edit, delete) behave as expected
  • ✅ If it's a significant change, a version snapshot is saved

Then deploy to production.

Built by the Veho Developer Platform team