// the find
encoredev/encore
Open source framework for building robust type-safe distributed systems with declarative infrastructure
Encore is a backend framework for Go and TypeScript that lets you define services, databases, Pub/Sub, caches, and cron jobs as typed objects in code, then handles local dev infrastructure and optional cloud deployment. It targets backend developers who want to skip Terraform/YAML and get a working distributed system without a dedicated DevOps team. The optional Encore Cloud platform provisions AWS/GCP infrastructure automatically from the same codebase.
- The local dev experience is genuinely good: the CLI spins up Postgres, NSQ, and Redis automatically without Docker Compose, and the built-in dashboard with distributed tracing and API explorer saves real setup time.
- The Go implementation is particularly clean — decorating functions with `//encore:api` comments and letting the framework handle serialization, service discovery, and cross-service type-safe calls is a meaningful reduction in boilerplate compared to hand-rolling gRPC or REST clients.
- The runtime is in Rust (runtimes/core, runtimes/js), which means the TypeScript support isn't just a Node wrapper — it parses TS with a custom SWC-based parser, giving actual static analysis of infrastructure declarations rather than runtime reflection.
- Self-hosting is a real exit path: `encore build docker` produces a standalone image with infra config injected separately, so you're not permanently coupled to Encore Cloud even if you start with it.
- The framework requires forking several upstream crates (tokio-postgres, SWC) on custom branches — these patches could lag behind upstream security fixes or break on major version bumps, and it's not clear how actively those forks are maintained.
- Azure is explicitly absent and on the roadmap as 'planned', so any team with Azure as their primary cloud is blocked from the managed deployment story entirely and must self-host from day one.
- The annotation-based approach for Go (`//encore:api`) ties your code to Encore's custom parser at compile time, meaning standard `go build` won't work without the encore CLI — this is a deeper coupling than it looks and makes integrating with non-Encore tooling (custom linters, build systems) painful.
- Encore Cloud is the path of least resistance for deployment, but pricing and SLA details aren't in the repo, so teams evaluating lock-in risk have to go off-site. The self-host docs exist but are noticeably thinner than the cloud-deployment docs.