| Environment | Current | Target |
|---|---|---|
| Production | app.bzzr.com |
bzzr.com |
| Staging | app.staging.bzzr.com |
staging.bzzr.com |
| Webflow | bzzr.com |
decommissioned |
- Firebase Console →
bzzr-staging→ Auth → Authorized domains → addstaging.bzzr.com - Firebase Console →
bzzr-production→ Auth → Authorized domains → addbzzr.com - Firebase Console → App Hosting → Staging backend → Custom domains → add
staging.bzzr.com(note the DNS records) - Firebase Console → App Hosting → Production backend → Custom domains → add
bzzr.com(note the DNS records) - Lower DNS TTL on
bzzr.comto 60s (do this 24–48 hours before Phase 4)
Gate check: All Firebase Auth domains and App Hosting custom domains are configured. DNS records are noted but NOT updated yet.
bzzr-web:
- Update
apphosting.staging.yaml—NEXT_PUBLIC_API_DOMAIN:https://app.staging.bzzr.com→https://staging.bzzr.com - Update
apphosting.production.yaml—NEXT_PUBLIC_API_DOMAIN:https://app.bzzr.com→https://bzzr.com - Deploy staging
- Deploy production
bzzr-flutter (sidecast):
- Update
packages/bzzr_shared/lib/providers/networking/bzzr_app_base_url_provider.dart:- Staging:
https://app.staging.bzzr.com→https://staging.bzzr.com - Production:
https://app.bzzr.com→https://bzzr.com
- Staging:
- Deploy/release sidecast app
Backend:
- Add
https://staging.bzzr.comto CORS allowed origins onapi.staging.bzzr.com - Add
https://bzzr.comto CORS allowed origins onapi.bzzr.com
Third-party services:
- OAuth providers (Google, Apple, etc.) — add new domains to authorized redirect URIs
- GetStream.io — update any webhook URLs or allowed origins
- Mux — update any webhook/domain configs
- Cloudflare — update any origin rules if applicable
Gate check: All codebases deployed. Backend CORS updated. Third-party services configured. Old domains still work — nothing is broken yet.
- Update DNS for
staging.bzzr.com→ Firebase App Hosting (using records from Phase 1) - Verify DNS propagation
- Test: sign in / sign up flow
- Test: share links / copy link generate correct
staging.bzzr.comURLs - Test: public share pages load
- Test: API calls succeed (no CORS errors in console)
- Test: sidecast app authenticates successfully
Gate check: Staging is fully functional on staging.bzzr.com. No auth, CORS, or routing issues.
- Confirm DNS TTL on
bzzr.comis low (60s) - Update DNS for
bzzr.com→ Firebase App Hosting (swap from Webflow) - Verify DNS propagation
- Test: sign in / sign up flow
- Test: share links / copy link generate correct
bzzr.comURLs - Test: public share pages load
- Test: API calls succeed (no CORS errors in console)
- Test: sidecast app authenticates successfully
- Test:
app.bzzr.comstill resolves (keep pointed at Firebase for redirects)
Gate check: Production is fully functional on bzzr.com.
- Set up permanent redirects
app.bzzr.com→bzzr.com(Next.js config or Firebase) - Set up permanent redirects
app.staging.bzzr.com→staging.bzzr.com - Remove
app.bzzr.comandapp.staging.bzzr.comfrom Firebase Auth authorized domains - Restore DNS TTL on
bzzr.comto normal (e.g. 3600s) - Decommission Webflow site
Gate check: Old URLs redirect cleanly. No references to app.bzzr.com remain in active config. Webflow is shut down.