Try it and share feedback in Discord or GitHub!
Try it and share feedback in Discord or GitHub!
Bonus: Works with sync engines (@electric-sql.com, Trailbase, PowerSync) for real-time updates with near-zero incremental network cost.
Bonus: Works with sync engines (@electric-sql.com, Trailbase, PowerSync) for real-time updates with near-zero incremental network cost.
Meanwhile: Full dataset syncs in background After sync: ALL queries run in <1ms client-side
Fast first paint + instant everything else.
Meanwhile: Full dataset syncs in background After sync: ALL queries run in <1ms client-side
Fast first paint + instant everything else.
Complex joins? Minimal batched requests.
Already-loaded rows? Reused automatically.
Fewer total requests than custom APIs, with better cache utilization.
Complex joins? Minimal batched requests.
Already-loaded rows? Reused automatically.
Fewer total requests than custom APIs, with better cache utilization.
Mark a todo complete? Query results update in <1ms—even with 100k+ rows in memory.
No jitter. No loading states. Just instant updates.
Mark a todo complete? Query results update in <1ms—even with 100k+ rows in memory.
No jitter. No loading states. Just instant updates.
- Eager: Load everything upfront (<10k rows)
- On-demand: Load only what queries need (>50k rows, search)
- Progressive: Load subset now, sync full dataset in background (collaborative apps)
- Eager: Load everything upfront (<10k rows)
- On-demand: Load only what queries need (>50k rows, search)
- Progressive: Load subset now, sync full dataset in background (collaborative apps)
useLiveQuery(q =>
q.from({ todos })
.where(eq(status, 'active'))
)
Automatically becomes:
GET /api/todos?status=active
No backend changes needed. Your queries become the API.
useLiveQuery(q =>
q.from({ todos })
.where(eq(status, 'active'))
)
Automatically becomes:
GET /api/todos?status=active
No backend changes needed. Your queries become the API.
TanStack DB brings the same philosophy to data: view = query(collections)
You describe what data you need. DB handles fetching, caching, and updating—even across massive datasets.
TanStack DB brings the same philosophy to data: view = query(collections)
You describe what data you need. DB handles fetching, caching, and updating—even across massive datasets.
- @tanstack.com router in static mode
- @content-collections gives you a great api to local content + lunr.js to search
- MDX + import.meta.glob = 🐐. Every other way to do mdx is a black hole.
- @shiki.style for all syntax renders
- @tanstack.com router in static mode
- @content-collections gives you a great api to local content + lunr.js to search
- MDX + import.meta.glob = 🐐. Every other way to do mdx is a black hole.
- @shiki.style for all syntax renders