Boundary Framework
Boundary is a batteries-included Clojure web framework that enforces the Functional Core / Imperative Shell (FC/IS) pattern:
pure business logic in core/, side effects in shell/, and clean interfaces through ports.clj protocols.
What Boundary provides
-
22 independently publishable libraries on Clojars — use only what you need (plus
boundary-cliandboundary-devtools) -
Scaffolder that generates fully structured modules (entity + routes + tests) in seconds
-
Auto-generated admin UI from your schema — no manual forms
-
Built-in observability, RFC 5988 pagination, and declarative interceptors
-
Framework-aware AI tooling — NL scaffolding, error explainer, test generator, SQL copilot
Where to start
| I want to… | Go to |
|---|---|
Try Boundary in minutes |
|
Understand the design philosophy |
|
Learn the core architecture |
|
Add a module to an existing app |
|
Browse all 22 libraries |
Essential commands
# Install Boundary (JVM, Clojure CLI, Babashka, bbin, boundary CLI)
curl -fsSL https://get.boundary-app.org | bash
# Start a new project
boundary new my-app
cd my-app
# Add optional modules
boundary add payments
boundary list modules
# REPL-driven development
export JWT_SECRET="change-me-dev-secret-min-32-chars"
export BND_ENV="development"
clojure -M:repl-clj
# Scaffold a new module (interactive)
bb scaffold
# Run all tests
clojure -M:test:db/h2