FORKING GOSSIP to change the UI:

Gossip is MIT licensed and so you can do anything you want with it, including forking it.

I don't mind. I don't consider it a slight against me, and I won't push back. In fact, I recommend forking gossip if you want to change the UI, and I will even help you by supporting new backend functions that you need to get your UI to work (presuming you will be merging in upstream changes outside of the UI).

I've had lots of requests to change gossip substantially. Every single one of them has been with regards to it's UI. Nobody suggests changing the storage engine, or creating async functions that wait on relay responses. Everybody seems to care only about the UI. Well guess what? I consider the UI a necessary evil, a thing that must be coded, but not something I have any real interest in, and generally a distraction from the much more interesting work. That is why I partnered with several other developers who are more keen on UI development.

The problem I have with all the requests to change gossip's UI is that they all go in different directions. They can't all happen. Everybody has a different vision for how they want the gossip UI to work. Which is why I think forks are a good idea. Everybody can get what they want, if they put in the effort.

So here is the thing: gossip's UI is cleanly divided from the rest of the code. The UI reads from global structures and sends messages to the overlord (but you could call overlord functions directly if your UI isn't immediate-mode and is async). It is currently designed for worst case: single thread, not async, immediate mode rendering. But that means it could easily handle all the other cases. You could rip it out and put in an entirely different UI... tauri, gtk4 ... you could probably even get it running under WASM and make the browser the UI.

Most people with grand UI designs don't also write rust code, so I'm not sure if anybody is going to take me up on this. But if anybody was thinking about it and hesitating because they didn't want to make waves, maybe this post will smooth that over.

Forking gossip is no longer necessary to put a new face on it. I have split it into gossip-lib and gossip-bin, massaged and documented the API. You can run `cargo doc --lib` and then browse to `target/doc/gossip_lib/index.html` to read the API into gossip-lib. Rust binds very well to other languages, so you don't need to write in the rust language. [this newest work is still on the 'unstable' branch]

I'm kinda excited to see what people come up with. I'd love to see a WASM web front end materialize. I'd love to see Android and iOS apps with front-ends designed for phones.

nostr:nevent1qqs22c4dr27e23tqyw4hpkf37l3wcl676jfnmturxxasjwhuf7m09zsprpmhxue69uhkzapwdehhxarjwahhy6mn9e3k7mf0qy88wumn8ghj7mn0wvhxcmmv9uq3samnwvaz7tmwdaehgu3wvekhgtnhd9azucnf0ghszxmhwden5te0dehhxarj9ekkj6m9v35kcem9wghxxmmd9uq3zamnwvaz7tmwdaehgu3wwa5kuef0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcpzemhxue69uhhyetvv9ujumt0wd68ytnsw43z72xqn5q

Reply to this note

Please Login to reply.