<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm" -->

---
title: TanStack DB 0.6 Now Includes Persistence, Offline...
description: TanStack DB 0.6 ships SQLite-backed persistence across runtimes (browser, React Native, edge/Cloudflare Durable Objects), enabling local-first apps when...
canonical: https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: TanStack DB 0.6 Now Includes Persistence, Offline Support, and Hierarchical Data | daily.dev
og:description: TanStack DB 0.6 ships SQLite-backed persistence across runtimes (browser, React Native, edge/Cloudflare Durable Objects), enabling local-first apps when...
og:url: https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm
og:image: https://api.daily.dev/og/posts/FWLmKWwDM.png
og:image:alt: TanStack DB 0.6 Now Includes Persistence, Offline Support, and Hierarchical Data
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# TanStack DB 0.6 Now Includes Persistence, Offline Support, and Hierarchical Data

**[TanStack](https://daily.dev/sources/tanstack-blog)** · 13 min read · 0 upvotes · 0 comments

## Summary

TanStack DB 0.6 ships SQLite-backed persistence across runtimes (browser, React Native, edge/Cloudflare Durable Objects), enabling local-first apps when combined with the existing offline-transactions API. New 'includes' let developers project normalized data into hierarchical UI-shaped trees via nested live queries while preserving fine-grained reactivity, with an optional toArray() escape hatch. createEffect adds reactive side effects on live query results (onEnter/onUpdate/onExit) for workflow and agent automation. Virtual props expose row sync/provenance state ($synced, $origin) for outbox and delivery-indicator UIs. queryOnce adds one-shot query execution. Several breaking API cleanups ship too: query-builder ref optionality typing changed, indexing is now opt-in rather than bundled by default, and 'magic return' mutation-handler behavior is removed in favor of explicit sync coordination. PowerSync and Trailbase now support incremental sync. Persistence ships as an alpha, and the team is recruiting SSR design partners ahead of v1.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://tanstack.com/blog/tanstack-db-0.6-app-ready-with-persistence-and-includes>

## Questions this post answers

### What breaking changes should I check when upgrading to TanStack DB 0.6?

TanStack DB 0.6 removes the implicit 'magic return' behavior from mutation handlers (like returning { refetch: false } or { txid }) in favor of explicit calls such as collection.utils.refetch() or collection.utils.awaitTxId(txid). It also makes indexing opt-in via defaultIndexType and autoIndex config rather than bundling it by default, and changes query-builder ref typing so optionality moves to a type parameter instead of the proxy shape, which may surface new type errors.

_Track breaking changes like this across the JavaScript ecosystem so upgrades to TanStack DB never catch you off guard on daily.dev._

### How does TanStack DB 0.6 support offline and local-first apps?

TanStack DB 0.6 adds a SQLite-backed persistence layer that works across browser, React Native (via op-sqlite), and edge runtimes like Cloudflare Durable Objects, using a single persistence model with runtime-specific adapters. Paired with the existing @tanstack/offline-transactions package, durable local state turns the existing query engine, transaction model, and optimistic updates into a fully local-first stack instead of one that only works while the app is open.

_Compare local-first data layers like TanStack DB against alternatives on daily.dev before committing to an architecture._

### How do TanStack DB includes let me build hierarchical UI data without GraphQL?

The includes feature in TanStack DB lets you nest sub-queries inside a live query's select so normalized collections (like projects, issues, and comments) project directly into the hierarchical shape your UI renders, running as one incremental query graph instead of separate N+1 fetches. Each included field materializes as its own child collection by default, preserving fine-grained reactivity, or you can flatten it with toArray() when a child render boundary isn't needed.

_Follow client-side data-fetching patterns like this on daily.dev when deciding how to structure normalized app state._

## Similar posts on daily.dev

- [TanStack dominance intensifies](https://daily.dev/posts/tanstack-dominance-intensifies-raf2r08in) · Bytes by ui.dev · 16 upvotes · 3 comments
- [Tanstack DB 0.5 Query-Driven Sync: Loading data will never be the same](https://daily.dev/posts/tanstack-db-0-5-query-driven-sync-loading-data-will-never-be-the-same-at4hfmafb) · LogRocket · 31 upvotes · 0 comments
- [Intro to TanStack DB: Reactive Data Layer for Modern Web Apps](https://daily.dev/posts/intro-to-tanstack-db-reactive-data-layer-for-modern-web-apps-kdplkf2xf) · Telerik · 4 upvotes · 0 comments
- [A gentle introduction to TanStack Query](https://daily.dev/posts/a-gentle-introduction-to-tanstack-query-e5yjmxkk9) · Neciu Dan · 79 upvotes · 5 comments

---

Tags: [#react](https://daily.dev/tags/react), [#sqlite](https://daily.dev/tags/sqlite), [#local-first](https://daily.dev/tags/local-first)

[View this post on daily.dev](https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"TanStack DB 0.6 Now Includes Persistence, Offline Support, and Hierarchical Data","url":"https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm"},"datePublished":"2026-08-23T12:22:23.239Z","dateModified":"2026-08-23T12:45:46.279Z","description":"TanStack DB 0.6 ships SQLite-backed persistence across runtimes (browser, React Native, edge/Cloudflare Durable Objects), enabling local-first apps when...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ca43a4a7a3cbc0d63fd7308c888152cd?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ca43a4a7a3cbc0d63fd7308c888152cd?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"TanStack","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"TanStack","logo":"https://media.daily.dev/image/upload/s--TVIrvIT7--/f_auto,q_auto/v1787487634/logos/tanstack-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/tanstack-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"react,sqlite,local-first","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"TanStack","item":"https://daily.dev/sources/tanstack-blog"},{"@type":"ListItem","position":3,"name":"TanStack DB 0.6 Now Includes Persistence, Offline Support, and Hierarchical Data"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/tanstack-db-0-6-now-includes-persistence-offline-support-and-hierarchical-data-fwlmkwwdm#faq","mainEntity":[{"@type":"Question","name":"What breaking changes should I check when upgrading to TanStack DB 0.6?","acceptedAnswer":{"@type":"Answer","text":"TanStack DB 0.6 removes the implicit 'magic return' behavior from mutation handlers (like returning { refetch: false } or { txid }) in favor of explicit calls such as collection.utils.refetch() or collection.utils.awaitTxId(txid). It also makes indexing opt-in via defaultIndexType and autoIndex config rather than bundling it by default, and changes query-builder ref typing so optionality moves to a type parameter instead of the proxy shape, which may surface new type errors. Track breaking changes like this across the JavaScript ecosystem so upgrades to TanStack DB never catch you off guard on daily.dev."}},{"@type":"Question","name":"How does TanStack DB 0.6 support offline and local-first apps?","acceptedAnswer":{"@type":"Answer","text":"TanStack DB 0.6 adds a SQLite-backed persistence layer that works across browser, React Native (via op-sqlite), and edge runtimes like Cloudflare Durable Objects, using a single persistence model with runtime-specific adapters. Paired with the existing @tanstack/offline-transactions package, durable local state turns the existing query engine, transaction model, and optimistic updates into a fully local-first stack instead of one that only works while the app is open. Compare local-first data layers like TanStack DB against alternatives on daily.dev before committing to an architecture."}},{"@type":"Question","name":"How do TanStack DB includes let me build hierarchical UI data without GraphQL?","acceptedAnswer":{"@type":"Answer","text":"The includes feature in TanStack DB lets you nest sub-queries inside a live query's select so normalized collections (like projects, issues, and comments) project directly into the hierarchical shape your UI renders, running as one incremental query graph instead of separate N+1 fetches. Each included field materializes as its own child collection by default, preserving fine-grained reactivity, or you can flatten it with toArray() when a child render boundary isn't needed. Follow client-side data-fetching patterns like this on daily.dev when deciding how to structure normalized app state."}}]}
```

