wagoe beta

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-cli and wagoe-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

Getting Started

Understand the design philosophy

Why Wagoe?

Learn the core architecture

Functional Core / Imperative Shell

Add a module to an existing app

Create a Module

Browse all 24 libraries

Library Overview

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