Single Source of Truth
One reactive normalized cache keeps your app state in sync.
rstore gives you a local-first normalized cache, typed query and mutation APIs, and plugin-based transport so realtime, offline, and multi-source apps are simpler to build.
One reactive normalized cache keeps your app state in sync.
Reads happen locally first, so screens stay responsive.
Create, update, and delete actions update the UI right away.
Form objects handle values, validation, submit state, and errors.
Strong types and autocomplete for queries and mutations.
Pull data from different sources into one store graph.
Connect WebSockets or other realtime sources for live updates.
Keep working offline and sync automatically when connection returns.
Use plugins to connect the store to any data source.
"It's cool."
Rijk van Zanten

"I've used it before."
Hannes Küttner

Set up the store yourself and add only the plugins you need.
Auto-load collections and plugins from folders, then use one typed `useStore()` across your app.

Generate collections and endpoints from your Drizzle schema with very little manual setup.
Keep reads close to components, stay reactive, and pass backend params explicitly.
<script setup lang="ts">
const store = useStore()
const { data: todos, loading, refresh } = await store.todos.query(q => q.many({
filter: item => !item.completed,
params: {
completed: false,
},
}))
</script>
<template>
<TodoList
:items="todos"
:loading
@refresh="refresh()"
/>
</template>rstore includes skill packs that help AI tools understand your data model and project conventions, so generated changes are easier to trust.
npx skills-npmCollections, queries, forms, and plugins follow the same patterns, so AI output is easier to review.
Schema conventions give agents enough context to edit multiple files without random guesswork.
Use AI for repetitive setup and migrations while your team keeps architecture decisions in-house.
Start with setup, go deeper into architecture, or jump straight to API details.
Start from scratch with short setup steps and copy-paste snippets.
Learn the core query, mutation, form, cache, and realtime patterns.
Use plugins and hooks to connect REST, WebSockets, SQL pipelines, or custom transports.
Follow migration notes to upgrade without breaking your pace.