Post

A lot of smart people seem to be betting on Electron instead of Tauri. Beyond chrome devtools availability and simpler cross-platform testing (which are huge reasons) why pick Electron? I do like that Tauri has an opinionated bundling and OTA update solution. Electron is DIY

0 reposts15 likes

Here are some reasons from someone who's been on an extensive PWA <-> Electron <-> Tauri migration: - Safari is a suboptimal browser. Depending on what you're building, you might be ok or it might straight break your product. Some APIs aren't supported, other don't work as advertised.

Yeah, Safari really is a painpoint. I've found it's actually smoother than Chrome for complex CSS animations, which I like, but the lack of proper devtools and gaps in support are both painful. But my counterargument would be "if you have a web version, you should be testing safari anyways"

Web is web though. If one wants an app in a "native" shell, go for PWA and never look back. If one wants an actual app written in TS, then it's down Electron's walley. Reproducible environment is quite a nice thing to have for an app, especially across operating systems.

- Rust. Learning an entirely new language and sacrificing on a vast JS ecosystem is a time investment and AI doesn't help here. If I'm generating a bunch of code in a language I don't understand I'm in for technical debt in no time. Those two were the breaking factors for me choosing Electron.

I fully agree Electron itself doesn't come with nearly enough tools to build a meaningful product. I have to reinvent a bunch of stuff, from proper IPC to client-driven context menus to (likely) things I haven't even come to yet. If Electron is React then it's missing a metaframework.

Funny enough, PWA clears Electron almost by all metrics, but given how it's underloved, it will never match even Electron's experience because nobody's investing into it. Some APIs are missing, some are broken. It's genuinely sad.

System menu/tray support and full keybind customization would have made PWA an objectively better choice than Electron for 70-80% of ideas, I feel. That's what concerns the capabilities. A cross-browser support for those capabilities is an entirely different can of worms.

Yeah, the cross platform chaos of details is really not good. It gets worse the deeper I look into it (being restricted to least-common-denominator things really hurts at deep levels). I've been looking pretty intensely into "what if electron but better" lately and IMO it's CEF or Servo at bottom.

Tauri also has far too much minimum-viable boilerplate for me. As well as minimum-viable exposure to Rust and its toolchain hell(s). Both the mvb rust and the capabilities.json file are somewhere between 🤔 and 🫢🤢😑 imho. They're just... A lot. For little, if any, value.

I don't love that it's just Yet Another place for (nonprogrammatic? Why??) config to fester, yeah. But also looking at some of them -- esp. the examples for the shell plugin -- almost made me turn into the Joker. It's just patiently obvious that it's all security theater only with no real basis.

Electron isn't great at "MVB" either imho. Once you get past the "three flavors of JS" thing, and all the security config maze, it's.... Uhhhh. 😑 but it's still less bad than Tauri.