// Stay in touch?
Products
Encore CloudEncore Cloud
Encore.tsEncore.ts
Encore.goEncore.go
PricingPricing
Book a DemoBook a Demo
Use Cases
AI-Powered DevelopmentAI-Powered Development
Event-Driven SystemsEvent-Driven Systems
Distributed SystemsDistributed Systems
Case StudiesCase Studies
ShowcaseShowcase
Resources
DocsDocs
InstallInstall
Example AppsExample Apps
Demo videoDemo video
ArticlesArticles
ResourcesResources
GitHub ReleasesGitHub Releases
Systems Operational
Company
About UsAbout Us
Swag ShopSwag Shop
ContactContact
JobsJobs
PressPress
TermsTerms
Privacy PolicyPrivacy Policy
Data Processing AgreementData Processing Agreement
Enterprise SLAEnterprise SLA
Encore
© 2026 EncoreAll rights reserved
© 2026 Encore All Rights Reserved
GitHubDiscordYouTube
Encore.ts
Encore.go

Batteries included Go framework
for building distributed systems

Define services and infrastructure in code using structured patterns.
Encore automates provisioning, wiring, documentation, and observability.

  • ★12k+
  • 100+ contributors
EncoreEncore Cloud

Deploy a test app in minutes

Quickstart

Start locally

Install the CLI and create an app

$ brew install encoredev/tap/encore$ iwr https://encore.dev/install.ps1 | iex$ curl -L https://encore.dev/install.sh | bash
Cursor
url/url.go
1package url
2
3import (
4 "context"
5)
6
7//encore:api public method=POST path=/url
8func Shorten(ctx context.Context, p *ShortenParams) (*URL, error) {
9 id := generateID()
10 _, err := pool.Exec(ctx,
11 "INSERT INTO urls (id, url) VALUES ($1, $2)", id, p.URL)
12 if err != nil { return nil, err }
13 return &URL{ID: id, ShortURL: "/url/" + id}, nil
14}
15
16//encore:api public method=GET path=/url/:id
17func Get(ctx context.Context, id string) (*URL, error) {
18 var url string
19 err := pool.QueryRow(ctx,
20 "SELECT url FROM urls WHERE id = $1", id).Scan(&url)
21 if err != nil { return nil, err }
22 return &URL{URL: url}, nil
23}
Existing codebase
Terminal
❯
Encore Local Development Dashboard
localhost:9400/url
Run `encore run` to see architecture
Groupon
Modernized a legacy platform →
Bookshop.org
From Rails to Go microservices →
Echo
From 0 to $375M acquisition →
Quiqup
Saved $180k annually on DevOps →
Carla
GCP migration without DevOps →
Pave Bank
Built a bank in 9 months →
Gradient Labs
Launched scalable AI agent platform →
Vet-AI
20x faster on Kubernetes →
Pallet
Event-driven on GCP without Terraform →
Harbinger
SugarCRM
Later
Toolzz
Playwire
Ashby

A framework you and your AI will love

Encore provides structured patterns and built-in infrastructure guardrails, so you and your AI can build production-grade distributed systems with confidence.

✓
Infrastructure Generation
Robust patterns for integrating databases, pub/sub, cron jobs, and more. Encore runs everything locally for you and provisions it seamlessly in preview and production
✓
MCP for Introspection
Built-in MCP server lets AI understand your services, APIs, schemas, and traces
✓
Standardization & Guardrails
Encore's compiler ensures generated code follows established service structures and API conventions
MCP Server →AI Instructions →Quick Start →

Define your infrastructure as type-safe objects in code

Declare what your application needs directly in Go, and Encore automatically provisions it across local development, preview environments, and production.

database
✔PostgreSQL database provisioned & migrated
Databases →Pub/Sub →Cron Jobs →Object Storage →Secrets →Caching →

All the tools you need, from day one

Try the local development experience:
$ brew install encoredev/tap/encore &&
$ encore app create --example=hello-world

Automated local infra with hot reload

encore run starts your app and all infrastructure. Forget YAML, Docker Compose, and the usual headaches.

Service Catalog & API Explorer

Automatically updated Service Catalog with full API documentation, and an API Explorer for testing your APIs.

Tracing & Logging

The local dashboard includes tracing for API requests, database calls, and Pub/Sub messages.

Architecture Diagrams

Automatic architecture diagrams give you a real-time overview of your application.

Turn functions into APIs
with one line of code

Add the //encore:api annotation to a Go function and Encore generates all communication boilerplate at compile-time.

hello.go
✔API defined - Encore generates boilerplate at compile-time
APIs →Services →Modular monolith →

Built-in developer tools

From your application code, Encore automatically generates documentation and architecture diagrams, and provides distributed tracing out of the box.

Service Catalog

Service Catalog with API explorer and auto-generated docs from your Go types.

Architecture Diagrams

Real-time architecture diagrams showing services, APIs, databases, Pub/Sub topics, and their connections.

Distributed Tracing

Built-in tracing for API calls, database queries, and Pub/Sub messages — no instrumentation needed.

Works with your existing stack

  • AWS
  • GCP
  • DigitalOcean
  • Neon
  • Temporal
  • Kubernetes
  • Datadog
  • Grafana
  • Next.js
  • Remix
  • Astro
  • Vue
  • Svelte
  • Prisma
  • Gorm
  • Connect
  • GitHub
  • Vercel
  • Netlify
  • AWS
  • GCP
  • DigitalOcean
  • Neon
  • Temporal
  • Kubernetes
  • Datadog
  • Grafana
  • Next.js
  • Remix
  • Astro
  • Vue
  • Svelte
  • Prisma
  • Gorm
  • Connect
  • GitHub
  • Vercel
  • Netlify

No need for a big rewrite

Start small with new services and unlock immediate benefits, then migrate at your own pace.

“Encore is our foundation for all new development. Since adopting it, we've seen a 2–3x increase in development speed and 90% shorter project lead times.”

Groupon Logo
Josef Sima
Engineering Director, Groupon

“We've run Encore in prod for over 2 years and we've reduced time spent on DevOps by 95%.”

Bookshop.org Logo
Mason Stewart
CTO, Bookshop.org

“Encore fit the service oriented patterns that we were used to, and let us build a robust backend from day one without worrying about infra, deployments and observability.”

Echo Logo
Will
Founder, Echo
Quick Start Guide →Migrate from Express →Use Encore with Nest.js →

Join a growing community of pioneering developers

Encore's open source community is the driving force behind the project — full of friendly developers supporting each other with feedback, bug fixes, and wisdom.

              Discord

              Hang out with other Encore developers

              Join →2k+ Members
              GitHub

              Star and contribute to the project

              Star →12k+ Stars
              Twitter

              Follow along on X

              Follow →
              YouTube

              Watch tutorials and talks

              Watch →

              Start with a template

              Get up and running quickly with starter templates and tutorials.

              URL Shortener
              URL Shortener
              REST API with PostgreSQL database
              Slack Bot
              Slack Bot
              Cowsay bot integrated with the Slack API
              Event-Driven System
              Event-Driven System
              Uptime monitoring with Pub/Sub and Cron Jobs
              OpenAI Chat Bot
              OpenAI Chat Bot
              Bots powered by OpenAI, integrated with Discord and Slack
              Example Apps →All Templates →

              Features

              TracingType-safe API schemasRedact Sensitive DataMCP ServerAI InstructionsCORS handlingStructured loggingAuthenticationAPI Client generationPub/Sub integrationsObject Storage integrationsSecrets managementDatabase integrationsAutomatic local infrastructureArchitecture DiagramsLocal Development DashboardService CatalogAutomated testingDebuggingError handlingMiddlewareCachingMockingDependency injectionRequest validationConfigurationMetadataWebSockets

              Get started now

              EncoreEncore CloudRecommended

              Start by deploying an example project

              Get started →
              or

              Start locally

              1. Install Encore
              macOS
              Windows
              Linux
              Brew
              $ brew install encoredev/tap/encore
              2. Create app
              $ encore app create
              3. Run locally
              $ encore run