Quickstart
install + run
$curl -fsSL https://engxp.dev/install.sh | sh
$engxp init my-stack && cd my-stack
$engxp up
✓ stack ready — http://localhost:3000
One file describes your entire stack — datastores, messaging, mocks, migrations and services.
A complete example covering every section.
name: orders-platform
version: 1.0.0
databases:
- id: orders-db
type: postgres
version: "16"
migrations:
path: ./db/migrations
strategy: flyway
- id: catalog
type: mongo
version: "7"
messaging:
- id: events
type: kafka
version: "3.7"
topics:
- { name: orders.created, partitions: 6 }
- { name: orders.shipped, partitions: 3 }
mocks:
- id: payments
endpoint: /v1/charge
method: POST
latency_ms: { min: 80, max: 220 }
response:
status: 200
body:
id: "ch_${uuid}"
amount: "${request.body.amount}"
status: "succeeded"
services:
api:
image: ghcr.io/acme/orders-api:latest
depends_on: [orders-db, events, catalog, payments]
env:
DATABASE_URL: "postgres://orders-db:5432/orders"
KAFKA_BROKERS: "events:9092"Describe the system you want. EngXP produces a typed, reviewable config — never a black box.
A logistics backend with: - Postgres for shipments - Neo4j for route graph - Pulsar for tracking events - A mocked carrier API that responds with random ETAs
name: logistics
databases:
- id: shipments
type: postgres
version: "16"
- id: routes
type: neo4j
version: "5"
messaging:
- id: tracking
type: pulsar
mocks:
- id: carrier-api
endpoint: /eta
response:
eta_minutes: "${rand(30,180)}"engxp <command> [flags]
COMMANDS
init Scaffold a new stack
compile Compile engxp.yaml → bundle
up Provision and run the current bundle
down Tear down the running stack
status Show component health and URLs
logs Tail logs from one or more components
snapshot Freeze the current stack to a portable bundle
ai Generate a stack from a natural-language prompt
FLAGS
--bundle <path> Use a pre-compiled bundle
--env <name> Select environment overlay
-v, --verbose Verbose output