Skip to content

flowstateinc/cwa

Repository files navigation

Clojure Web App

Building web applications with Clojure can be productive and fun, assuming you’re familiar with the underlying protocols and technologies of the web.

curl http://localhost:3000/ | htmlq h1
<h1 class="mt-2 text-4xl font-semibold tracking-tight text-gray-900 sm:text-6xl">Coming soon!</h1>

What’s in the box?

We have a collection of bin scripts to package up common tasks:

  • bin/create-migration: Create up and down files for SQL-based schema migrations
  • bin/lint: Spot issues and critique style according to subjective sensibilities
  • bin/nrepl: Start an nREPL server (best invoked via devenv)
  • bin/tailwind: Run a Tailwind process to watch for use of TailwindCSS classes
  • bin/test: Run tests (assuming PostgreSQL is available)
.
├── README.org
├── bin
│   ├── create-migration
│   ├── lint
│   ├── nrepl
│   ├── tailwind
│   └── test
├── deps.edn
├── dev
│   ├── user.clj
│   └── web
│       ├── db.clj
│       ├── dev.clj
│       └── nrepl.clj
├── dev-resources
│   └── logback.xml
├── devenv.lock
├── devenv.nix
├── devenv.yaml
├── docker
│   ├── Dockerfile.postgres
│   └── init.sql
├── docker-compose.yml
├── package.json
├── pnpm-lock.yaml
├── resources
│   ├── migrations
│   │   ├── 20250314165829-create-schema.down.sql
│   │   └── 20250314165829-create-schema.up.sql
│   └── public
│       ├── android-chrome-192x192.png
│       ├── android-chrome-512x512.png
│       ├── app.css
│       ├── app.js
│       ├── apple-touch-icon.png
│       ├── favicon-16x16.png
│       ├── favicon-32x32.png
│       ├── favicon.ico
│       └── js
│           ├── [email protected]
│           └── [email protected]
├── src
│   └── web
│       ├── assets.clj
│       ├── concierge.clj
│       ├── config.clj
│       ├── interceptors.clj
│       ├── page.clj
│       ├── postgres
│       │   ├── employment.clj
│       │   ├── group.clj
│       │   ├── organization.clj
│       │   ├── user.clj
│       │   └── verified_domain.clj
│       ├── postgres.clj
│       ├── router.clj
│       ├── service
│       │   ├── manifest.clj
│       │   └── root.clj
│       ├── service.clj
│       ├── spec.clj
│       ├── string.clj
│       ├── system.clj
│       └── ui.clj
├── styles
│   └── tailwind.css
├── tailwind.config.cjs
├── test
│   └── web
│       ├── postgres_test.clj
│       ├── service_test.clj
│       └── test
│           ├── hooks.clj
│           ├── html.clj
│           ├── service.clj
│           └── system.clj
└── tests.edn

18 directories, 60 files

Development

With Nix and devenv

The easiest way to start a development environment is via Nix and devenv:

devenv up

With Docker et al

Start PostgreSQL as per your preference and provide a database URL to the nREPL server process like so:

DATABASE_URL='jdbc:postgresql://127.0.0.1:5432/web_dev?user=web&password=please' \
  bin/nrepl

For convenience, we provide a Docker Compose file that will run PostgreSQL locally for those who prefer containers.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published