What is Encore?

A Development Platform for cloud backend applications

Cloud services enable us to build highly scalable applications, but offer a poor developer experience. They force us to deal with a lot of complexity and commonly introduce repetitive work that steals time away from the real goal of building your product. Launching a new app, migrating to the cloud, or breaking apart a monolith into microservices, can therefore be a daunting task.

Encore is designed to solve this problem, restoring creativity for developers and productivity for teams.

Encore gives you a complete toolset for application development, cloud infrastructure management, and production monitoring, all while eliminating the need for many repetitive manual tasks.

Simplified workflow with Encore's Infrastructure SDK

Encore's functionality is based on a declarative Infrastructure SDK which lets you define resources like services, databases, and queues, as logical objects within your application code. When you run your app, Encore parses your code and automatically sets up the corresponding infrastructure, seamlessly adapting to local, preview, and cloud environments. This removes the need to manage specific services or configurations during development. No more messing around with Docker Compose!

For production, select the cloud provider you want and connect your cloud account. At deployment Encore automatically provisions your infrastructure using pre-built solutions for popular and battle-tested cloud services on AWS or GCP, such as Cloud Run, Fargate, Kubernetes (coming soon), CloudSQL, RDS, PubSub, Redis, Cron Jobs, and more.

This means you can focus on product development and avoid dealing with Terraform or other manual infrastructure configuration. This approach also lets you modify and swap out your infrastructure over time, without needing to make code changes or manually update infrastructure config files.

Built-in tools for development and operations

Our goal is that with Encore, you can focus your engineering effort on your product and leave the platform work to Encore.

For this reason, Encore provides a complete toolset for both developers and DevOps out-of-the-box, including logging, metrics, distributed tracing, generated architecture diagrams and API documentation, frontend clients, and more.

This is a powerful resource for teams that want to avoid investing engineering time in building out yet another developer platform. For teams that already have tools in place, Encore provides third-party integrations with common tools like GitHub, Grafana, Datadog, and more.

Why choose Encore?

  • Faster Development: Encore streamlines the development process with its infrastructure SDK, clear abstractions, and built-in development tools, enabling you to build and deploy applications more quickly.
  • Reduced Costs: Encore's infrastructure management minimizes wasteful cloud expenses and reduces DevOps workload, allowing you to work more efficiently.
  • Scalability & Performance: Encore simplifies building microservices applications that can handle growing user bases and demands, without the normal boilerplate and complexity.
  • Control & Standardization: Built-in tools like automated architecture diagrams, infrastructure tracking, and approval workflows make it easy for teams and leaders to get an overview of the entire application.
  • Security & Compliance: Encore helps ensure your application is secure and compliant by enforcing standards and provisioning infrastructure according to best practises for each cloud provider.

Common use cases

Encore is designed to give teams a productive and less complex experience when solving most backend use cases. Many teams use Encore to build things like:

  • High-performance B2B Platforms
  • Fintech & Consumer apps
  • Global E-commerce marketplaces
  • Microservices backends for SaaS applications and mobile apps
  • And much more...

Getting started

  1. Sign up and install the Encore CLI
  2. Follow a tutorial and start building
  3. Book a 1:1 or join Slack to discuss your use case or how to begin adopting Encore
  4. Follow and star the project on GitHub to stay up to date
  5. Explore the Documentation to learn about Encore's features

...or keep reading to learn more about how Encore works.

Meet the Encore application model

Encore works by using static analysis to understand your application. This is a fancy term for parsing and analyzing the code you write and creating a graph of how your application works. This graph closely represents your mental model of your system: boxes and arrows, representing systems and services that communicate with other systems, pass data and connect to infrastructure. We call it the Encore Application Model.

Because Encore's Infrastructure SDK, parser, and compiler, are all designed together, Encore can ensure 100% accuracy when creating the application model. Any deviation is caught as a compilation error.

Using this model, Encore can provide tools to solve problems that normally would be up to the developer to do manually. From creating architecture diagrams and API documentation to provisioning cloud infrastructure.

We're continuously expanding on Encore's capabilities and are building a new generation of developer tools that are enabled by Encore's understanding of your application.

The infrastructure SDK, parser, and compiler that enable this are all Open Source.

Standardization brings clarity

Developers make dozens of decisions when creating a backend application. Deciding how to structure the codebase, defining API schemas, picking underlying infrastructure, etc. The decisions often come down to personal preferences, not technical rationale. This creates a huge problem in the form of fragmentation! When every stack looks different, all tools have to be general purpose.

When you adopt Encore, many of these stylistic decisions are already made for you. Encore's Infrastructure SDK ensures your application follows modern best practices. And when you run your application, Encore's Open Source parser and compiler check that you're sticking to the standard. This means you're free to focus your energy on what matters: writing your application's business logic.

Built ground up for Go

Encore is deeply integrated with the Go programming language. This is not to say Encore is only for Go developers! Most backend developers will get incredible value from using Encore, and learning Go should not stop anyone from trying Encore.

Really, why is picking a programming language seen as the most important decision in a new project? When you set out to build a new backend, there are often very few rational arguments for why one language is better than another. The only real difference is personal taste.