Back to skills
SkillHub ClubShip Full StackFull Stack
encore-getting-started
Get started with Encore.ts - create and run your first app.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Stars
19
Hot score
87
Updated
March 20, 2026
Overall rating
C1.7
Composite score
1.7
Best-practice grade
B84.0
Install command
npx @skill-hub/cli install encoredev-skills-getting-started
Repository
encoredev/skills
Skill path: encore/getting-started
Get started with Encore.ts - create and run your first app.
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: encoredev.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install encore-getting-started into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/encoredev/skills before adding encore-getting-started to shared team environments
- Use encore-getting-started for development workflows
Works across
Claude CodeCodex CLIGemini CLIOpenCode
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: encore-getting-started
description: Get started with Encore.ts - create and run your first app.
---
# Getting Started with Encore.ts
## Instructions
### Install Encore CLI
```bash
# 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
```bash
# 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
```cue
// 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:
```typescript
// encore.service.ts
import { Service } from "encore.dev/service";
export default new Service("my-service");
```
### Create Your First API
```typescript
// api.ts
import { api } from "encore.dev/api";
interface HelloResponse {
message: string;
}
export const hello = api(
{ method: "GET", path: "/hello", expose: true },
async (): Promise<HelloResponse> => {
return { message: "Hello, World!" };
}
);
```
### Run Your App
```bash
# Start the development server
encore run
# Your API is now available at http://localhost:4000
```
### Open the Local Dashboard
```bash
# 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 <db>` | Open a psql shell to a database |
| `encore gen client` | Generate API client code |
| `encore app link` | Link to an existing Encore Cloud app |
### Add a Database
```typescript
// db.ts
import { SQLDatabase } from "encore.dev/storage/sqldb";
const db = new SQLDatabase("mydb", {
migrations: "./migrations",
});
```
Create a migration:
```sql
-- 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`