Configuration
The service.json file is the single source of truth for each service. Here is the complete schema.
service.json schema
service.json — annotated
{
"appName": "my-service", // Required: unique name
"appType": "backend", // Required: backend | frontend | library | worker
"port": 3000, // Required: service port
"stack": "api", // Optional: stack grouping
"features": [ // Optional: features to enable
"typescript",
"vite",
"bun"
],
"replicas": 1, // Optional: number of replicas
"backendName": "api-backend", // Optional: backend for frontend
"basePath": "/api", // Optional: URL base path
"internalDependencies": [ // Optional: other services
"database",
"cache"
],
"envVars": { // Optional: environment variables
"NODE_ENV": "development",
"API_URL": "http://localhost:3001"
}
}
Required fields
appName
The unique identifier for your service. Lowercase with hyphens.
service.json
"appName": "order-service"
appType
The type of service. Determines which generators run.
backend— API servicefrontend— Web applicationlibrary— Shared code packageworker— Background job processormigrator— Database migration service
port
The port your service listens on.
service.json
"port": 3000
Optional fields
features
List of features to enable. Triggers corresponding generators.
typescript— TypeScript supportvite— Vite bundlerbun— Bun runtimenode— Node.js runtimenginx— Nginx reverse proxyplaywright— E2E testingprisma— Database ORM
stack
Groups related services for selective startup and Tilt orchestration.
service.json
"stack": "order-management"
internalDependencies
Other services this service depends on. TDK resolves boot order automatically.
service.json
"internalDependencies": ["database", "redis", "auth-service"]
Examples by type
Backend service
api-gateway / service.json
{
"appName": "api-gateway",
"appType": "backend",
"port": 3000,
"features": ["typescript", "bun"],
"internalDependencies": ["database", "redis"],
"envVars": {
"NODE_ENV": "development"
}
}
Frontend service
web-app / service.json
{
"appName": "web-app",
"appType": "frontend",
"port": 5173,
"features": ["typescript", "vite"],
"backendName": "api-gateway",
"basePath": "/app"
}