LiveStore

4 months ago 11

How it works

LiveStore is a fully-featured, client-centric data layer (replacing libraries like Redux, MobX, etc.) with a reactive embedded SQLite database powered by real-time sync (via event-sourcing).

Client A

= Persisted in device storage

Let's look at a real example

The following is a simple TodoMVC app built with LiveStore showing how to model your events, state and reactively query the database.

See more examples on GitHub

Demos speak louder than words

LiveStore is designed for demanding & high-performance apps. Let's see it in action.

Fun fact: LiveStore was originally developed as a part of Overtone and later factored out.

Designed and optimized for demanding applications

LiveStore is based on years of research and was developed as the data foundation for uncompromising apps like Overtone.

Reactive & persisted SQLite

Reactive & persisted SQLite

LiveStore is based on SQLite enabling instant reactive queries while efficiently persisting data in the background.

Learn more

Real-time sync engine

Real-time sync engine

LiveStore includes a built-in sync engine based on event sourcing (similar to Git) allowing for complex syncing scenarios.

Learn more

Premium DX & devtools

Premium DX & devtools

For best-in-class developer experience, LiveStore offers first-class devtools similar to Chrome DevTools but for your data.

Learn more

High performance

LiveStore was designed for high-performance applications enabling developers to build complex apps running at 120 FPS.

Powerful type-safe schema

LiveStore offers a powerful type-safe schema API allowing for ergonomic data modeling and evolution without database migrations.

Local-first

LiveStore allows you to build local-first/offline-first apps by taking care of the hardest part: data management.

What LiveStore does vs. what not

LiveStore was designed to be a principled and flexible data layer. It's design decisions might make it unsuitable for some use cases. Learn more about when to use LiveStore.

What LiveStore does

  • Provide a powerful data foundation for your app.
  • Reactive query layer with full SQLite support.
  • Adapters for most platforms (web, mobile, server/edge, desktop).
  • Flexible data modeling and schema management.
  • Support true offline-first workflows.
  • Custom merge conflict resolution.
  • Sync with a supported provider or roll your own.
  • Helps avoid data vendor lock-in.

What LiveStore doesn't do

  • Not a batteries-included framework (no auth, file upload, etc).
  • Not a good fit for some use cases.
  • Doesn't sync with your existing database.
  • Doesn't provide a hosted service.
  • Doesn't scale for unbounded amounts of data.
  • Doesn't support peer-to-peer/decentralized syncing.
  • Sell your data.

Additional resources

Check out the following resources to learn more about LiveStore.

Conference talk

You can learn more about LiveStore in some of our past conference talks.

Read more

Riffle essay

In the Riffle essay (+ PhD thesis by Geoffrey Litt), we explored the idea of reactive SQLite as a modern state management system.

Read more

The story behind LiveStore

LiveStore was designed and developed as foundation for Overtone, a next-gen music app. To achieve the high-performance requirements of the app, we needed a state management framework that is able to handle the complex data scenarios of the app which started the Riffle research project and later became LiveStore.

Get started

Give LiveStore a try. Start with an existing example or add it to your own project.

Sponsor the project

Become a sponsor and get access to...

  • LiveStore devtools
  • Discord channel
  • Community
Read Entire Article