Documentation
Examples
Real-world examples of TDK in action.
E-commerce Platform
A typical e-commerce setup with 5 services:
1. API Gateway
# services/api-gateway/service.json
{
"appName": "api-gateway",
"appType": "backend",
"port": 3000,
"features": ["typescript", "bun"],
"stack": "ecommerce",
"internalDependencies": [
"order-service",
"inventory-service",
"user-service"
]
}
2. Order Service
# services/order-service/service.json
{
"appName": "order-service",
"appType": "backend",
"port": 3001,
"features": ["typescript", "bun", "prisma"],
"stack": "ecommerce",
"internalDependencies": ["database"]
}
3. Frontend Store
# services/frontend-store/service.json
{
"appName": "frontend-store",
"appType": "frontend",
"port": 5173,
"features": ["typescript", "vite"],
"backendName": "api-gateway",
"basePath": "/store"
}
Microservice Architecture
my-project/
├── services/
│ ├── api-gateway/
│ │ └── service.json # Entry point
│ ├── auth-service/
│ │ └── service.json # Authentication
│ ├── user-service/
│ │ └── service.json # User management
│ ├── order-service/
│ │ └── service.json # Order processing
│ └── frontend/
│ └── service.json # Web UI
├── tdk.yml # TDK configuration
└── Tiltfile # Generated by TDK
Working with Multiple Stacks
Organize services by stack for selective startup:
Start only the API stack
tdk up --stack api
Start only specific services
tdk up api-gateway order-service
Environment Configuration
Development vs Production
# Development overrides
tdk.yml:
env: development
services:
- name: api-gateway
port: 3000
envVars:
DEBUG: "true"
# Production overrides
tdk.production.yml:
env: production
services:
- name: api-gateway
port: 3000
envVars:
DEBUG: "false"
Common Patterns
Frontend + Backend
# Frontend service.json
{
"appName": "web-app",
"appType": "frontend",
"port": 5173,
"features": ["typescript", "vite"],
"backendName": "api-server",
"basePath": "/app"
}
# Backend service.json
{
"appName": "api-server",
"appType": "backend",
"port": 3000,
"features": ["typescript", "bun"],
"envVars": {
"FRONTEND_URL": "http://localhost:5173"
}
}
Worker Queue
# Background worker
{
"appName": "email-worker",
"appType": "worker",
"features": ["typescript", "bun"],
"internalDependencies": ["redis"],
"replicas": 3
}
Want more examples?
Check out our examples repository on GitHub for complete working projects.