cljfx

Ken Huang 2026-04-04T09:42:48.001619Z

Hey guys, guess what? I made an app using cljfx:

👍 1
Scott Lee 2026-05-09T02:13:00.236459Z

It'll be an honor, actually! Appreciate your kindness. But please understand I'm not a software developer; I don't call myself a programmer yet. So my knowledge and skill level is way down there.

👍 1
Scott Lee 2026-04-06T02:05:30.232389Z

Congratulations! I wanted to see what's possible with cljfx, so I downloaded the Windows jar and clicked around in the app a bit. Just wanted to let you know that it takes quite long (seconds) to load image backgrounds. Also, you might want to check if opening image files works consistently. I thought you're probably not developing on Windows, so this may be of help.

Ken Huang 2026-04-06T02:31:23.232899Z

Thanks! Yes, I developed Backdrop on Linux and tested it on windows 10. I also noticed the startup time is long, it took like 8 seconds, but I'm still ok with it.

Ken Huang 2026-04-06T02:32:02.072199Z

Opening background images didn't work on your pc?

Scott Lee 2026-04-06T02:36:41.961779Z

First, there are default images the app provides. Loading those takes seconds -- from a few seconds to more than a few. Second, I didn't test this much, but opening image files also seems to take long. Also, I'm not sure if it opens files every time. I only tested the jar on Eclipse Temurin JDK 25.

Ken Huang 2026-04-06T02:41:51.446319Z

I see. There is some room for improvement for image processing, that's why loading preset backgrounds takes long to render, especially when the screenshot image is large.

Scott Lee 2026-04-06T02:42:00.256879Z

While I was at it, I've just downloaded the msi file and did the same actions. I'm experiencing similar issues. As for opening image files, it appears that those vertical images simply don't work with the app.

Ken Huang 2026-04-06T02:42:26.904189Z

Thanks for the feedback! It only opens files on request.

Scott Lee 2026-04-06T02:44:05.997619Z

Anyhow, congrats again. An app developed with cljfx is a rare thing; thanks for being a pioneer!

Ken Huang 2026-04-06T02:47:12.742739Z

Thanks. Overall I was satisfied with the result. For this particular app, javafx works quick well across different platforms except the screenshot part, different OSes and desktop environments may behave differently.

Scott Lee 2026-04-06T02:49:36.372559Z

Yeah, looks pretty neat! Have you written any posts about this app? I'd love to read some and learn from them.

Ken Huang 2026-04-06T02:53:59.645889Z

Not yet, except posting updates along the journey on LinkedIn and X. What aspects are you interested in? Maybe I'll write one down the road.

Scott Lee 2026-04-06T02:59:57.169449Z

For me, someone actually doing this whole thing, including packaging and deploying, seems so amazing. You must have encountered more than a few difficulties and explore less known territories. But I'll have to visit your LinkedIn and X pages first.

Ken Huang 2026-04-06T03:02:47.104399Z

Got it. I'll definitely cover those if I write something, thanks.

1
Ken Huang 2026-04-06T03:08:38.599679Z

Honestly I never thought I would create a desktop app! Cljfx and Clojure makes this possible. Huge thanks to @vlaaad for creating cljfx, I really love the reactive approach.

❤️ 1
Scott Lee 2026-04-06T03:10:52.996129Z

Huge thanks to @vlaaad, indeed!

❤️ 1
Scott Lee 2026-05-04T00:40:11.771329Z

@whatacold It's amazing! Your no-fluff, to-the-point article along with the tangible product is a big encouragement to my cljs journey. Thank you very much for taking the time and effort to write up the post. I feel this should be one of the first things that people who are interested in or just beginning with cljs are encouraged to read.

Scott Lee 2026-05-04T00:40:56.658039Z

It would have saved me a lot of doubts and second guesses.

Scott Lee 2026-05-04T00:55:18.287619Z

I'm sure there are more people out there who would find it helpful.

Ken Huang 2026-05-04T01:51:58.565029Z

What are you building currently with cljs?

Scott Lee 2026-05-08T02:40:30.051059Z

I am really sorry for delayed response; I don't use Slack regularly, and I haven't been able to use it in the last several days. And it was "cljs" but "cljfx". Sorry for causing confusion! What I've been exploring with cljfx: • Interface for source prepping part for video generation. (Video generation itself being handled by Premiere Pro ExtendScript) I used to do it with Google Apps Script in Google sheets, but now use Clojure + cljfx for that part. I'm also exploring if I could eliminate Premiere Pro in the work flow and use java2d + ffmpeg with cljfx for the UI. Example videos (which have virtually no viewers): ◦ https://www.youtube.com/@RealFluentology • I'm also thinking about building a simple media player + recorder app for practicing language. ◦ gamepad or midi controller support ◦ listening-repeat ◦ pause (silenced replay of the ab-repeat slice) ◦ recording during pause ◦ comparison play I feel very strong affection towards the concept of slice repeat. And I see your "about" page and say OMG to myself!

Ken Huang 2026-05-08T02:55:52.746549Z

No worries, I don't expect immediate response here. Guess what? We share some interest about YouTube video making and language learning, we can talk about this later (maybe in dm?).🎉

❤️ 1
Ken Huang 2026-05-02T11:11:27.723979Z

@scottdnd Hey! In case you're interested, there is a short blog post: https://blog.kenhuang.io/blog/2026-04-23-desktop-app-clojure-cljfx/

❤️ 1