Liking cljdoc? Tell your friends :D

Quickstart

Bootstrap a new project

The fastest way to get started is the bootstrap script, which downloads only the starter essentials:

curl -fsSL https://raw.githubusercontent.com/thijs-creemers/boundary-starter/main/scripts/bootstrap.sh | bash
cd boundary-starter
bb setup

This gives you:

  • SQLite database (zero-config for development)

  • HTTP server on port 3000

  • A complete Integrant system

  • REPL-driven development workflow

  • A production-ready Dockerfile

Start the system

export JWT_SECRET="change-me-dev-secret-min-32-chars"
export BND_ENV="development"
clojure -M:repl-clj

In the REPL:

(require '[integrant.repl :as ig-repl])
(require 'conf.dev.system)
(ig-repl/go)
;; => System started. Visit http://localhost:3000

Scaffold your first module

bb scaffold

The interactive wizard walks you through creating a module. For example, a product module:

bb scaffold generate \
  --module-name product \
  --entity Product \
  --field name:string:required \
  --field sku:string:required:unique \
  --field price:decimal:required

# Apply the generated migration
clojure -M:migrate up

Then reload the system to pick up the new routes:

(ig-repl/reset)
;; => Visit http://localhost:3000/admin/products

Run tests

# All tests
clojure -M:test:db/h2

# Watch mode during development
clojure -M:test:db/h2 --watch --focus-meta :unit

Next steps

  • Your First Module — understand what the scaffolder generated

  • Functional Core / Imperative Shell — the pattern behind everything

  • Testing — unit, integration, and contract tests

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close