Clojure GUI or front-end - what are the options?

This page summarizes the projects mentioned and recommended in the original post on /r/Clojure

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • seesaw

    Seesaw turns the Horror of Swing into a friendly, well-documented, Clojure library

  • seesaw is still viable and runs on swing, which will run everywhere, probably forever. It's a bit closer to the underlying event model than the react style rendering in cljfx.

  • membrane

    A Simple UI Library That Runs Anywhere

  • I built membrane for exactly this use case, https://github.com/phronmophobic/membrane. The graphics and event model is pure clojure with support for multiple platforms. Membrane is less mature than some of the other JVM options, but Swing/AWT/JavaFX have their own quirks.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • seesaw

    Fork of Seesaw and has capability of virtual dom like React.js does. (by ertugrulcetin)

  • I you consider seesaw, I forked it and added virtual dom functionality: https://github.com/ertugrulcetin/seesaw

  • code3dworld

    Learn programming in 3D World

  • I built code3dworld with re-frame + shadow-cljs + electron. The experience was really smooth and nice. If you need a desktop app, I highly suggest using this combination, I checked cljfx, but it seemed hard to be productive and flexible.

  • Wails

    Create beautiful applications using Go

  • Tauri[0] seems to be working with Clojurescript too, but backend would be Rust Another similar options is Wails [1] but backend would be Go. These projects work similar to Electron but instead of bundling Chrome they use host OS's webview. To go full lisp, maybe something similar can be possible with Janet + Cljs too. [0] https://tauri.studio/en/ [1] https://github.com/wailsapp/wails

  • skija

    Java bindings for Skia

  • You can take a look at Skija from Jetbrains. It's a wrapper around the Skia library used by Chrome, Xamarin, LibreOffice, among others.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts