Babashka tasks is a project task manager that is part of babashka since May 2021. It's a practical way to manage a Clojure or other software project. Just invoking bb tasks gives you an overview of everything that is important to developers of this project. E.g. launching a REPL, bumping and releasing new versions, etc. Example bb.edn : {:tasks {dev {:doc "Start the dev system" :task (clojure…
In this post I'll give updates about open source I worked on during May and June 2026. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
Babashka CLI is a library to write command line tools. It is available in babashka by default. This library was born out of some frustration with clojure -X 's functionality where people have to write raw EDN on the command line, which to me isn't a good user experience (especially not for people using Powershell where quoting rules are different than in bash and zsh). Babashka wants to…
Today fellow Clojurian Søren Knudsen asked the following question on Clojurians Slack : Say I'd like an overview of which fns in my Clojurescript app don't have :x metadata and aren't children of functions that have :x . I'd love this overview as data. Anyone know a relevant analysis tool for this purpose? Let's represent this problem in code form. Read it from bottom to…
In this post I'll give updates about open source I worked on during March and April 2026. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
In this post I'll give updates about open source I worked on during January and February 2026. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
Babashka is a fast-starting native Clojure scripting runtime. It uses SCI to interpret Clojure and compiles to a native binary via GraalVM, giving you Clojure's power with near-instant startup. It's commonly used for shell scripting, build tooling, and small CLI applications. If you don't yet have bb installed, you can with brew: brew install borkdude/brew/babashka or bash: bash…
In this post I'll give updates about open source I worked on during November and December 2025. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
Dear sponsors, As we approach Thanksgiving once again, I’m reminded that sustained open source software development, supported by long term sponsors, is not something to take for granted. I’m genuinely grateful for your ongoing support through GitHub Sponsors. Your contributions make a real difference: my Clojure projects wouldn’t be nearly as polished, maintained, or ambitious without your help.…
In this post I'll give updates about open source I worked on during September and October 2025. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you, the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
Recently I've been excited about Eucalypt , a Reagent-clone in pure Squint . For those who don't know Squint, it is a CLJS dialect that re-uses JS features as much as possible. Maps and vectors compile directly to objects and arrays for example. The standard library mimics that of Clojure(Script). Collections, although they are mutable in JS, are treated immutably via shallow-copying.…
In this post I'll give updates about open source I worked on during July and August 2025. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
In this post I'll give updates about open source I worked on during May and June 2025. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
In this post I'll give updates about open source I worked on during March and April 2025. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you the below projects would not be as mature or wouldn't exist or be maintained at all! So a sincere thank you to everyone who contributes to the…
Consider the following Clojure code: (def thread-pool (java.util.concurrent.Executors/newCachedThreadPool)) (def fut (.submit thread-pool (fn [] 3))) @fut ;;=> ? I didn't use any type hints, but the names of the vars should give you an idea what's happening: a thread pool is created a piece of work in the form of a function is submitted the thread pool returns a future which we can…
In this post I'll give updates about open source I worked on during January and February 2025. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you , the below projects would not be as mature or wouldn't exist or be maintained at all. Current top tier sponsors: Clojurists Together Roam Research…
In this post I'll give updates about open source I worked on during November and December 2024. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you , the below projects would not be as mature or wouldn't exist or be maintained at all. Current top tier sponsors: Clojurists Together Roam Research…
Dear sponsors, It's almost Thanksgiving again. We don't have this tradition here in The Netherlands, but I do think it's a good to have a special day to count our blessings. I feel very blessed because of your ongoing support. My Clojure projects wouldn't be as well maintained and fully featured if I didn't have the sponsoring that I have currently. You can read about the…
In this post I'll give updates about open source I worked on during September and October 2024. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you , the below projects would not be as mature or wouldn't exist or be maintained at all. Current top tier sponsors: Clojurists Together Roam Research…
In this post I'll give updates about open source I worked on during July and August 2024. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you , the below projects would not be as mature or wouldn't exist or be maintained at all. Current top tier sponsors: Clojurists Together Roam Research…
In this post I'll give updates about open source I worked on during May and June 2024. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you , the below projects would not be as mature or wouldn't exist or be maintained at all. Current top tier sponsors: Clojurists Together Roam Research…
In this post I'll give updates about open source I worked on during March and April 2024. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Without you , the below projects would not be as mature or wouldn't exist or be maintained at all. Current top tier sponsors: Clojurists Together Roam Research…
In this post I'll give updates about open source I worked on during January and February 2024. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible. Like you can read on Bozhidar Batsov 's blog these aren't the easiest times for Open Source sponsored software. I have no reason to complain, but I did see…
In this post I'll give updates about open source I worked on during December 2023. To see previous OSS updates, go here . Happy new year! First all, as this is the last day of 2023, I wish you all a happy new year. Hopefully many goods things may happen in the Clojure ecosystem. I'm grateful many of you have sponsored my work in 2023! Sponsors I'd like to thank all the sponsors and…
In this post I'll give updates about open source I worked on during November 2023. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Without you, the below projects would not be as mature or wouldn't exist or be maintained at all. Open the details section for more info. Sponsor info Top sponsors:…
In the previous post I described how I built a Cloudflare worker with squint . This worker is part of my attempt to build a playground for squint in which you can play Advent of Code . Advent of Code is a series of programming puzzles published each day through December 1-25. By exercising puzzles solutions on squint, I'm able to detect missing or incompatible features compared to…
In this post I'll describe how to write a Cloudflare worker with squint and bun. Introduction As I tried to build an Advent of Code playground for squint, I wanted to support downloading puzzle input from adventofcode.com . Doing this directly from the playground resulted in CORS issues. Mario Trost in the #adventofcode channel on Clojurians Slack suggested that this could be solved using a…
In this post I'll give updates about open source I worked on during October 2023. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info. Sponsor info Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Pitch If you want to ensure that the…
Squint Squint is a ClojureScript syntax to JS compiler. I deliberately don't call it a CLJS compiler, since it has some differences with CLJS: all data structures in squint are just JS objects, arrays and iterators/generators. The standard library mimics ClojureScript in that it never mutates if CLJS doesn't mutate, e.g. assoc returns a new object and doesn't mutate the object…
In this post I'll give updates about open source I worked on during September 2023. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info. Sponsor info Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Pitch If you want to ensure that…
In this post I'll give updates about open source I worked on during August 2023. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info. Sponsor info Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Pitch If you want to ensure that the…
In this post I'll give updates about open source I worked on during July 2023. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info. Sponsor info Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the…
In this post I'll give updates about open source I worked on during June 2023. To see previous OSS updates, go here . Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info. Sponsor info Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the…
In this post I'll give updates about open source I worked on during May 2023. To see previous OSS updates, go here . Babashka-conf Babashka-conf is happening June 10th in Berlin. Only a few tickets left! Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Open the details section for more info. Sponsor info Top sponsors: Clojurists Together Roam…
In this post I'll give updates about open source I worked on during April 2023. To see previous OSS updates, go here . Babashka-conf Babashka-conf is happening June 10th in Berlin. Save the date and/or submit your babashka/clojure-related talk or workshop in the CfP! Sponsors I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists…
If you want to help me keep track of babashka-related news, please contribute to news.md or use the #babashka hashtag on Twitter or Mastodon . 2023-03 Releases 1.3.176, 1.3.175, 1.2.174: Biggest highlight: Switch to GraalVM 19 and enable virtual threads! Videos Blambda! The sound of babashka and AWS colliding , by Josh Glover from Pitch! Projects babashka.json : JSON abstraction library martian is…
In this post I'll give updates about open source I worked on during March 2023. Sponsors But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in…
Cherry is a new, experimental ClojureScript compiler. One of the main ideas behind cherry is to reduce friction between ClojureScript and JS tooling. It can be used as a standalone compiler directly as an NPM package without a JVM. Since v0.0.1, cherry can be embedded into an existing vanilla CLJS or shadow-cljs project. To facilitate this, cherry exposes the cherry.embed namespace. It contains…
In this post I'll give updates about open source I worked on during February 2023. Sponsors But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in…
If you want to help me keep track of babashka-related news, please contribute to news.md or use the #babashka hashtag on Twitter or Mastodon . Releases New releases in the past month: 1.0.170 - 1.1.173 Release highlights: Support for data_readers.clj(c) Include http-client as built-in library Compatibility with clojure.tools.namespace.repl/refresh Compatibility with clojure.java.classpath (and…
In this post I'll give updates about open source I worked on during January 2023. Sponsors But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the projects I work on are sustainably maintained, you can sponsor this work in…
This is an overview of all the news collected about babashka in 2022! It is a collection of links to scripts, libraries, blog posts, talks and tweets about babashka. If you want to help me keep track of babashka-related news, please contribute to news.md . 2022-12 Releases: 1.0.168 . How GraalVM Helped Create a Fast-Starting Scripting Environment for Clojure http-client : a new HTTP client library…
In this post I'll give updates about open source I worked on during November and December 2022. Sponsors But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the projects I work on are sustainably maintained, you can sponsor…
I'm happy to announce a blog post written by me about babashka that was published on the GraalVM medium blog. You can read the full article here .
In this post I'll give updates about open source I worked on during September and October 2022. Sponsors But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together Roam Research Nextjournal Toyokumo Cognitect Kepler16 Adgoji If you want to ensure that the projects I work on are sustainably maintained, you can sponsor…
In a previous blog post , I described how you can kick off a Clojure project with neil . Today I want to show you how easy it is how to deploy a Clojure project to Clojars with neil. Assuming you already have a deps.edn , but you don't yet have a build.clj , you can run: $ neil add build This creates a tools.build build.clj file with functions you typically need for building and deploying a…
In this post I'll give updates about open source I worked on during July and August 2022. Sponsors But first off, I'd like to thank all the sponsors and contributors that make this work possible! Top sponsors: Clojurists Together , Roam Research , Nextjournal , Adgoji , Cognitect , Kepler16 , . If you want to ensure that the projects I work on are sustainably maintained, you can sponsor…
In a previous blog post (link) I introduced babashka CLI . It offers you similar benefits as clojure -X but with a more Unixy command line interface. In version 0.9.160 of babashka, babashka CLI was integrated. It is available as a built-in library so you don't need to declare it anymore in :deps in bb.edn unless you want to use a newer version than the built-in one. -x For invoking functions…
Clojure beginners sometimes struggle with setting up a new Clojure deps.edn project compared to setting up a lein project. This is one of the reasons I've built neil . But not only for beginners, I've been using neil myself a ton too, to add common features to existing deps.edn projects. You may think that neil is a pun on lein . Of course it is. But the name is also an hommage to Neil…