Wagoe Framework
Wagoe 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 Wagoe provides
-
23 independently publishable libraries on Clojars — use only what you need (plus
wagoe-cliandwagoe-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 Wagoe in minutes |
|
Understand the design philosophy |
|
Learn the core architecture |
|
Add a module to an existing app |
|
Browse all 24 libraries |
Essential commands
# Install Wagoe (JVM, Clojure CLI, Babashka, bbin, wagoe CLI)
curl -fsSL https://get.wagoe.org | bash
# Start a new project
wagoe new my-app
cd my-app
# Add optional modules
wagoe add payments
wagoe list modules
# REPL-driven development (headless nREPL on port 7888 — connect your editor)
export JWT_SECRET="change-me-dev-secret-min-32-chars"
export WAG_ENV="development"
clojure -M:repl-clj
# Scaffold a new module (interactive)
bb scaffold
# Run all tests
clojure -M:test