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.