cabal-club / cabal-desktop

Desktop client for Cabal, the p2p/decentralized/local-first chat platform.
https://cabal.chat
GNU Affero General Public License v3.0
843 stars 77 forks source link

Still maintained? #329

Open tio-trom opened 1 year ago

tio-trom commented 1 year ago

I am wondering if this is still maintained. Last stable commit was almost a year ago.

cblgh commented 1 year ago

@tio-trom the desktop app is kind of in a transition stage! we've had a lot of work on a next generation update of the codebase in the form of https://github.com/nikolaiwarner/react-cabal. that new codebase resulted in focus diverting from this repo

for a client that's liable to get updates quicker there's the terminal client

wolfsprite commented 1 year ago

Oh please don't use React. o.o;

I've experienced the horrendous lag from variuos chat applications and sites that decided to use React and/or Electron as a solution for quickly making an app that can "run everywhere". It is so much bloat. 😭

I get that it takes more time to do things natively, but that's definitely the best option.

Also, hm, looking into that repo that was linked, it seems like the last commit there was a year before the comment..?

nikolaiwarner commented 1 year ago

@wolfsprite is there a set of specific technologies that you would prefer for a cabal client to be written in?

wolfsprite commented 1 year ago

Unfortunately, while I do feel outspoken about React and Electron, I don't have much in terms of what to recommend, as I've been mostly working in game engines in recent years.

But if I had to pick something, I'd say probably Rust if trying to maintain universality throughout various OS's/platforms. There's even Rust versions of the hypercore libraries, which I have assumed is a main dependency for Cabal.

Otherwise, imo, trying to use whatever is best suited natively for each platform is probably best.

Decoupling logic by maintaining branches or separate repos for the client-side differences between operating systems (Android branch with only Android differences, Windows branch, iOS, etc) seems the sanest way to work on a cross-platform app while maintaining separation of concens (all front ends can essentially be using the same core logic/code), without having to settle for a "one-technology-for-everything" solution, which in my past experience, leads to dealing with more bugs and maintenance than just separating out and planning for each platform's differences.

Sorry for the length of this reply, was not anticipating that.

wolfsprite commented 1 year ago

I did just remember that Tauri exists, but I've only used it to test/prototype, and cannot at this time vouch for its usefulness in a big app. Does seem very promising though, and allows for both Node and Rust code to be used.

edit: Really wish I remembered Tauri existed before rambling in the previous reply. ^^;

edit edit: Noticed that the Tauri site does say "mobile coming soon", so that is something to be aware of if considering.