Original, CSS reference, AppLib.
19.01.2026 09:46 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0@tas.fm.bsky.social
Building https://github.com/cihantas/applib - Developing a Linux desktop environment, UI kit, and apps. ๐ง Also built: ๐ผ๏ธ imgsky.app
Original, CSS reference, AppLib.
19.01.2026 09:46 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0Obviously can't miss dark mode.
18.01.2026 19:06 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0Not planning to copy OSX, but I had a blast rebuilding this title bar today.
18.01.2026 17:58 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 1Next is polishing and settling on a design direction. Less is more.
12.01.2026 11:44 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0Made good progress on my Git GUI alternative, similar to Tower or Fork, built entirely on GPUI and my own SwiftUI/AppKit library.
Does most of what I need. Uncovered a lot of issues with AppLib on the way. Fixing those has left the API in a much better state.
Actually am quite far already. Did you see my video from 10d ago below?
Building two apps with it now as alternatives for Fork and Spotlight/Raycast. This way I can quickly improve the API of AppLib as I build these apps and discover areas that need more attention.
bsky.app/profile/did:...
Bringing a modern, Linux-first analogy of SwiftUI/AppKit, Quartz, and some core apps to Linux. All of this, adjusted to what's possible today - think OSX Snow Leopard but it's 2026.
09.01.2026 09:45 โ ๐ 3 ๐ 0 ๐ฌ 1 ๐ 0#Swift devs, how important is hot reloading to you when working on an app?
08.01.2026 17:14 โ ๐ 0 ๐ 0 ๐ฌ 2 ๐ 0Many components still don't work properly, but we're close to parity with the Rust version.
Anyone wants to port a simple macOS app to Linux? Be my alpha tester.
So if I actually want Swift, thereโs no real GPUI alternative. Which means rebuilding a similar API on top of Skia.
And that meansโฆ way more code. Code I now have to maintain. I'm in limbo.
I thought about writing the low-level parts in Rust and then binding a high-level Swift API on top.
But GPUI for example all closures and borrowed state. Doesn't cross language boundaries well.
Reactivity with @ State and @ Binding done.
08.01.2026 09:01 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0We did it! Just before bedtime. Fully working window system in Swift. Connects to Wayland compositor, creates XDG toplevel window, and initialized Skia EGL context. Next, I need to draw the same components as in my original Rust version.
07.01.2026 20:09 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0I'm in Swift bindings hell.
Skia bindings implement. Yoga bindings implemented. wlroots bindings implemented. libinput bindings implemented.
I'm so close to rendering a window surface!
Getting Yoga bindings working with Swift is a pain.
07.01.2026 16:23 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0With Swift, I'll have to rely on a lot of C/C++ code, I guess.
In Rust I can use Taffy as a layout system. In Swift, I will have to bind C/C++ libs like Yoga. Definitely not as fun as "cargo add".
Throwing Opus at this.
With Swift, I'll have to rely on a lot of C/C++ code, I guess.
In Rust I can use Taffy as a layout system. In Swift, I will have to bind C/C++ libs like Yoga. Definitely not as fun as "cargo add".
Throwing Opus at this.
Will report back. ๐ซก It's been bumpy so far haha.
07.01.2026 13:34 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0Porting AppLib to Swift today as an experiment. I want to compare the ergonomics between #Rust and #Swift.
My guess is Swift will feel better day-to-day for building UI. Rust may still be the better strategic choice in other ways.
My Ghostty shell froze for weeks.
It turned out Ghostty reloads its config, which reloads fish, which runs nvm, which costs ~500ms.
Lazy-loading nvm fixed it.
If you're on Ubuntu but not LTS, you're on your own.
06.01.2026 15:53 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0Then there's reactivity. I could switch to Iced and get it built in, or bolt a reactive layer onto GPUI myself.
To get macOS people to take Linux seriously, a Swift-based path might feel less like moving to a different planet, as long as AppLib ends up with an API thatโs close enough to AppKit.
Itโs early enough that I can still change direction, so Iโm asking the annoying question: am I using the right stack?
Rust + GPUI is working, but I keep wondering if Swift would be a better fit, simply because the language was designed with SwiftUI-style ergonomics as a first-class idea.
Another Fork user?
05.01.2026 19:03 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0Lately I find myself wanting even more of that: more checks, more linting, more pushed into the compiler, so that it helps me converge on something that's actually correct.
05.01.2026 18:15 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0I've noticed that as writing code gets easier with LLMs, I'm more grateful for Rust's borrow checker, not less.
The problem shifted from "can I write this?" to "does this actually make sense?". Strong compile-time checks help with that. They force things to be explicit.
I used Jellyfin to watch a movie yesterday.
Setup was seamless. It just worked. Iโd heard a lot about it, but I was still pleasantly surprised. That kind of experience is rare now.
The only hiccup was packaging: the deb and repo only support LTS, so I ended up using Docker.
Is anyone rolling their own docs system on top of Next.js instead of using Nextra or Fumadocs? I want to setup and host docs for AppLib and am not happy with the options I've tried so far.
03.01.2026 13:57 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0I just had one of those "You should think before you talk"-moments...
Thank you, Kuba.
Latest macOS Mail doesn't have a button to fetch mails anymore. I use this all the time, because I don't like waiting for the mails to arrive with over 10 mail accounts.
Now I need to click through the top menu or remember the hotkey.