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

  • 31 independently publishable libraries on Clojars — use only what you need

  • 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 31 libraries

Library Overview

Know what I can rely on

Stability & Versioning

See what is coming

Roadmap

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)
source .env      # wagoe new generated this, with a real JWT_SECRET
clojure -M:repl

# Scaffold a new module (interactive)
bb scaffold

# Run all tests
clojure -M:test