Splitting a backend into services usually means hand-written clients, service discovery, config for every environment, and no single view of a request once it crosses a boundary. With Encore, services call each other as typed functions and the whole system runs locally with one command, fully traced.
Encore parses your application at compile time and generates a typed client for every service. You import it and call the endpoint directly, with parameters and return types checked by the compiler.No hand-written HTTP clients, no OpenAPI generation step, and no stringly-typed URLs that break silently when an endpoint changes.
import { api } from "encore.dev/api";
// Encore generates a typed client for every service.
import { checkout } from "~encore/clients";
export const place = api(
{ expose: true, method: "POST", path: "/orders" },
async (p: PlaceParams): Promise<Order> => {
// A function call, checked at compile time.
const quote = await checkout.quote({ cartID: p.cartID });
return await save(p, quote.total);
},
);One command starts the entire system: every service, the databases they own, and the queues between them. You get the real topology locally instead of running one service and mocking the rest.As the system grows past a handful of services, this is the difference between testing a change and hoping it works.
Started by Encore when you run your app.
Because the architecture is derived from the code, the service catalog and API docs can never drift from what is actually deployed. Every service, endpoint, and dependency is listed as it exists today.New engineers can see how the system fits together without reading every repo or asking whoever wrote it.
In a distributed system the hard part is not the failure, it is finding which hop caused it. Encore traces every request across service calls, database queries, and async handlers as one timeline.Latency and errors are attached to the specific hop that produced them, in local development and in production.
Encore provisions each service and its infrastructure in your AWS or GCP account, with least-privilege IAM between them. Services scale independently, on managed cloud primitives rather than anything proprietary.Everything runs under your billing and compliance boundary, with full console access to every resource.
Same declarations, provider-native infrastructure on each side.
“What used to take days or weeks of back-and-forth between developers and infra teams is now automated and completed in minutes.”
Install Encore, then use your AI agent to build, run, and deploy a multi-service system with real infrastructure in minutes.
Paste into your coding agent to install Encore and scaffold an app.