My November and December Clojure OSS project updates
blog.michielborkent.nl/oss-updates-...
Thanks to all users, contributors and sponsors!
Happy new year!
#clojure #squintcljs #clojurescript #babashka #cljKondo
Latest posts tagged with #squintcljs on Bluesky
My November and December Clojure OSS project updates
blog.michielborkent.nl/oss-updates-...
Thanks to all users, contributors and sponsors!
Happy new year!
#clojure #squintcljs #clojurescript #babashka #cljKondo
Clojurists Together members can vote for long term support again.
I announced my plans for 2026 in this blog here:
blog.michielborkent.nl/thanksgiving...
If you are a member, voting would be much appreciated. Go vote!
#clojure #babashka #cljKondo #squintcljs
You can play Advent of Code on the squint and cherry playgrounds this year. Provide token (see cookies: session after logging into adventofcode.com) to get puzzle input.
Squint:
squint-cljs.github.io/squint/?src=...
Cherry:
squint-cljs.github.io/cherry/?src=...
#clojure #squintcljs #cherrycljs
A thank you note to my sponsors!
blog.michielborkent.nl/thanksgiving...
#babashka #clojure #cljKondo #squintcljs #scittlecljs
A mashup between reagami and webcomponents. I don't know why you would do this, but you can!
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
pr-str, prn, etc now print EDN instead of JSON in squint, as you can see in this beautiful draggable button demo
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
You can't make this shit up. I wanted to implement prn (for printing EDN) in #squintcljs so I created a branch named "prn". But it turns out you can't name a file prn (or prn.extension) in Windows so Windows CI failed.
Unable to create remotes/origin/prn.lock': Invalid argument
Out of band DOM updating (manually messing with DOM elements) counter example in Reagami
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
The on-render hook in reagami just got more awesome. You can now pass data from mount to update to unmount, by just returning data!
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
Reagami now has an on-render hook that you can use to mount/update/mount a 3rd party JS component.
#clojure #clojurescript #squintcljs
Demo:
squint-cljs.github.io/squint/?src=...
Here are my September and October 2025 OSS highlights and updates.
blog.michielborkent.nl/oss-updates-...
Thanks for supporting my work!
And perhaps see you at the Conj?
#clojure #clojurescript #squintcljs #cljKondo #babashka
Reagami, my copy-pastable Reagent-without-React-like lib was ported to CLJS (minimal changes needed) and now can even run in a SCI:
babashka.org/sci.configs/...
You can also run/w regular CLJS, maybe interesting with :lite. Git repo: github.com/borkdude/rea...
#clojure #clojurescript #squintcljs
Squint + idiomorph + event listener restoration.
The example uses compile time HTML generation
#squintcljs #clojure #clojurescript
squint-cljs.github.io/squint/?src=...
Snake game in Idiomorph + squint
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
Idiomorph + squint reactive example (counter + text field) with regular squint atom. 5kb gzipped.
#squintcljs #clojure #clojurescript
squint-cljs.github.io/squint/?src=...
Moar squint optimizations. If objects aren't shared, we are free to mutate them, even when assoc instead of assoc! is used.
squint-cljs.github.io/squint/?src=...
#clojure #clojurescript #squintcljs
Squint CLJS now emits more performant code for assoc, assoc! and get when objects can be inferred or are type hinted using ^object
#squintcljs #clojure #clojurescript
squint-cljs.github.io/squint/?src=...
Drag-and-drop example I wrote in Reagent 9 years ago, now in Eucalypt:
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
Small tweak to #squintcljs. When using ^object type hints, assoc and assoc! compile down direct object manipulation without calling into the stdlib
squint-cljs.github.io/squint/?src=...
#clojure #clojurescript
Found a pretty nice optimization for str in #squintcljs
(str "Hello: " (+ 1 2 3) nil "Dude")
=>
`Hello: ${1 + 2 + 3 ?? ""}Dude`
So str -> template string + null/undefined check.
This performs much better than Array.join('').
But... is it worth it?
#clojure #clojurescript
A short video about Eucalypt, a Reagent-like on Squint-cljs, that compiles down to 10kb artifacts.
www.youtube.com/watch?v=SLnC...
by Chris McCormick #clojure #squintcljs #clojurescript
The most important #squintcljs updates since March:
github.com/squint-cljs/...
#clojurescript #clojure
Squint = now defaults to a deep equals implementation
squint-cljs.github.io/squint/?src=...
#clojure #clojurescript #squintcljs
The story of Eucalypt: a slop-coded Reagent replacement Squint for < 10kb UI projects
mccormick.cx/news/entries...
#clojure #clojurescript #squintcljs
Reagent SVG clock (running in Eucalypt / Squint)
#clojure #clojurescript #squintcljs
squint-cljs.github.io/squint/?src=...
Eucalypt Tictactoe #squintcljs
Reactive front-end in < 10kb
#clojure
squint-cljs.github.io/squint/?src=...
Eucalypt by Chris McCormick is a Reagent clone in #squintcljs (10kb of JS). It now has all Reagent demos working including TodoMVC 🤯
chr15m.github.io/eucalypt/
#clojure #clojurescript
Eucalypt: a Reagent compatible library implemented in #squintcljs that allows you to build a <13 kb game for js13kb game jam
Demo: chr15m.github.io/eucalypt/
Lib: github.com/chr15m/eucal...
Snippet from cljdoc's dev docs
Wow, cljdoc's front-end was rewritten from TypeScript to #squintcljs #clojurescript :)
github.com/cljdoc/cljdo...
#clojure
My project updates for May and June: 19 projects updated in total!
Thank you for sponsoring my work through Clojurists Together, Github Sponsors or otherwise!
(link in reply)
#clojure #babashka #scittlecljs #nbbcljs #squintcljs