Easel Turns One One Year of Building My Own Ide in Clojure
Posted6d agoActive21h ago
blog.phronemophobic.comTech Discussionstory
informativepositive
Debate
10/100
ClojureEditorsDesign_tools
Key topics
Clojure
Editors
Design_tools
Discussion Activity
Active discussionFirst comment
15h
Peak period
13
120-132h
Avg / period
5.7
Comment distribution17 data points
Loading chart...
Based on 17 loaded comments
Key moments
- 01Story posted
Dec 27, 2025 at 9:46 AM EST
6d ago
Step 01 - 02First comment
Dec 28, 2025 at 12:43 AM EST
15h after posting
Step 02 - 03Peak activity
13 comments in 120-132h
Hottest window of the conversation
Step 03 - 04Latest activity
Jan 1, 2026 at 5:46 PM EST
21h ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 46402202Type: storyLast synced: 1/1/2026, 8:45:29 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
>While the JVM solves lots of hard problems, it has one major weakness, the UI libraries provided by the JVM (Swing and JavaFX) are clunky and dated.
I also feel this; it's what puts me off writing GUI apps in Clojure. I have hope that natively compiled Clojure implementations like Jank that could interact with C or C++ libraries could help with this.
https://github.com/humbleui/humbleui
Most of the work (and the recent updates) seem to be in the two main subcomponents
https://github.com/HumbleUI/JWM
https://github.com/HumbleUI/Skija
i made a GUI with cljfx which uses JavaFX and I didnt really hit any issues (save for i have one bug on startup that ive had trouble ironing out). The app is snappy and feels as native as anything else
Ended with a very modular functional GUI program
the only thing i wasnt super happy about is that i couldnt package it as a simple .bin/.exe bc the jpackage system forces you into making an installer/application (its been a few years since, so its possible theres a graal native solution now)
i highly recommend cljfx. Its the opposite of clunky
Where tools are dependencies and the system composes them together to create a sum much greater than the parts.
I keep telling myself that if everyone just used tmux or a good emulator they could manage the tabs and layouts, but then I tell myself I just want this to be a tiling window manager as an distraction free OS for development, give me nothing but a terminal and an assistant.
> why existing IDEs miss the mark? There are definitely lots of IDEs that do cool things, but are missing one or more items from my wish list.
With respect to data orientation, most IDEs don't represent information as immutable data. If all internal state uses immutable data, it's much easier and safer to share. If everything is mutable, then sharing data is hard, which why most IDEs don't have pervasive sharing. As an example of an IDE that does provide access to data pervasively, but makes very different trade-offs than Easel, see https://gtoolkit.com/.
Using an IDE where all the tools take data and share data has dramatically changed my workflow. You can sort of get this feeling when you pipe together a bunch of shell commands `find ... | grep ... | tee ... | nc ... | etc...`. However, I think 1) sharing data rather than strings and 2) having a 2D graphical user interface is a big upgrade from piping shell commands.
So it must have tools save, manipulate and visualize conveniently (pretty printing, folding etc) the values of vars that contain nested maps, sequences, sets, etc.
Existing clojure IDEs like CIDER for emacs or Calva for VSCode do that too, and it is a must have to have a nice experience with the language
Coincidentally, lately I have been thinking of making an IDE using something like Theia or CodeMirror but am holding off because of time for my other projects.
But it’s legacy tech. Nobody actually cares about IPC to this degree. I suspect because nobody’s mental model works to this level of abstraction and who the hell is going to waste time doing all the plumbing.
Kudos for suffering on JVM I guess. Some people have a higher pain threshold.
Ideal IDE? As long as I have a reflow oven I’m not complaining.
I wanted to try this but there were no instructions how. This is how I got it running: