I was inspired by @FineFindus and @hbons to post a bit more on what I'm working on, so here goes!!

I have been working on [Peachy](https://gitlab.gnome.org/vixalien/peachy), a small framework to write GNOME/Linux applications with GTK and React (yes!).

For dogfooding, I've been prototyping a little Hacker News client, since they have a nice and free API with a small scope.

Through the way, I've been adding features to Peachy such as supporting List/Grid views, polyfills etc

#gjs #gnome #react #linux #gtk #hn

@vixalientoots What would you say is your main reason for making this? What do you think the GTK workflow lacks for you? Very cool to see in any case, hot reloading sounds interesting 

@monster better DX, and using the tools/ecosystem that were originally built for react/web/npm etc...

One thing I heavily dislike in GTK apps is that UI is usually decoupled from the logic (GtkBuilder XML, blueprint) and you need to link them manually.

React allows us to build the user interfaces declaratively and reactively, where they're coupled together. This also unlocks a multitude of packages (e.g. zustand, wouter, plugins https://registry.vite.dev/plugins etc...)

Vite Plugin Registry

Discover plugins for Vite, Rolldown, and Rollup

@vixalientoots @monster this is so cool. If support for all the gtk features is complete this could very easily have better DX than blueprint currently has. (or probably it has already..) imo the big problem of gjs was always that there is no existing language ecosystem to piggyback on, (you can use node libraries afaik, but its not as well integrated), so this would change that fundamental problem.
@vixalientoots btw is there a matrix chatroom for peach or somewhere to lurk to see the progress? :)
@monster
@lw64 @monster Yeah, we do hang out here often: #typescript:gnome.org

@lw64 @monster yes, better DX is the goal.

And by the way, peachy builds on react, GJS, GTK, rolldown so it natively supports most of their features natively, except stuff that needs plumbing between them like HMR, Suspense, CSS imports, Resources, etc...

But otherwise most of the stuff works already

@vixalientoots @monster that sounds super nice! If I had time and an idea for an app right now I would use this probably (though not an easy choice, the go bindings look fancy too)