// 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

See all Templates

Microservices Starter

Create a microservices backend for a Trello app

Tags

Microservices
Database

Use Case

Starter

Author

Encore

Repo

Open on GitHub

Run this template in 60 seconds by installing Encore:

macOS
Windows
Linux
Brew
$ brew install encoredev/tap/encore

Microservices Backend Starter

Building microservices applications can be a pain because you normally have to deal with a lot of boilerplate and it can be hard to ensure end-to-end type-safety. This template lets you deploy a fully type-safe microservices application in Go, implementing the backend for a Trello application as an example.

The backend in this starter has two services, each with a couple of API endpoints and their own databases.

This is what the architecture looks like:

Architecture Diagram

Developing locally

When you have installed Encore, you can create a new Encore application and clone this example with this command.

encore app create my-app-name --example=trello-clone

Running locally

Before running the application, make sure you have synced the project dependencies by running go mod tidy and that Docker is installed and running. Docker is required when running Encore applications locally that uses SQL databases.

To start the Encore application, run:

encore run

While encore run is running, open http://localhost:9400/ to view Encore's local developer dashboard.

Defining services

With Encore you create a service by defining one or more APIs within a regular Go package. Encore recognizes this as a service and uses the package name as the service name.

When deploying, Encore automatically provisions the required infrastructure for each service.

Using Databases with Encore

Encore treats SQL databases as logical resources and natively supports PostgreSQL databases.

To create a database, import encore.dev/storage/sqldb and call sqldb.NewDatabase, assigning the result to a package-level variable. Databases must be created from within an Encore service.

You define the schema by creating a migration file. Encore takes care of provisioning the database, running new schema migrations during deploys, and connecting to it.

Using the API

To see that your app is running, you can ping the board.Create endpoint to create a Trello board.

curl 'http://localhost:4000/board.Create' -d '{"Name":"my board"}'

Open the developer dashboard

While encore run is running, open http://localhost:9400/ to view Encore's local development dashboard. Here you can see the request you just made and view a trace of the response.

Deployment

Deploy your application to a staging environment in Encore's free development cloud:

git add -A . git commit -m 'Commit message' git push encore

Then head over to the Cloud Dashboard to monitor your deployment and find your production URL.

From there you can also connect your own AWS or GCP account to use for deployment.

Now off you go into the clouds!