4 ms·
One of the things that's exciting to me about local-first web development is how it bridges the gap between a full-blown native app and full-blown web service.
by dasil003 4y ago
One of the things that's exciting to me about local-first web development is how it bridges the gap between a full-blown native app and full-blown web service.
Native apps have high install friction and a lot of nasty cross-platform tradeoffs. Even though there's always a cohort here (rightly) commenting on how much of a step backwards the web is for GUI app development, one has to admit that we are past the time where a truly cross-platform, install-less native app SDK can be created and cross the chasm to universal adoption. Web tech is what we have, worse is better, yada yada.
Accepting that reality, one of the implications of the web and cloud-storage is that the server component tends to be heavy. While it's convenient for users to have their data centralized in the cloud for consistency and access on multiple devices, this does incur some significant overhead in terms of account managment, authentication, and database hosting.
The thing that I find really cool about local-first web development is that it reopens the door for hobbyist and micro-ISV apps that can served cheaply as static files, where the customer pays for the compute and stores the data. There are lots of potential micro-apps, which don't require network effects or large data storage, that could be built this way and avoid incurring significant ops overhead for the developer. Obviously it runs counter to user expectations today, but I think a lot people might also appreciate useful apps that don't have $5/month subscription as table stakes just to keep the lights on. Also, it doesn't have to be a binary proposition, there could be accounts/sync functionality optional. Most of all, as a developer, it's exciting to have the ability to try out an idea, with optionality to ramp it up into a full SaaS, or scale it down without an abrupt rug-pull on the early adopters.
- krab 4y agoWhy should the SDK be install-less? IMHO it's enough if the app makes it into the Windows store, Apple store and any Linux format.
- chii 4y ago> ramp .. into full SaaS I think the local first ideology can enable an alternative way to sell B2B, from the bottom up. Sell to the users directly, at a cheap price and prevent the issues that stems from enterprise sales. This usually only works for small to medium sized businesses, and very rarely large businesses. However, due to the cheap price, the budget for this software that runs locally could be kept on the discretionary account of even large-ish businesses. Then, if the quality and value of the software is demonstrated, it should grow organically as users recommend it to other people around them. Over time, the need for enterprise features would arise - such as Single Sign On, and directory integration, sharing of data, etc. Up the charge for these to make up for the loss of revenue early on from early cheap sales.
- Centigonal 4y agoThis isn't a particularly new idea - and it does work! Github, Basecamp, Slack, Qualtrics, Notion, Monday, JIRA, and others all followed this approach. Local-first might reduce the startup costs somewhat, though.
- darklion 4y ago> nasty cross-platform tradeoffs You mean like web apps partially or completing ignoring platform-specific appearances, conventions, or behaviors? Let’s not pretend that native apps are the only ones that struggle to work correctly cross-platform. While core logic may be portable in web app, frequently web UIs are happy to make a one-size-fits-all interface. While that may be acceptable in a web page, it is neglectful and insulting in a web app that wants to be treated as a peer of native apps.
- dasil003 4y agoNot sure where I implied that web magically solves all cross-platform problems. In fact I went out of my way to underline the gaps using phrases like "worse is better" and "accepting that reality". So while I was never opposed to your sentiment, I find this to be a strange statement: > While that may be acceptable in a web page, it is neglectful and insulting in a web app that wants to be treated as a peer of native apps. This frames native apps as a gold standard, which obviously is a bar that web apps can never reach. There are foundational tradeoffs here that can never be worked around. You might as well demand that all native platforms implement a common API to ease cross platform development. The reality is that supporting multiple platforms with their native conventions and idioms is a very large undertaking that fewer and fewer developers are willing to do. You can choose to label that neglectful and insulting, but I doubt it will overcome the incentives and market forces that are inexorably pushing in a different direction. I too lament the loss of a rich native app ecosystem. But on the other hand, I'm pretty thankful the web disrupted Microsoft just as their consolidation of desktop computing was nearly complete. You win some, you lose some, but if you want to shape the future, you must clear-eyed and forward-looking.
- fauigerzigerk 4y ago>You can choose to label that neglectful and insulting, but I doubt it will overcome the incentives and market forces that are inexorably pushing in a different direction. I don't think it's just about incentives and market forces. There is an inevitable trade-off between implementing the features that people want and working on ever deeper platform integration. This trade-off exists and will always exist irrespective of financial considerations. Some people (not you) make it sound as if putting more work into platform integration is somehow a more noble goal than building other features, and if it wasn't for those greedy, cost cutting capitalists the natural steady state of all software would be some sort of "native" ideal. I disagree with that. As a user I don't want developers to put time into every single thing that platform providers invent in order to make their own platform more unique, however useless or even detrimental that differentiation may be for me. Platform providers don't want to be replaceable pipes because that would hurt their margins. In many cases one size really does fit all my needs when it comes to infrastructure. In a minority of cases I do need really deep platform integration. Both goals have their legitimate place in software engineering even before considering any profit motives and financial constraints.