That being said, I know we are expensive and "don't add to bottom line" so this looks like good enough hacky kludge as anything else.
That being said, I know we are expensive and "don't add to bottom line" so this looks like good enough hacky kludge as anything else.
The goal is to start with good defaults so you don't have to think about every config detail upfront, but nothing is locked down. You can also set up approval workflows for any infrastructure changes that have cost implications before they're applied.
If I really cared about that I would just use k8s instead of hoping an infra as code tool mapped all these services somehow.
For example, your code references "a Postgres database" and Encore provisions Cloud SQL on GCP or RDS on AWS, handling the provider-specific config automatically. The cloud-specific details stay out of your application code.
And if you prefer Kubernetes, we can provision and configure GKE or EKS instead of serverless compute. The point is your application code stays the same regardless.
Encore Cloud (optional managed platform) has a generous free tier and paid plans for production teams that want automatic infrastructure provisioning in their own AWS/GCP accounts. You can find more details at encore.cloud/pricing
It might make sense for something like a "serverless" app where the units of the business logic are intended to map directly onto cloud provider entities.
It reminds me of https://aws.github.io/chalice/ but cloud-agnostic and Typescript in place of Python
The same application code can run locally (Docker), on AWS (RDS, SQS, Lambda), or GCP (Cloud SQL, Pub/Sub, Cloud Run) without changes. That's less coupling than explicitly configuring cloud-specific resources in Terraform or even using cloud SDKs directly.
Re: Chalice - similar idea but Chalice is AWS-only and focused on serverless functions. Encore is cloud-agnostic and works for any backend architecture (monoliths, microservices, containers, functions).
We've had a bunch of people migrate over from Heroku in the last couple years, especially after they killed the free tier.
The main difference from other alternatives is that you don't write any infrastructure config - you just declare what you need in your code (databases, cron jobs, pubsub, etc) and Encore handles provisioning it in your AWS/GCP account (works locally as well where local is 1:1 to your prod env). So there's no Terraform to maintain or Docker setup to mess with.
If you're looking to move off Heroku it's pretty straightforward, most folks get their app running in an afternoon. Happy to help if you run into anything: https://encore.cloud