With Coherence, it's easy to migrate your app from Vercel to AWS or GCP. You get the compliance, cost, customizability you want. And you can use your cloud credits too, especially if you're a startup. Coherence gives everything you loved on Vercel, like built-in CI/CD, Console access in the browser, and preview environments. And we add on some cool new tools like Workspaces and Velocity analytics.
Here's how you can migrate in just a few steps. In this example, we'll migrate an app using Neon from Vercel onto Google Cloud Platform. The app is based on this Vercel template: https://github.com/vercel/nextjs-postgres-nextauth-tailwindcss-template and reflects a complex SaaS app that uses a serverless postgres database in a Next.js app with react in order to deliver a great experience to users. Vercel also offers postgres which is a wrapper around Neon - the biggest difference is that you cannot use Vercel postgres outside the Vercel platform easily, so you'd need to migrate your data to Neon itself or to a cloud RDBMS like RDS or Cloud SQL. In the end, the right choice for your team is up to you, we'd love to help either way, and we've got lots of other examples on this docs site of using these systems as well. For migrating this app, where we'll stay with Neon directly, you can watch a video of this whole process right here.
Connect Coherence to Github and AWS/GCP
Go to app.withcoherence.com, create an account, and create an application - following our simple onboarding flow.
Configure your Coherence application
Set environment variables
Copy over any environment variables. Managed resources like databases will have their variables automatically injected by Coherence and you don't need to copy over things like
REDIS_URL. If you're using external providers (e.g. Neon) without an integration like we are here, you can enter those variables directly. See more on environment variables here.
Choose repo or UI for config
You can choose between managing your
coherence.yml file in your repo for a "gitops" style of working, or in our UI for more flexability.
Generate your Coherence.yml
With either approach, we'll help you generate a draft
yml file using our AI-powered agent. Just click the "Generate" button, edit as desired, and choose your config option. When editing your config, compare it to your Vercel configuration to capture the same commands in the appropriate places. See the video above for an example of how quick and easy this is!
(Optional) Configure advanced features
Test your application, check out preview environments
Make sure your app works from end-to-end. You'll know best how to test your app but common things to check on the infra side are: static assets, database connections, workers/crons, and logging. In this case, we check that the list view filters the database rows with the same behavior as we see on Vercel, using the pooled Neon database connection for seamless data transfer.
Migrate production, including any databases and DNS
This is the most complex and important part of the migration. Please get in touch with the Coherence team if you've got any questions - we're happy to help!
In general, here's the flow:
- Schedule the DNS switch, warn users about possible downtime if you have an SLA. Do this at an off-hour if you can.
- Set up custom domain in Coherence UI, add the records, switch in your DNS provider's UI
- Test system end-to-end, the DNS switchover can take time across different networks and systems (read more here)
- All done!