How Specific works
The mental model: one config file that runs your whole system, locally and in production.
Specific is infrastructure-as-code designed for coding agents. Your infrastructure is defined in a single specific.hcl file alongside your application code: how to build, run, and deploy the full system, in both development and production.
Specific is fully generic: it works with any programming language and framework, without SDKs. All connection details reach your code through environment variables.
One file, every environment
A typical specific.hcl:
build "app" {
base = "node"
command = "npm run build"
}
service "web" {
build = build.app
command = "npm start"
endpoint {
public = true
}
env = {
PORT = port
DATABASE_URL = postgres.main.url
}
dev {
command = "npm run dev"
}
pre_deploy {
command = "npm run db:migrate"
}
}
postgres "main" {}
The same file drives every environment your project runs in:
specific devruns everything locally (Postgres, services, sync engines) with connection details injected automatically. No.envfiles.specific deploybuilds the code, provisions managed infrastructure, and rolls out services to Specific Cloud. A project can have multiple deployed environments (production, staging, previews), all defined by the same file.
References like postgres.main.url resolve to the right value in each environment: a local database during development, a managed one per deployed environment.
Building blocks
| Block | What it defines |
|---|---|
build |
How to produce artifacts: managed base environments or custom Dockerfiles. |
service |
Long-running processes: web apps, APIs, workers. |
cron |
Scheduled jobs with per-run logs and metrics. |
postgres |
Managed PostgreSQL databases, with optional Reshape zero-downtime migrations and real-time sync. |
storage |
S3-compatible object storage. |
redis |
Redis-compatible caches (Valkey). |
temporal |
Managed Temporal workflow engines for durable workflows. |
secret / config |
Parameterized sensitive and environment-specific values. |
volume |
Persistent directories inside services. |
environment |
Per-environment config overrides. |
The workflow
Whether you’re a human or a coding agent, working with Specific follows the same loop:
- Create or edit
specific.hcl. - Run
specific checkto validate the configuration - always, after every change. - Run
specific devto run the system locally, andspecific exec <service> -- <command>for one-off commands like migrations and seeding. - Run
specific deployto ship it.
After deploying, manage the project from the dashboard: logs and metrics, scaling, database browsing, secrets, and custom domains.
Designed for coding agents
Your coding agent writes and maintains specific.hcl: you describe what you want to build, and the agent defines the infrastructure alongside the code. The CLI ships its own LLM-optimized documentation (specific docs), and specific init wires it into your agent’s context. See Coding agents.