Announcing Slim: new build tool for Clojure

February 7, 2025

Introducing Slim: a new build tool that simplifies building Clojure projects. Slim is designed to streamline your Clojure development, whether you’re creating an uberjar for your application or deploying a library. With zero ceremony and minimal configuration using your existing deps.edn, you can focus on writing code rather than managing build scripts.

Minimal App Example

Add slim to your deps.edn:

{:aliases
 {:slim {:deps {io.github.abogoyavlensky/slim {:mvn/version "0.2.1"}}
         :ns-default slim.app
         :exec-args {:main-ns my-app.core}}}}

Run your build:

clojure -T:slim build

Your uberjar will be created at target/standalone.jar.

Minimal Library Example with Extended Metadata

deps.edn

{:aliases
 {:slim {:deps {io.github.abogoyavlensky/slim {:mvn/version "0.2.1"}
                slipset/deps-deploy {:mvn/version "0.2.2"}}
         :ns-default slim.lib
         :exec-args {:lib my-org/my-lib
                     :version "0.1.0"
                     :url "https://github.com/my-org/my-lib"
                     :description "My awesome library"
                     :developer "Your Name"}}}}

Install your library locally:

clojure -T:slim install

Deploy snapshot:

clojure -T:slim deploy :snapshot true

Or publish a release version:

clojure -T:slim deploy

An example of using Slim in a Clojure project with a complete CI build setup can be found in the Automigrate project.

Slim makes building and deploying Clojure projects effortless. For more information, check out the tool’s documentation and give it a try!