Introduction
Welcome to the Clojure Stack Lite template!
A modern, lightweight template for building Server-side Rendered Clojure applications with minimal configuration and maximum productivity.
This template empowers you to get started with Clojure in a simple Server-side Rendering (SSR) setup. In just one command, you'll have a fully functional application ready for development and production deployment. The generated project comes with carefully selected defaults that balance simplicity with flexibility, while remaining fully customizable to meet your specific requirements.
Why Choose Clojure Stack Lite?
- Developer Experience First: One command starts your entire development environment with auto-reload for backend code and styles.
- Production Ready: Includes CI/CD pipelines, deployment configurations, and some performance optimizations out of the box.
- Minimal JavaScript: Leverage HTMX and AlpineJS for interactive UIs
- Focus on Your Business Logic: Spend time building features, not configuring setup.
Key features
- 🏗️ Robust Clojure stack powered by Integrant and Reitit/Ring
- 🎨 Lightweight frontend using HTMX, AlpineJS and TailwindCSS v4
- 📦 Lightweight and fast SQLite database
- 🔄 Zero-downtime deployment via Kamal
- ⚡ GitHub Actions CI/CD pipeline
- 🧪 Integration and unit testing setup with coverage
- 🔍 Linting, formatting and deps version management
- ⚙️ deps.edn and Babashka Tasks for efficient project management
- 📱 Basic PWA support out of the box (without service worker)
Technology Stack
Backend
- Integrant: Component lifecycle management for application
- Reitit: Fast data-driven routing
- Ring/Jetty: HTTP server adapter
- Hiccup: HTML generation from Clojure data structures
- Malli: Data validation and specification
Database
- SQLite: Lightweight, file-based database
- next.jdbc: JDBC-based database access
- HoneySQL: SQL as Clojure data structures
- Ragtime: Database migrations
Frontend
- HTMX 2: HTML extensions for AJAX without writing JavaScript
- AlpineJS 3: Lightweight JavaScript framework for adding dynamic behavior on the page (optional)
- TailwindCSS 4: Utility-first CSS framework
- manifest-edn: Extremely lightweight JS-dependency management
Development
- mise-en-place: For managing local system dependencies (optional)
- Babashka: Project management with tasks
- clj-kondo: Static analyzer and linter
- cljfmt: Code formatter
- eftest/cloverage: Testing and code coverage
Deployment
- Docker: Containerization
- Kamal: Simple deployments on your own server
- GitHub Actions: CI/CD workflows to check code quality and deploy to production
Ready to Start?
Let's create your first project with Clojure Stack Lite on the next page!