Hobbyists need better GUI tooling

person · June 27, 2025

https://x.com/xsphi/status/1471148170080100364

“Everything is built with the assumption you want fine-grained control over a graphical UI. As a result if you don’t put tons of work into the UI it looks really bad.”

One of the problems is UI/UX work requires conveying well an internal model of the system, and I don’t know that many people want to be that fine-grained about a hobby project.

The *nix CLI is sexy and cool in part due to the POSIX conventions, but also because of the lack of a GUI. GUI work is also historically a footgun. I have almost begun to suspect that GUI is more difficult because semantically encoding one’s system requires a external system view. Internal models can be half-assed and still work, but I think the GUI failures are an expression of interaction models falling to the wayside. Put simply, GUI requires a user-centric view, which clashes with the implementation-centric mental model devs naturally use. It’s hard to shake out of that mindframe.

GUI work is also where most of the frameworks I dislike sit. It always feels like inserting someone’s arbitrary brain worms into my head, and it hurts/feels gross. They don’t feel principled, they feel bootstrapped in the literal sense, heaving themselves up by their own bootstraps, troll-logic style. That, or they are designed heavily in opposition (i.e. as the implicit complement of) another framework, and I don’t think that’s a good way to form an ontological basis. It’s too contingent and loses any cohesion it might have had in a mire of “anti-that”.

I finished pecking at The Design of Everyday Things over the last year. We still have a lot of the issues in compute space that were outlined by the book back in the 80s. Overloading of GUI, misdirection, lack of clarity. However, it’s reduced. No longer do most programs close without autosaving the buffer/state or at least warning you data will be lost.

As far as moving everyone in the same direction: historically the answer to that has been wide adoption of a tool by movers in a space, that then accretes into a standards org. IEEE, W3C, we have some heavy hitters as evidence of this in other areas1.

So

Where’s the GUI that leads to a standards org?

We want to deploy to all general compute platforms, this includes both the mobile set and the PC arena. The problem is the HMI varies per platform: different dimensions, different affordances per interface.

The core gripe I have is most GUI frameworks do the same 3 layout types(box, grid, fixed), they just choose to have different, sometimes very arbitrary feeling opinions about execution and syntax.

Takeaways/tl;dr:

  • GUI/UX is basically the reason it’s hard to be hobbyist and make something polished your friends can use.
  • GUI design requires a good mental model of a system’s interaction points and how they relate, mapped to 2D space (ignoring VR)
  • Most GUI frameworks are doing the same thing but to different degrees of either breaking the underlying system (looking @ u, React), or just being absolutely shit to work with (fuck u tkinter). Some are ok (hi QT)
  • Conclusion: We need something strong, something that would naturally get buy-in because it Makes Sense.

Wait isn’t that what web mostly is? It’s cross-plat, it’s highly open spec, it’s very cohesive in execution.

Well

Kinda, but the thing is the W3C, as previously footnoted1 is having a corporate capture problem, and honestly, anyone who knows a bit of the history would understand that the vanilla web stack was not whole-cloth, it was reactive to needs as they evolved. HTML was for hypertext and not broader hypermedia, JS became the accidental shim to try and help solve that. This is not a fault, and I’m glad it happened and has matured, but maybe we’re at a point where we can look at web, we can look at all the framework attempts in general compute, and actually sift the cruft while asking ourselves:

What are the principled and portable conclusions we can turn into something workable? What are the throughlines for what works? Can we generate an ontology of GUI design from our current data?

If nothing else, I like Elm’s take. It’s not quite It but it’s in a good direction.

  1. They are also subject to corporate capture, but this is a sort of aspect of systems in general, they will rot over time. I don’t think this means we shouldn’t proffer better infra to slow the rot, but rot is also a good incentive to try and do better on the next iter.  2