Basic is a new kind of database, with a focus on privacy, user ownership, and local-first.

It works by create a database for every end user - a Personal Data Store - and then lets applications request access to read & write to it. Its a bit like iCloud - but open source and for the entire web.

How it works

For the most part, you can use Basic as you would a regular database, with additional benefits. There two main components: Auth and Database.

Auth

Basic Auth uses the standard OAuth2 flow. You can initiate the flow from any platform using the API, or use the libraries that handle everything for you.

The main thing to note is that instead of having a seperate account for every app - users create a single Basic.id account, where they can control all of their data and apps. Thus, whenever a user logs into your app, they will be redirected to their Basic.id account to give you access. The goal here to to make it easy for users to view all of their apps and data from a single convenient location.

Database

Basic currently functions like a document database (similar to Firebase or MongoDB). You can create collections of documents, which are just JSON objects. However, support for relations and SQL are coming soon.

You can use the REST API to read and write data, or use the react library. (More libraries coming soon)

The main thing to note is that instead of one massive database where you store all of your users data, Basic instead has seperate databases for every user.

The Goals

Basic is building for a more private, collaborate, and user-owned web. Some of our goals are:

  • user-owned data : users should be able to control who has access to their data, and what they share.
  • interoperable data : data should not be silod behind walled gardens, but rather be able to flow accross apps.
  • privacy : users should be able to use apps without giving developers read access to their data.
  • open source protocol : all of it should be open, creating a healthy, open ecosystem