Local-First Apps: Storage, Privacy and Offline Use
Before trusting an app with work you want to keep, ask where that work is stored, what is sent elsewhere and how you can recover it. Local-first is a useful design approach, but the label alone does not answer all of those questions.
What local-first means
The 2019 local-first paper by Ink & Switch puts the primary copy of your data on your own device. Other devices and servers may still hold synchronized copies. The approach can apply to installed software as well as web apps. Running a calculation in a browser does not, on its own, demonstrate all the local-first principles.
Local storage does not settle privacy
localStorage is a browser storage area where a website can save data on your device, such as preferences. OWASP’s browser-storage guidance explains that malicious scripts running in a page can read its localStorage. Keeping data on a device does not by itself guarantee confidentiality. Local processing can also coexist with synchronization, analytics and downloads from external services. Check what the app says it stores and sends, including any optional sharing or sync features.
Keep a copy you can recover
Data saved in a browser, including localStorage, can be lost when site data is cleared and, depending on the browser, through its storage policies (WebKit). MDN’s browser-storage documentation explains that private-browsing data is usually deleted when the private session ends. Browser storage should not be your only copy of important work. Rules vary by browser, device and the app’s storage setup.
Check the offline features you need
MDN’s service-worker guide describes how caching can support offline web apps. Using an already open tab successfully does not prove that the app can reload or reopen without a connection. Offline support must be checked for the actions you actually need.
- Use sample data: Save important work separately before testing. Create a disposable example, reload the page and reopen the app to see what is retained.
- Try recovery: If export or backup is available, try it with your sample and check that you can open or restore the saved data. Before restoring, check whether the app will replace the data it currently holds. Stop if this could remove work you want to keep. Synchronization alone does not establish that you can recover an earlier version.
- Try offline: Using the sample, disconnect and test the actions you need, including reopening the app. Reconnect afterwards and check any synchronization results. Do not perform this test on your only copy of important work.
Apply the checks in Lumelis
Lumelis Digital’s language selector can save your explicit language choice in this browser when storage is available. That preference is not a backup of work created in a tool. Visit the Lumelis tools catalog to choose a feature to assess, and read the privacy policy for the site’s stated data handling. Assess each feature separately; a saved preference does not establish offline support or the absence of analytics.
Record what worked for the app version, browser and device you tested. These practical checks help you decide whether a feature meets your needs; they do not certify the security of the whole service.