infrastructure
that just works
provision cloud resources with type-safe typescript. get instant feedback, full IDE support, and deployments that complete in seconds.
// define infrastructure with full type safety
import { aws, defineInfrastructure } from '@coordin8/dsl';
// autocomplete for every aws resource
const bucket = aws.s3.bucket('assets', {
bucket: 'myapp-assets-prod',
versioning: { enabled: true },
tags: { Environment: 'production' }
});
// reference other resources with type safety
const lambda = aws.lambda.function_({
functionName: 'myapp-api',
runtime: 'nodejs20.x',
handler: 'index.handler',
code: { s3Bucket: bucket.bucketId } // ^ typed reference
});
export default defineInfrastructure((config) => {
config
.addResource(bucket)
.addResource(lambda);
});infrastructure, reimagined
we believe infrastructure code should have the same developer experience as application code. type safety, autocomplete, instant feedback — without the complexity.
sub-second planning
dependency graphs resolve in milliseconds. our go-powered engine builds execution plans in under a second, parallel by design. no more waiting for terraform to iterate.
types catch bugs early
catch misconfigurations before deployment. invalid s3 bucket names, missing iam permissions, incorrect lambda runtimes — your IDE highlights them instantly. full autocomplete for every resource property.
typescript native
write infrastructure in the same language as your application. use familiar patterns: classes, functions, modules. import from npm. no new dsl to learn.
parallel everything
we automatically parallelize independent resources. deploy 50 lambdas simultaneously. independent resources deploy in parallel. maximize throughput without manual orchestration.
atomic state management
state files use atomic writes with automatic backups. file-based locking prevents concurrent modifications. if something goes wrong, roll back to any previous state.
dev mode included
hot reload on file changes. validate configurations without deploying. built-in plan diffing shows exactly what will change. test your infrastructure before it touches the cloud.
three steps to production
type-safe. fast. predictable.
write
define your infrastructure in typescript. get instant feedback in your ide. catch misconfigurations before they cost you money. full autocomplete for every aws resource.
// infra.ts
import { aws, defineInfrastructure } from '@coordin8/dsl';
// resources are fully typed
const bucket = aws.s3.bucket('assets', {
bucket: 'myapp-assets-prod',
versioning: { enabled: true },
// ^ autocomplete knows all s3 properties
tags: { Environment: 'production' }
});
const api = aws.lambda.function_('api', {
functionName: 'myapp-api',
runtime: 'nodejs20.x',
handler: 'index.handler',
// types ensure invalid values are caught
role: iamRole.arn // typed reference
});
export default defineInfrastructure((config) => {
config.addResource(bucket).addResource(api);
});compile
compile typescript to json. our compiler validates your configuration and generates the intermediate format used by the go cli. catch errors before deployment.
$ npx coordin8-compile infra.ts
✓ parsed 2 resources
✓ validated configurations
✓ resolved dependencies
✓ generated coordin8.json
infra.ts → coordin8.json (1.2KB)
$ cat coordin8.json | head -20
{
"version": "1.0.0",
"resources": [
{
"type": "aws_s3_bucket",
"name": "assets",
"config": {
"bucket": "myapp-assets-prod",
"versioning": { "enabled": true }
}
}
]
}deploy
deploy with the go cli. changes apply in parallel, automatically ordered by dependencies. plans complete in milliseconds. if something fails, get clear error messages with context.
$ coordin8 plan
✓ loaded configuration (0.1s)
✓ built dependency graph (0.2s)
✓ compared with current state (0.3s)
plan: 2 to add, 0 to change, 0 to destroy
+ aws_s3_bucket.assets
+ bucket = "myapp-assets-prod"
+ versioning { enabled = true }
+ aws_lambda_function.api
+ function_name = "myapp-api"
+ runtime = "nodejs20.x"
$ coordin8 apply
aws_s3_bucket.assets creating... (0.8s) ✓
aws_lambda_function.api creating... (1.2s) ✓
apply complete! 2.1s total