Deploy unmodified Go backends without Dockerfiles or Kubernetes.
Anode extracts an immutable, human-readable anode.lock.json directly from your Go AST using compiler-backed SSA and Variable Type Analysis. Deploys to bare-metal systemd, cgroups v2, and automated TLS.
brew install anode or curl -fsSL ...[1/4]Initializing SSA & Variable Type Analysis Core...
• Rooted at main.go (func main)
• Package graph resolved: 48 pkgs, 312 functions
[2/4]Call graph choke-point inspection
✓ Detected sql.Open("postgres", cfg.DatabaseURL)
• Verified migration assets: ./migrations/*.sql (4 files)
• Provenance guarantee: Schema-backed PostgreSQL engine
[3/4]Interface & route table extraction
• Discovered HTTP endpoints:
↳ POST /v1/orders (orders.Handler.CreateOrder)
↳ GET /v1/orders/:id (orders.Handler.GetOrder)
[4/4]Synthesizing immutable contract
✓ Generated anode.lock.json (SHA256: 8e4b7a1...)
✓ Determinism proof verified: 4/4 Pillars satisfied
How Anode Eliminates Infrastructure Drift
Click through the pipeline to see how raw Go code compiles into an immutable topology contract and deploys to bare-metal primitives.
Unmodified Go Source
Pure Go stdlib. No custom SDKs.
SSA / VTA Engine
Static Single Assignment analysis
anode.lock.json
Commit-backed immutable contract
Bare-Metal Execution
Dynamic Dev & Production VPS
SSA / VTA Engine
Anode parses the abstract syntax tree and builds a Variable Type Analysis (VTA) call graph rooted at func main(). It statically pinpoints network choke points and dependencies.
// Anode Static Analysis Output:
• Root: github.com/user/shop/cmd/api.main
• Detected Outbound: database/sql.Open(driver="postgres")
• Migration Asset Provenance: ./migrations/*.sql (goose)
• Inbound Interfaces: HTTP on :PORT (POST /v1/orders)Stop Writing Your Architecture Twice
Every time you build a Go backend with Docker, your Go code and your configuration drift apart. Anode computes the infrastructure contract directly from source.
Fragile Dual-Declaration
You declare dependencies in Go (`sql.Open`), then duplicate them in a multi-stage Dockerfile and a 60-line docker-compose.yml.
services:
api:
build: .
ports: ["8080:8080"] # Collision if already used
db:
image: postgres:16
ports: ["5432:5432"] # Crashes if local PG runs!
Compiler-Backed Single Truth
Your Go code is the sole specification. Anode extracts the exact topology, assigns collision-free dynamic ephemeral ports, and commits the contract to Git.
// 100% Deterministic SSA Call Graph Pass
Detected: sql.Open("postgres") + ./migrations/*.sql
Local Dev: 127.0.0.1:54329 (Dynamic loopback)
Production: systemd + cgroups v2 (Native Linux)
The 4 Pillars of Topology
Anode replaces guesswork and DSL lock-in with four foundational compiler guarantees.
Migration-Driven DB Provenance
Anode provisions a database only when verifiable schema migrations exist alongside the service (Goose, sql-migrate). If no migrations exist, Anode treats it as an external unmanaged service—zero guessing.
Typed Interface Linking
Microservice RPC connections match 1:1 via generated Protobuf descriptors and HTTP route tables. No regex guesswork, no brittle name heuristics.
Commit-Backed anode.lock.json
Every inspect run emits an immutable contract committed directly into version control. Platform engineers review architecture changes in GitHub Pull Requests.
Actionable Build-Time Diagnostics
If a dynamic DSN or outbound target cannot be mathematically resolved by SSA, Anode emits an actionable compiler diagnostic with file:line provenance and exact fix instructions.
Bare-Metal Primitives Win Every Time
By compiling directly to Linux systemd, cgroups v2, and ephemeral loopback proxies, Anode delivers near-zero runtime latency and memory footprints.
Direct Linux systemd execution vs Docker containerd engine initialization.
Zero virtualization runtime daemon overhead per service on your VPS.
SSA and Variable Type Analysis resolves entire multi-service monorepos instantly.
Dynamic ephemeral loopback proxying keeps host ports 5432, 6379, and 8080 free.
Ready to Drop Dockerfiles?
Works out of the box on standard Go backends. Zero configuration changes required.
Install Anode CLI
Download single static binary or install with Go.
curl -fsSL https://raw.githubusercontent.com/abhiudayg/anode/main/install.sh | bashInspect Any Go Project
Extract proof of topology directly from your Go codebase.
anode inspect ./cmd/apiRun Collision-Free Dev
Spin up isolated DBs on dynamic ephemeral ports with sub-second reload.
anode dev