Boundary Boundary alpha

Install the Boundary CLI

curl -fsSL https://get.boundary-app.org | bash

This installs all prerequisites (JVM, Clojure CLI, Babashka, bbin) and the boundary command.
Fallback if get.boundary-app.org is unavailable:

curl -fsSL https://raw.githubusercontent.com/thijs-creemers/boundary/main/scripts/install.sh | bash

Supports macOS, Debian/Ubuntu, Arch Linux, and WSL2. See Installation for manual setup.

Bootstrap a new project

boundary new my-app
cd my-app

This scaffolds a complete project with four core modules wired: core, observability, platform, and user.

Add optional modules before starting the system:

boundary add payments          # PSP abstraction (Stripe / Mollie / Mock)
boundary add cache             # Redis / in-memory caching
boundary list modules          # See all 18 optional modules

Run database migrations

clojure -M:migrate up

Start the system

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

In the REPL:

(go)
;; => System started. Visit http://localhost:3000

;; After changing code:
(reset)

;; Full restart (after defrecord changes):
(halt)
(go)

Scaffold your first module

The interactive wizard is the standard way to create a module:

bb scaffold

If you want the same result without prompts, use the generated command directly. 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

bb scaffold integrate product

# Apply the generated migration
clojure -M:migrate up

Then reload the system so the new routes are live:

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

Run tests

clojure -M:test
clojure -M:test --focus-meta :unit

Next steps