💿 Traditional installed applications give you control over your stuff, but limit you to a single device, so it's clumsy to work with others. And it's your job to make sure the data on your fragile hardware is backed up somewhere.
🌨 Cloud applications let you collaborate in real time and from different devices. But you can't use them at all when you're offline. And you no longer have control over your own stuff — the software provider does. You lose access to it if they go out of business. Or if they decide to discontinue the service. Or if there's a problem with your credit card.
👍 Local-first applications give you the best of both worlds:
💿 installed apps |
🌨 cloud apps |
👍 local-first apps |
|
---|---|---|---|
🐇 fast | ✅ | ⛔ | ✅ |
🖐 responsive | ✅ | ⛔ | ✅ |
🚙 no network dependency | ✅ | ⛔ | ✅ |
📦 no provider lock-in | ✅ | ⛔ | ✅ |
👪 collaboration | ⛔ | ✅ | ✅ |
🔑 team permissions | ⛔ | ✅ | ✅ |
🌩 online backup | ⛔ | ✅ | ✅ |
🔃 continuous updates | ⛔ | ✅ | ✅ |
The repositories you'll find here provide tools to make it easier to build secure, distributed applications in the browser, with no need for a single centralized server.
@localfirst/auth provides decentralized authentication and authorization for team collaboration, using a secure chain of cryptographic signatures. |
|
@localfirst/relay is a tiny service that helps local-first applications connect with peers on other devices. It can run in the cloud or on any device with a known address. |
|
@localfirst/state is an automatically replicated Redux store that gives your app offline capabilities and secure peer-to-peer synchronization superpowers. |