The migration process
Fixed fee, quoted in your assessment report. No hourly billing, no scope creep. If it takes us longer than planned, that's our problem.
Principles
- Read-only on your current provider, always. We build the new environment; we never touch the old one. Cutover actions that require write access (DNS flips, data export) are executed by you or by short-lived credentials you control and revoke.
- Everything is Terraform. No console clicking, no snowflake servers. Every resource in the target environment is code in a repo you own, planned and applied through Terraform Cloud.
- Zero downtime by design. The target environment is built and verified in parallel while your current stack keeps serving traffic.
Phases
1. Kickoff & repo setup
We create (or you create and invite us to) a repository in your GitHub or GitLab org. Terraform Cloud workspaces are set up under your organization with remote state, plan-on-PR, and apply gates. From day one, everything we produce lands as pull requests you can read.
2. Parallel build
We implement the target environment as Terraform: compute (Workers/Pages or VPS), databases, object storage, queues/cron, DNS records (unrouted), TLS, and CI/CD. Your current stack is untouched and unaware.
3. Data migration & verification
- Databases: replicated or exported/imported with a verified row-count and checksum pass. For Firestore to Postgres we map collections to a relational schema and port security rules to app-layer authorization.
- Auth: user records exported with password hashes where the provider allows it (e.g. Firebase Auth scrypt hashes), so there are no forced password resets.
- Objects/assets: synced (e.g. to R2), then re-synced at cutover.
- The target environment runs against production-shaped data and is verified: smoke tests, load sanity checks, and a staging URL you can hammer.
4. Cutover
A scheduled, reversible DNS switch:
- TTLs lowered ahead of time.
- Final data delta sync.
- DNS flipped to the new environment.
- Old stack kept warm as an instant rollback path until you're satisfied.
You execute the write actions (or grant a scoped, temporary credential for the window and revoke it after).
5. Handover & 30-day support
- The repo, Terraform state, and runbook are yours. They were in your org the whole time.
- 30 days of post-cutover support for anything that surfaces.
- Old-provider teardown checklist (what to cancel, when it's safe).
After the migration
The dashboard keeps working if you want it ($99/mo, optional, cancel anytime):
- Drift detection: if someone changes something in a console, you see it.
- IaC standards enforcement: modules, naming, tagging, remote state, and review gates checked on every change.
- Workspace management and cost tracking.
Fire us anytime. The code, the state, and the docs stay with you. No lock-in by design.