4 ms·
Craft [0] are a Notion [1] (note-taking app) competitor that decided to go desktop app first rather than web-first. Their desktop app is beautiful but now they
by davej 5y ago
Craft [0] are a Notion [1] (note-taking app) competitor that decided to go desktop app first rather than web-first. Their desktop app is beautiful but now they are implementing the webapp and it is obvious that there is a lot of feature disparity with the desktop version. To me, it's pretty telling of why the smart decision is often to go web first.
I guess it might make sense for Craft because they are in a very crowded space with a large potential market and being native-first is a differentiator over their competitors. I think in most cases though, it doesn't make sense to go native-first.
Being web-first means that you can ship a consistent UI on every platform using tools that most devs are familiar with.
- You code once, it works everywhere.
- There is nothing to install, no updates to download.
- Lots of web devs means more devs to choose from when hiring.
The accessibility of the web platform make it a lowest common denominator. Desktop does add a ton of benefits though. Some of it is intangible like "feels more solid". But there are a ton of tangible benefits too.
- Easily accessible on the dock or start menu. Once installed then less likely to be forgotten.
- Native notifications.
- More refined UI. Not just one of many tabs.
- Access to native APIs that aren't available inside the web sandbox.
- Alt-tab or Command-tab.
- Quick access, i.e. can live in the menubar/tray or can be assigned to a global keyboard shortcut which pops up the app quickly.
But... Electron can provide all of that! So, it's mighty tempting to start with a web app and then pepper in some desktop functionality later by wrapping your web app using Electron.
* Disclaimer: I'm working on this problem with ToDesktop [2] so factor my bias into your comments. :)
[0] https://notion.so/ https://notion.so/
[1] https://www.craft.do/ https://www.craft.do/
[2] https://www.todesktop.com/ https://www.todesktop.com/
- flamwenco 5y agoHaving tried both Craft and Notion, I think your comparison is absolutely leaving out a number of factors in favor of the web-first solution. Granted, maybe I have my own biases towards native applications, but to not list the performance and native system integrations as benefits of desktop over web seems criminal to me. >- You code once, it works everywhere. I realize this may be a controversial opinion, but this was a stupid dream when I was a kid, and it's still a stupid dream now. Write once, run everywhere means you write a piece of software that sucks everywhere. >- There is nothing to install, no updates to download. Ah yes, because everyone loves change. Especially unforecasted change right under their feet, with no way to revert to a previous version. No downsides here! >But... Electron can provide all of that! So, it's mighty tempting to start with a web app and then pepper in some desktop functionality later by wrapping your web app using Electron. It certainly is tempting, but the easy way out is seldom the right one. It's a very common thing that I see Electron apps overriding or not implementing native behaviors. Right click menus, menu bar items, common global shortcuts, none of that can be taken for granted in an Electron app, but mostly comes "for free" in a native app. You can certainly get some of this in a web/Electron app by using native forms and fields and not writing custom CSS/JS monstrosities for everything, but that so rarely seems to be the case these days. Why is Teams so special the right-click menu shouldn't act like the right click menu in Explorer, or Firefox? Why does slack use a native right click menu for messages, and not one when I right click on a channel in the sidebar? >Some of it is intangible like "feels more solid". Some of these "intangible" benefits are certainly hard to quantify, but it can absolutely be a death by 1000 cuts type thing if behavior you're used to in literally every other application suddenly no longer works in an Electron app. For example, I have a global keyboard shortcut on my mac to Enter/Exit Full Screen mode. It doesn't work in Notion. Why? Because Notion (and other Electron apps like Slack) call the menu option something different. And yet... If I assign a keyboard shortcut to that different action, it works in Slack, but Notion just silently eats the input like nothing happened. Small tiny things like this are table stakes for applications feeling good, and when one application doesn't work like the rest of your system, it feels bad. This is absolutely exacerbated when you have a website as a desktop app because it's trying to trick you into thinking it's a real application. Why do users no longer seem to care about desktop applications? It's because most of the people making them stopped giving a shit long before users did, and users are just rolling with the punches. No one is happy that everything is slower now though. Non-technical users may just not know how to explain why they're frustrated with everything.