Why Basic?
Basic is a new kind of database, focusing on privacy, user ownership, and local-first principles.
It creates a Personal Data Store for every end user, allowing applications to request access for reading and writing. Think of it as an open-source, web-wide version of iCloud.
Problem
Current data storage methods have several issues:
- Fragmentation: User data is scattered across numerous apps and platforms
- Vendor lock-in: Walled gardens limit user choice and data portability
- Privacy concerns: Data breaches and misuse are increasingly common
- Dependency: User data relies on third parties, risking loss, censorship, or shutdown
Objectives
Basic aims to build a more private, collaborative, and user-centric web. Our goals include:
- User-owned data: Users control access and sharing of their data
- Interoperable data: Information flows freely across applications, not siloed in walled gardens
- Privacy: Users can use apps without exposing their data to developers
- Open-source protocol: Fostering a healthy, transparent ecosystem
Additionally, our database should be:
- Easy to use: Quick to design, deploy, and integrate into any stack
- Relational: Supporting developers’ preference for relational and typed models
- Serverless and scalable: Automatically adjusting to demand, scaling up or down as needed
Solution
Basic is a local-first, serverless, relational database designed for user-owned data.
Traditional vs. Basic Approach
Traditionally, applications create and host databases, storing all user data centrally:
Basic offers an alternative where data is controlled by the user, and applications request access:
Benefits of User-Owned, Local-First Data
For Users:
- Data control: Revoke access or limit permissions at any time
- Single source of truth: Multiple apps can access the same data
- Data portability: Easily transfer data between applications
- Offline-first: Access and modify data without an internet connection
For Developers:
- Simplified scaling: Users “bring their own data,” reducing server load
- Enhanced security: Sensitive data stays with the user
- Easier onboarding: Import existing user data with less friction
- Sync management: Basic handles data synchronization across devices
How it works
Basic consists of two main components: Auth and Database.
Auth
Basic uses standard OAuth2 flow, manageable via API or provided libraries. Users create a single Basic.id account to control all their data and app permissions, streamlining the login process across applications.
Database
Currently, Basic functions as a document database (similar to Firebase or MongoDB), with support for collections of JSON objects. SQL and relational features are coming soon.
Key differences:
- Separate databases for each user instead of one central database
- Local-first architecture enables offline functionality and automatic syncing
- Data remains under user control, with applications requesting access