Getting Started with Encore.ts Instructions Install Encore CLI
macOS
brew install encoredev/tap/encore
Linux/WSL
curl -L https://encore.dev/install.sh | bash
Windows (PowerShell)
iwr https://encore.dev/install.ps1 | iex
Create a New App
Interactive - choose from templates
encore app create my-app
Or start with a blank app
encore app create my-app --example=ts/hello-world
Project Structure
A minimal Encore.ts app:
my-app/ ├── encore.app # App configuration ├── package.json # Dependencies ├── tsconfig.json # TypeScript config ├── encore.service.ts # Service definition └── api.ts # API endpoints
The encore.app File // encore.app { "id": "my-app" }
This file marks the root of your Encore app. The id is your app's unique identifier.
Define a Service
Create encore.service.ts to define a service:
// encore.service.ts import { Service } from "encore.dev/service";
export default new Service("my-service");
Create Your First API // api.ts import { api } from "encore.dev/api";
interface HelloResponse { message: string; }
export const hello = api(
{ method: "GET", path: "/hello", expose: true },
async (): Promise
Run Your App
Start the development server
encore run
Your API is now available at http://localhost:4000
Open the Local Dashboard
Opens the local development dashboard
encore run
Then visit http://localhost:9400
The dashboard shows:
All your services and endpoints
Request/response logs
Database queries
Traces and spans
Common CLI Commands
Command Description
encore run Start the local development server
encore test Run tests
encore db shell
const db = new SQLDatabase("mydb", { migrations: "./migrations", });
Create a migration:
-- migrations/1_create_table.up.sql CREATE TABLE items ( id SERIAL PRIMARY KEY, name TEXT NOT NULL );
Next Steps Add more endpoints (see encore-api skill) Add authentication (see encore-auth skill) Add infrastructure like Pub/Sub, cron jobs (see encore-infrastructure skill) Deploy to Encore Cloud: encore app link then git push encore