Migration guides
What to check before moving, how to make the switch, and how to roll back. Each guide includes example commands and testing steps. Try them on staging first; the guide says whether integration testing is recorded.
Migrate site search from Algolia to Typesense Cloud
Move records and search settings to Typesense, connect your InstantSearch UI through an adapter, and compare relevance before switching traffic.
Search · hands-on: 2–5 days for product or docs search; more for rules, personalization or NeuralSearch
Add relevance testing and keep dual writes running for at least two weeks after reaching full traffic.
Migrate authentication from Auth0 to self-hosted Keycloak
Move users and passwords, set up production Keycloak, and update your apps to use it. Includes staged cutover and the limits of rolling back to Auth0.
Authentication · hands-on: 2–4 weeks of hands-on work
Allow time for the hash export, staged cutover and a 1–3 month lazy-migration window if used.
Migrate Linux servers from AWS EC2 to Hetzner Cloud
Check your AWS dependencies, build the Hetzner network and servers, copy data, and switch traffic. Plan database rollback separately from DNS.
Servers & VPS · hands-on: 1–2 weeks for stateless apps; 1–3 months when databases and object storage move too
Add a pilot, data-copy and replication windows, plus at least two weeks of rollback capacity.
Migrate logs, host metrics and APM from Datadog to Grafana Cloud
Send telemetry to both platforms with Grafana Alloy, rebuild dashboards and alerts, and verify coverage before retiring Datadog.
Logs & monitoring · hands-on: 1–2 weeks for a few dozen hosts and dashboards; more for heavy APM or hundreds of monitors
Run both platforms for at least two weeks, covering a deploy, a peak and an alert rehearsal.
Migrate text-to-speech from ElevenLabs to Inworld TTS
Rebuild voices and streaming calls, check pronunciation and audio formats, and run a blind listening test before a staged rollout.
Text-to-speech · hands-on: 1–3 days of hands-on integration
Allow 1–2 weeks for blind listening tests, latency measurement and staged rollout.
Move GitHub Actions jobs to Ubicloud runners
Try Ubicloud on one workflow, check images and caching, and compare cost per build. Use a repository variable to switch back without a commit.
CI runners · hands-on: Half a day for one repo; 1–2 weeks across a larger organization
Pilot the same commits for a week before rolling out, and keep the old runner path available.
Migrate transactional email from SendGrid to Amazon SES
Verify your domain, move suppression lists, adapt templates and events, and shift sending to SES gradually. Keep SendGrid ready for rollback.
Transactional email · hands-on: 2–4 days of hands-on work
Allow production-access approval, a 1–2 week staged cutover and one billing cycle of rollback capacity.
Migrate web maps from Google Maps to MapLibre + Protomaps
Host an OpenStreetMap basemap, replace Google Maps JavaScript with MapLibre, and move geocoding. Check data licenses and missing features before switching.
Maps & geocoding · hands-on: 1–3 days for a store locator or listings map; more for Places, Street View or routing
Add geocoding reconciliation, a staged rollout and a basemap-refresh schedule.
Migrate DNS from NS1 to Amazon Route 53
Export and convert your DNS zones, check the answers on both providers, and switch nameservers with NS1 kept ready for rollback.
DNS · hands-on: 1–3 days of hands-on work; more for traffic steering
Allow DNSSEC and delegation TTLs, then keep NS1 serving for at least a week after cutover.