| There's a wide variety of reasons. 1) People learned to build web apps for other reasons - their job, other projects that were multi-user, etc. Now they're comfortable working in that language and deployment model 2) They can access it from multiple places. I can view it whether I'm on my desktop, laptop, phone, tablet, etc. 3) If their laptop gets stolen or destroyed, they don't have to worry about having lost the data. (3rd party syncing solutions put you back in the 'my financial data is now on someone else's server) 4) If you have other self-hosted apps, you can double (triple, etc.) up on things running on your web server, database, etc. 5) I can back up all my self-hosted apps by backing up my database and config files, instead of worrying about how each individual app stores the information, etc. I know I can dump or replicate a database. It's something I've been doing for decades. 6) If I need something to be highly available, this is something well understood for web apps. I know how to set up multiple databases and handle failovers. I've been doing it for decades. 7) I understand how to model performance in web applications. I know well how to tune nginx, php-fpm, postgres, etc. I know how to trace requests through them. I know how to debug issues with them. This is all heavily standardized. The same can't be said for desktop applications. I'm sure there's a dozen more I'm not thinking of off the top of my head, too. |