# Switchboard > Programmable reverse proxy rules, written in Go, compiled to WebAssembly, and hot-swapped without restarts. ## Docs - [What is Switchboard?](/): Programmable reverse proxy rules, written in Go, compiled to WebAssembly, and hot-swapped without restarts. - [Quickstart](/quickstart): Build, test, deploy, and serve your first Switchboard rule in five minutes, no object store required. ## Concepts - [Architecture](/concepts/architecture): How the CLI, registry, and proxy fit together, and what happens between a deploy and the first request served by the new rule. - [Bundles, channels & revisions](/concepts/bundles-and-channels): The deployment model: content-addressed bundles, mutable channel pointers, and an append-only revision history. - [Security & reliability](/concepts/reliability): The failure model: activation gates, quarantine, durable last-known-good, fail modes, and why a broken rule can't take the proxy down. ## Guides - [Writing rules](/guides/writing-rules): The Go SDK: reading requests, returning actions, patching headers, and composing logic with chains. - [Bundle data files](/guides/data-files): Ship read-only lookup tables inside a bundle: allowlists, redirect maps, cohort tables, hashed into identity and exposed to the rule. - [Testing rules](/guides/testing): Declare a behavioral contract in tests.yaml, run it with switchboard test, and poke at bundles with eval. - [Replaying production traffic](/guides/replay): Feed captured Caddy access logs through two bundles and diff every decision before you deploy. - [Deploying & operating](/guides/deploying): Deploy bundles, inspect history, promote between channels, and roll back. Every operation is append-only and reversible. - [Caddy integration](/guides/caddy): Run Switchboard as a Caddy handler module: configuration, observability, and routing on rule decisions. - [Standalone & embedded](/guides/standalone): Run switchboard serve as a single-binary proxy, or embed the engine as middleware in any Go HTTP server. - [Registries](/guides/registries): Choose and configure a registry backend: S3-compatible object storage, a local directory, or a read-only HTTPS origin. ## Reference - [CLI](/reference/cli): Every switchboard command and flag. - [switchboard.yaml](/reference/switchboard-yaml): The project config file: every field, plus environment variable expansion and the S3 credential variables. - [Caddyfile directives](/reference/caddyfile): Every directive of the switchboard handler block, with defaults. - [SDK](/reference/sdk): The github.com/ethndotsh/switchboard/sdk package: request accessors, action constructors, builders, and Chain. - [Test schema](/reference/tests): The switchboard.tests/v1 schema: every request and expect field in tests.yaml. - [Bundle format](/reference/bundle-format): The switchboard.descriptor/v1 descriptor, the identity zone, and the on-registry object layout. - [Observability](/reference/observability): The status endpoint, Prometheus metrics, and per-request decision fields in access logs. ## Changelog - [Switchboard v0.2.1](/changelog/v0-2-1) - [Switchboard v0.2.0](/changelog/v0-2-0) - [Switchboard v0.1.0](/changelog/v0-1-0) - [Switchboard v0.0.3](/changelog/v0-0-3) - [Switchboard v0.0.2](/changelog/v0-0-2) - [Switchboard v0.0.1](/changelog/v0-0-1)