March 7th, 2025

Why Local-First Software Is the Future and Its Limitations

Local-first software is gaining popularity for its offline capabilities, enhanced user control, and improved privacy. Recent advancements in browser storage APIs support its practicality, despite challenges like conflict resolution.

Read original articleLink Icon
Why Local-First Software Is the Future and Its Limitations

Local-first software is gaining traction as it allows applications to function seamlessly without internet access, providing fast response times and enhanced user data control. This approach stores data primarily on the client device, enabling offline capabilities and reducing reliance on server interactions. Recent advancements in browser storage APIs, such as increased limits on IndexedDB and the introduction of the Origin Private File System (OPFS), have made local-first applications more feasible. These technologies allow for efficient data management and synchronization, improving performance and user experience. However, local-first software is not without challenges, including issues related to conflict resolution and schema migrations. Despite these limitations, the benefits of local-first applications include enhanced privacy, offline resilience, and real-time data synchronization across devices. The growing capabilities of client-side tooling and performance optimizations, such as WebAssembly, further support the viability of local-first architectures. As user expectations for instant feedback and data control rise, local-first software is positioned to meet these demands effectively.

- Local-first software enhances user experience by providing offline capabilities and low-latency interactions.

- Recent advancements in browser storage APIs have made local-first applications more practical and efficient.

- Local-first architectures improve data privacy and user control by minimizing data sent to remote servers.

- Challenges remain, including conflict resolution and schema migrations on client devices.

- The approach supports real-time data synchronization across devices, meeting modern user expectations.

Related

Resilient Sync for Local First

Resilient Sync for Local First

The "Local-First" concept emphasizes empowering users with data on their devices, using Resilient Sync for offline and online data exchange. It ensures consistency, security, and efficient synchronization, distinguishing content changes and optimizing processes. The method offers flexibility, conflict-free updates, and compliance documentation, with potential enhancements for data size, compression, and security.

Local First, Forever

Local First, Forever

Local-first software emphasizes storing data on the user's device, occasionally syncing with the internet. Benefits include data control, but challenges like syncing between devices and company reliability exist. Using cloud services like Dropbox for syncing, including CRDT for conflict handling, is recommended for simplicity and reliability.

Software Possession for Personal Use

Software Possession for Personal Use

Users are frustrated with the shift from desktop to cloud software, sacrificing privacy and control. Alternatives like local-first and personal software are advocated for tailored, user-centric solutions.

Software possession for personal use

Software possession for personal use

The article highlights user frustrations with cloud software, advocating for local-first and personal software to regain privacy and control. It emphasizes simplicity and accessibility in user-centric software development.

I wrote a static web page and accidentally started a community (2023)

I wrote a static web page and accidentally started a community (2023)

James Pearce developed a static web page that initiated a Local-First software community focused on offline functionality and user data control, now comprising around 700 members and various events.

Link Icon 12 comments
By @lolinder - about 2 months
> Today, IndexedDB can typically store hundreds of megabytes to multiple gigabytes of data, depending on device capacity. Chrome allows up to ~80% of free disk space per origin (tens of GB on a desktop), Firefox now supports on the order of gigabytes per site (10% of disk size), and even Safari (historically strict) permits around 1GB per origin on iOS.

Does anyone else see this as more harmful than beneficial? It would be one thing if expanded storage were a new permission that I had to explicitly grant to a site, maybe with the ability to set a budget per site. As is, now every random website that I visit can store an arbitrary amount of data on my hard drive and it's on me to stay on top of that by clearing out data regularly (but hopefully remembering not to clear data from the sites that I care about!).

I don't think we can live in a world where arbitrary sites can store whatever they want on your computer—leaving it up to you to clean up the mess periodically—and at the same time the primary copy of important data from important apps is stored in the same way. In a world where people have to regularly clean up the mess left by hundreds of other developers, even a "local first" web app has to treat the data as only safe once it lands on the developer's server, which means the primary copy is on the server, not the device. In a few cases maybe it would be beneficial to have a full copy offline (maybe your users regularly deal with unreliable connectivity), but most apps won't benefit enough to be worth the hassle.

There's no user data sovereignty here until browsers give users sovereignty over who gets to store data in the first place.

By @dustingetz - about 2 months
> Yet each request still has a 100-200ms latency or more, which becomes noticeable in user interactions

    ping dawn-night-7975.fly.dev
    --- dawn-night-7975.fly.dev ping statistics ---
    6 packets transmitted, 6 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 11.566/12.635/14.000/0.841 ms
so, 6ms each way from my house in the suburbs of Philadelphia, to the closest Fly region near NYC about 80 miles away. When measuring UI response latency, this is the number that matters. No, your database is not in the edge. But cached query results are!
By @afavour - about 2 months
I agree with most of the points made in the article and I think this is wonderfully written. But I disagree with the conclusion.

I want local first software to be the future. But even mobile apps, where much of this has been possible since day one, rarely work correctly offline. Unfortunately the user experience benefits vs the development complexities tradeoff mean that teams don’t do it unless they’re absolutely forced to.

By @mentalgear - about 2 months
Kudos to the developer of RxDB — he's been ahead of the now re-emerging lo-fi trend and put in consistent and high-quality work for years ! A fantastic SDK with excellent documentation & a large plugin selection, as well as fair licensing (i.e. free but some paid pro features to support RXDB dev) !
By @Havoc - about 2 months
Surely something like a selfhosted docker stack is a better plan than storing data in browsers?

Browsers having state like that beyond simple cookies seems like a not great plan to me

By @setnone - about 2 months
I'm all in to local-first software and rxdb is a stellar project, very small nitpick - i wish they would support light theme for their docs.
By @8s2ngy - about 2 months
One-time purchase, local-first software seems like nirvana for both developers and users: it respects users and simplifies development while providing financial compensation for developers.
By @neuroelectron - about 2 months
I don't believe it, or expect significant stipulations, but I welcome it.
By @dartos - about 2 months
Is local first gaining any traction with non technical people?
By @toss1 - about 2 months
Ironically, all of this was already implemented 30+ years ago — local storage, local code providing UI and data manipulation, seldom-connected model for dial-up or Internet, automated replication & conflict resolution with servers, DOD-grade security, etc..

It was Lotus Notes. Then IBM bought it and started ramping up pricing and walling it off.

I'm convinced that, had IBM gone the other direction and opened it up, they could have owned the Internet. Instead, Notes is just a forgotten footnote and IBM is... who are they again?