Create awesome offline-first apps that syncs

Keep writing client-side code. We provide the server.

Multi user access control

Sharded and scalable

Eager sync and collaboration when online

Periodic sync when app not active

...to be released in spring 2021.


Almost Zero Config

Create your database in the cloud by just running a simple npx command! Use the new dexie-cloud-addon to connect your Dexie database with the cloud and enjoy multi-user bidirectional sync.

Get started »

Authentication

Passwordless email OTP is part of the service so you don't have to deal with setting up auth. Have auth already? Skip our default auth and use your own instead!

Read more »

Access Control

A per-object access model lets your users keep their synced private data for themselves or shared with their teams or friends. Build your access control models using simple javascript objects.

Read more »

Scale to Millions

Dexie Cloud is built to scale both horizontally and vertically. A cloud infrastructure enables us to auto-scale disk and resources as well as adding new shards when popularity explode.

Read more »


Get started

This guide assumes you're already using dexie and now want to connect it to Dexie Cloud.

1. Create your database in the cloud

1. Create your db in the cloud

npx dexie-cloud create

You'll be prompted for email verification. Then the URL of your database will output to the console and stored in a new local file dexie-cloud.json. See the CLI docs.

2. Whitelist your app origin(s)

npx dexie-cloud whitelist http://localhost:8080

3. Install dexie-cloud-addon

npm install dexie-cloud-addon

4. Update your DB declaration

  import Dexie from "dexie";
  import dexieCloud from "dexie-cloud-addon";

  // Declare your DB
  const db = new Dexie('mySyncedDB', {addons: [dexieCloud]});
  db.version(1).stores({
    todoLists: '@id, title', // '@' = generated global ID
    todoItems: '@id, title, done, todoListId'
  });

  // Connect your dexie-cloud database:
  db.cloud.configure({
    databaseUrl: "https://<yourdatabase>.dexie.cloud",
    requireAuth: true
  });
  • The '@' sign makes the primary key auto-generated with universal IDs.
  • databaseUrl is the one printed out in step 1.

5. Done!

Enjoy.

With this very simple and default setup, users will be requested to login using passwordless email OTP the very first time they visit your app from a device or browser. Learn how to customize authentication if you already have another authentication in place, or want to integrate with the authentication of your choice.

Use your db with the simple Dexie API you are used to for mutating and querying data. IDs marked '@' gets auto-generated keys similar to Dexie's ++ but with a globally unique string rather than an auto-incremented number.

Changes sync instantly with the cloud in both directions. When offline, changes are queued until next time user goes online. When online, changes will be synced eagerly in both directions. If user is idle for a time, the client will go over to period sync strategy instead of the eager sync. As soon as user starts interact with the application (mouse moves or key strokes), the app will go over to eager sync mode again.

Without taking advantage of the access control features, all data will be regarded private for the end user and stored on a per-user basis. Improve your app by allowing users to share things to their team or friends.


Start coding your sync-ready app today

You can start creating your awesome app based on Dexie Cloud today - before it’s even available in beta. Declare your tables with the ‘@’ prefix and install the addon. Declare the access control tables and client side wrappers for CRUD operations. Use the same Dexie API you are used to and create your app logic. Let the multi-user experience with sync, access control and realtime collaboration features start working as soon as Dexie Cloud is available for you.

To prepare your app for Dexie Cloud:

  1. Install the alpha version of dexie-cloud-addon package so you can use ’@’-prefixed IDs (auto-generated global IDs).
  2. Declare the access control tables in your new db version and use them to support shared objects in teams or between users (see sharing a ToDo list or manage projects). The access is not yet checked nor synced and their content will be treated as normal app tables for now.

You will be able to code and locally test your application, taking advantage of the features in Dexie Cloud once it is released.

When launching your app, our extremely simple pricing makes it risk free to grow both small and big.


Want to know more?

Access Control in Dexie Cloud

Authentication in Dexie Cloud

Examples

Create a sharable ToDo list

Create a role-based access controlled project management model

Integrate with PassportJS authentication