Hosting overview
Choose a path:
| Option | Best for | Needs Blaze? | App config at |
|---|---|---|---|
| Docker | VPS, Railway, Fly, Render, SSH hosts | No | Runtime env / mounted JSON |
| Firebase Hosting | Spark free CDN · live demo | No | Build-time .env / CI secrets |
| Cloudflare Pages | Global CDN | No | Build-time Pages env vars |
| Vercel | Git-connected static | No | Build-time Project env vars |
| Netlify | Git-connected static | No | Build-time Site env vars |
| AWS Amplify | AWS static hosting | No | Build-time Amplify env vars |
Static hosts publish out/ from:
bun install
bun run build
Docker uses the Go image — no Next build inside the container.
Before you deploy (every platform)
Customize these for your Android / iOS app. Details: Configuration.
| File / place | What to change for your app |
|---|---|
config/site.json | Brand, headline, tagline, footer, store button labels, theme colors |
.env (or host CI env) | Store URLs, ANDROID_PACKAGE_NAME, SHA-256 fingerprints, IOS_TEAM_ID, IOS_BUNDLE_ID, optional path overrides |
| Platform config file | Usually do not change headers — only project/site name (see each hosting page) |
Association env (required for email links)
# Android App Links
ANDROID_PACKAGE_NAME="com.yourcompany.yourapp"
ANDROID_SHA256_CERT_FINGERPRINTS="AA:BB:CC:..."
# iOS Universal Links
IOS_TEAM_ID="ABCDE12345"
IOS_BUNDLE_ID="com.yourcompany.yourapp"
# Optional — default paths already include /__/auth/links*
# IOS_APP_PATHS="NOT /_/*,/*"
# IOS_INCLUDE_AUTH_LINKS="false" # only if you must disable Firebase auth path
After deploy, verify in a browser (must render JSON, not download):
https://YOUR_DOMAIN/.well-known/assetlinks.jsonhttps://YOUR_DOMAIN/.well-known/apple-app-site-association
Live Firebase example: https://fir-email-link-host.web.app · assetlinks.json · AASA
Static vs Docker: where env lives
Static CDN (bun run build → out/) | Docker / Go | |
|---|---|---|
| Landing copy / theme | Baked in at build from config/site.json + env | Read at runtime |
assetlinks / AASA | Generated in prebuild from env → copied into out/ | Built from env on each request / start |
| Change app IDs later | Rebuild + redeploy | Restart with new env (or remount JSON) |
Platform config files (quick map)
| Platform | File you may edit | Typical app-specific edit |
|---|---|---|
| Firebase | .firebaserc | Set "default" to your Firebase project ID |
| Firebase | firebase.json | Keep as-is (headers for .well-known) |
| Cloudflare | wrangler.toml | Optional name for your Pages project |
| Cloudflare | public/_headers | Keep as-is |
| Vercel | vercel.json | Keep as-is (headers only) |
| Netlify | netlify.toml | Keep as-is |
| Amplify | amplify.yml | Keep as-is; set env in Amplify console |
| Docker | compose.yml / .env | Ports, image tag, SITE_CONFIG_PATH mount, all app env |