Hacker News new | ask | show | jobs
by theamk 161 days ago
Sadly the many "local-first" apps have significant usability problems which mean you got to be _really_ dedicated to ideals to run them.

The P2P is the worst offender.. Who is going to "keep my laptop awake every night just to ensure a p2panda node was available for new users"? Pretty much every P2P needs some sort of centralized support to work.. IPFS needs pinning services, large torrent trackers use out-of-protocol "reputation score" to ensure rarely used files are seeded.

"No spinners" gets super annoying when devices go to sleep or internet is spotty. Am I looking at the latest data? Is it safe to turn off my phone / exit the app, or is still uploading? I dunno, let's give it a minute just in case...

This is could be all tolerable if there were real advantages.. but the main argument for local-first is "if the company dies, your data is gone". Thats not a good reason! To sane your data, there is no need to suffer "local-first" apps. Use cloud services with good UX and nice mobile device support, but run automated backups... Use Google Drive, but run "rclone" via crontab to ensure you can still access data even if you get banned. Own your email domain, and sync to local maildir. Download your notes hourly. Yes, your workflow would be disrupted if one of the companies die, but at least the data is safe.

IMHO if we want to stop depending on megacorps, the right approach is open data format and export protocols first, and easily hostable cloud second. Kinda like email - BYO domain + IMAP means I can migrate from one hosted provider to another with minimal disruptions.

1 comments

> "No spinners" gets super annoying when devices go to sleep or internet is spotty. Am I looking at the latest data? Is it safe to turn off my phone / exit the app, or is still uploading? I dunno, let's give it a minute just in case...

This is easily solvable with any sort of sync button. Granted, you may in fact have to at least in name break "no spinners" (but to my understanding not in practice), and shove one in the top right corner of your app when syncing / uploading / downloading is occuring, but obviously it's better than just sitting there and waiting.