Tas's Avatar

Tas

@tas.fm.bsky.social

Building https://github.com/cihantas/applib - Developing a Linux desktop environment, UI kit, and apps. ๐Ÿง Also built: ๐Ÿ–ผ๏ธ imgsky.app

96 Followers  |  21 Following  |  241 Posts  |  Joined: 01.07.2023  |  1.4639

Latest posts by tas.fm on Bluesky

Post image

Original, CSS reference, AppLib.

19.01.2026 09:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Obviously can't miss dark mode.

18.01.2026 19:06 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Not planning to copy OSX, but I had a blast rebuilding this title bar today.

18.01.2026 17:58 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

Next is polishing and settling on a design direction. Less is more.

12.01.2026 11:44 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Made 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.

12.01.2026 11:44 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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:...

09.01.2026 16:04 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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    ๐Ÿ“Œ 0
Post image

Many 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.

08.01.2026 13:46 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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.

08.01.2026 09:09 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

08.01.2026 09:09 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Reactivity with @ State and @ Binding done.

08.01.2026 09:01 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

We 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    ๐Ÿ“Œ 0

I'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!

07.01.2026 18:42 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Getting Yoga bindings working with Swift is a pain.

07.01.2026 16:23 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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.

07.01.2026 13:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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.

07.01.2026 13:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Will report back. ๐Ÿซก It's been bumpy so far haha.

07.01.2026 13:34 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Porting 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.

07.01.2026 09:49 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

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.

06.01.2026 17:06 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

If you're on Ubuntu but not LTS, you're on your own.

06.01.2026 15:53 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Then 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.

06.01.2026 11:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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.

06.01.2026 11:07 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Another Fork user?

05.01.2026 19:03 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Lately 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    ๐Ÿ“Œ 0

I'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.

05.01.2026 18:15 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

05.01.2026 17:15 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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    ๐Ÿ“Œ 0
Post image

I just had one of those "You should think before you talk"-moments...

Thank you, Kuba.

02.01.2026 14:58 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

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.

02.01.2026 14:21 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@tas.fm is following 20 prominent accounts