<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Blog | Electric</title>
    <meta name="description" content="The latest news and updates from Electric.">
    <meta name="generator" content="VitePress v1.5.0">
    <link rel="preload stylesheet" href="/assets/style.RIjqY79U.css" as="style">
    <link rel="preload stylesheet" href="/vp-icons.css" as="style">
    
    <script type="module" src="/assets/app.6hFJuvLV.js"></script>
    <link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
    <link rel="modulepreload" href="/assets/chunks/theme.DCXLaQhN.js">
    <link rel="modulepreload" href="/assets/chunks/framework.D1Q5NcTP.js">
    <link rel="modulepreload" href="/assets/chunks/posts.data.C3Sb7aWn.js">
    <link rel="modulepreload" href="/assets/chunks/BlogPostListing.B1VGfWgN.js">
    <link rel="modulepreload" href="/assets/blog.md.ofOT4asT.lean.js">
    <link rel="icon" type="image/png" href="/img/brand/favicon.png">
    <link rel="icon" type="image/svg+xml" href="/img/brand/favicon.svg">
    <link rel="prerender" href="https://airtable.com/embed/appDitPIpjlAxK7CL/pagrWjq3qw5Fp68Wa/form">
    <script defer data-domain="electric-sql.com,electric.ax" src="https://plausible.io/js/script.js"></script>
    <script id="check-dark-mode">document.documentElement.classList.add("dark");</script>
    <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:site" content="@ElectricSQL">
    <meta name="twitter:title" content="Blog | Electric">
    <meta name="twitter:description" content="The latest news and updates from Electric.">
    <meta name="twitter:image" content="https://electric.ax/.netlify/images?url=https%3A%2F%2Felectric.ax%2Fstatic%2Fimg%2Fblog%2Felectric-elephant.jpg&amp;w=1200&amp;h=630&amp;fit=cover&amp;fm=jpg&amp;q=80">
    <meta property="og:title" content="Blog | Electric">
    <meta property="og:description" content="The latest news and updates from Electric.">
    <meta property="og:image" content="https://electric.ax/.netlify/images?url=https%3A%2F%2Felectric.ax%2Fstatic%2Fimg%2Fblog%2Felectric-elephant.jpg&amp;w=1200&amp;h=630&amp;fit=cover&amp;fm=jpg&amp;q=80">
  </head>
  <body>
    <div id="app"><div class="Layout nav-relative has-release-banner" data-v-53d7592e><!--[--><div class="release-banner" data-v-9fff0dd0><div class="container" data-v-9fff0dd0><div data-v-9fff0dd0><a href="/blog/2026/08/11/electric-joining-databricks" data-v-9fff0dd0>⚡  Electric is joining <span class="hidden-xs" data-v-9fff0dd0> Neon at </span> Databricks » </a></div></div></div><!--]--><!--[--><span tabindex="-1" data-v-756fd5d1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-756fd5d1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-53d7592e data-v-7d190830><div class="VPNavBar" data-v-7d190830 data-v-50db50bc><div class="wrapper" data-v-50db50bc><div class="container" data-v-50db50bc><div class="title" data-v-50db50bc><div class="VPNavBarTitle" data-v-50db50bc data-v-1658659a><a class="title" href="/" data-v-1658659a><!--[--><!--]--><!--[--><!--[--><!--[--><img class="VPImage dark logo" src="/img/brand/logo.svg" alt="Electric" data-v-048d2156><!--]--><!--[--><img class="VPImage light logo" src="/img/brand/logo.inverse.svg" alt="Electric" data-v-048d2156><!--]--><!--]--><!--]--><!----><!--[--><!--]--></a></div></div><div class="content" data-v-50db50bc><div class="content-body" data-v-50db50bc><!--[--><!--[--><!--[--><div class="VPNavBarMenu MegaNav"><!--[--><!--[--><div class="mega-nav-trigger-wrap" data-id="agents"><button type="button" class="VPNavBarMenuLink mega-nav-link mega-nav-trigger" aria-haspopup="menu" aria-expanded="false" aria-controls="mega-panel-agents">Agents <span class="mega-nav-chevron vpi-chevron-down" aria-hidden="true"></span></button><!----></div><!--]--><!--[--><div class="mega-nav-trigger-wrap" data-id="streams"><button type="button" class="VPNavBarMenuLink mega-nav-link mega-nav-trigger" aria-haspopup="menu" aria-expanded="false" aria-controls="mega-panel-streams">Streams <span class="mega-nav-chevron vpi-chevron-down" aria-hidden="true"></span></button><!----></div><!--]--><!--[--><div class="mega-nav-trigger-wrap" data-id="sync"><button type="button" class="VPNavBarMenuLink mega-nav-link mega-nav-trigger" aria-haspopup="menu" aria-expanded="false" aria-controls="mega-panel-sync">Sync <span class="mega-nav-chevron vpi-chevron-down" aria-hidden="true"></span></button><!----></div><!--]--><!--[--><span class="mega-nav-divider" aria-hidden="true"></span><!--]--><!--[--><div class="mega-nav-trigger-wrap" data-id="cloud"><button type="button" class="VPNavBarMenuLink mega-nav-link mega-nav-trigger" aria-haspopup="menu" aria-expanded="false" aria-controls="mega-panel-cloud">Cloud <span class="mega-nav-chevron vpi-chevron-down" aria-hidden="true"></span></button><!----></div><!--]--><!--[--><a class="mega-nav-top-pricing VPNavBarMenuLink mega-nav-link" href="/pricing">Pricing</a><!--]--><!--[--><span class="mega-nav-divider" aria-hidden="true"></span><!--]--><!--[--><a class="mega-nav-top-blog active VPNavBarMenuLink mega-nav-link" href="/blog">Blog</a><!--]--><!--[--><div class="mega-nav-trigger-wrap" data-id="resources"><button type="button" class="VPNavBarMenuLink mega-nav-link mega-nav-trigger" aria-haspopup="menu" aria-expanded="false" aria-controls="mega-panel-resources">More <span class="mega-nav-chevron vpi-chevron-down" aria-hidden="true"></span></button><!----></div><!--]--><!--]--></div><!--]--><!--]--><!--]--><div class="VPNavBarSearch search" data-v-50db50bc><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-50db50bc data-v-e02be8ee><span id="main-nav-aria-label" class="visually-hidden" data-v-e02be8ee> Main Navigation </span><!--[--><!--]--></nav><!----><!----><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-50db50bc data-v-41f0c3ea data-v-4c1b1d12><!--[--><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-50db50bc data-v-4b696f69 data-v-55f0ba30><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-55f0ba30><span class="vpi-more-horizontal icon" data-v-55f0ba30></span></button><div class="menu" data-v-55f0ba30><div class="VPMenu" data-v-55f0ba30 data-v-cdf166a9><!----><!--[--><!--[--><!----><!----><div class="group" data-v-4b696f69><div class="item social-links" data-v-4b696f69><div class="VPSocialLinks social-links-list" data-v-4b696f69 data-v-4c1b1d12><!--[--><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--[--><!--[--><div class="nav-item VPNavBarMenuLink VPNavBarCTA" data-v-f78c127b><div class="cta-lg" data-v-f78c127b><a class="VPButton medium brand" href="https://dashboard.electric-sql.cloud/" target="_blank" rel="noreferrer" data-v-f78c127b data-v-43af2b7a>Go to Cloud</a></div><div class="cta-md" data-v-f78c127b><a class="VPButton medium brand" href="https://dashboard.electric-sql.cloud/" target="_blank" rel="noreferrer" data-v-f78c127b data-v-43af2b7a>Cloud</a></div><div class="cta-sm" data-v-f78c127b><a class="VPButton medium brand" href="https://dashboard.electric-sql.cloud/" target="_blank" rel="noreferrer" data-v-f78c127b data-v-43af2b7a>Go to Cloud</a></div></div><!--]--><!--]--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-50db50bc data-v-98160fa3><span class="container" data-v-98160fa3><span class="top" data-v-98160fa3></span><span class="middle" data-v-98160fa3></span><span class="bottom" data-v-98160fa3></span></span></button></div></div></div></div><div class="divider" data-v-50db50bc><div class="divider-line" data-v-50db50bc></div></div></div><!----></header><div class="VPLocalNav empty fixed" data-v-53d7592e data-v-171f8b65><div class="container" data-v-171f8b65><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-171f8b65 data-v-6b00a9e6><button data-v-6b00a9e6>Return to top</button><!----></div></div></div><!----><div class="VPContent" id="VPContent" data-v-53d7592e data-v-cc7caf18><div class="VPPage" data-v-cc7caf18><!--[--><!--]--><div style="position:relative;"><div data-v-e444be2f><div class="vp-doc" data-v-e444be2f><div class="container" data-v-e444be2f><main data-v-e444be2f><div class="header" data-v-e444be2f><h1 data-v-e444be2f> Electric Blog </h1><p data-v-e444be2f> The latest news and updates from Electric. </p><div class="actions cta-actions" data-v-e444be2f><div class="action hidden-sm" data-v-e444be2f><a class="VPButton medium brand" href="https://discord.electric-sql.com" target="_blank" rel="noreferrer" data-v-e444be2f data-v-43af2b7a>Join the Community</a></div><div class="action inline-sm" data-v-e444be2f><a class="VPButton medium brand" href="https://discord.electric-sql.com" target="_blank" rel="noreferrer" data-v-e444be2f data-v-43af2b7a>Community</a></div><div class="action hidden-sm" data-v-e444be2f><a class="VPButton medium alt" href="https://github.com/electric-sql/electric" target="_blank" rel="noreferrer" data-v-e444be2f data-v-43af2b7a>Star on GitHub</a></div><div class="action inline-sm" data-v-e444be2f><a class="VPButton medium alt" href="https://github.com/electric-sql/electric" target="_blank" rel="noreferrer" data-v-e444be2f data-v-43af2b7a>GitHub</a></div></div><hr data-v-e444be2f></div><div class="listing" data-v-e444be2f><!--[--><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/08/11/electric-joining-databricks" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-joining-databricks%2Fheader2.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-joining-databricks%2Fheader2.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-joining-databricks%2Fheader2.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-joining-databricks%2Fheader2.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-joining-databricks%2Fheader2.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric is joining Databricks</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Electric is now part of Databricks. We're joining Neon to make Lakebase the best platform for building apps and agents. Everything we've open sourced stays open source.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/07/17/electric-circuits" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-circuits%2Fheader.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-circuits%2Fheader.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-circuits%2Fheader.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-circuits%2Fheader.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-circuits%2Fheader.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric Circuits: turn any database query live</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>Electric Circuits is a new primitive that turns any static database query into a live one. Register a query and a circuit keeps its result updated as the database changes.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/06/26/durable-streams-at-kernel-speed" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-at-kernel-speed%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-at-kernel-speed%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-at-kernel-speed%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-at-kernel-speed%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-at-kernel-speed%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Durable Streams at kernel speed</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>We're releasing a new Durable Streams reference server implemented in Rust. It reaches nearly a million operations per second on a single 4vCPU machine. Here's how we've built it.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/06/25/pglite-reaches-10-million-weekly-downloads" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fpglite-reaches-10-million-weekly-downloads%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fpglite-reaches-10-million-weekly-downloads%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fpglite-reaches-10-million-weekly-downloads%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fpglite-reaches-10-million-weekly-downloads%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fpglite-reaches-10-million-weekly-downloads%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>PGlite reaches 10 million weekly downloads</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>PGlite has reached 10 million weekly npm downloads. Here's how a small Postgres-in-WASM experiment became a widely used embedded Postgres project, and where it goes next.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/06/16/electric-agents-0-6-from-runtime-to-app" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-agents-0-6-from-runtime-to-app%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-agents-0-6-from-runtime-to-app%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-agents-0-6-from-runtime-to-app%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-agents-0-6-from-runtime-to-app%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-agents-0-6-from-runtime-to-app%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric Agents 0.6</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Electric Agents 0.6 is out today. The release adds runtime and SDK primitives for building agent systems, plus in-development desktop and mobile devtools for inspecting and controlling them.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/06/04/serverless-agents" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fserverless-agents%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fserverless-agents%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fserverless-agents%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fserverless-agents%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fserverless-agents%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Serverless agents — managed agents in functions, not sandboxes</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Every major AI platform just shipped managed agents on the same kind of sandbox-based architecture. That's wrong. Managed agents belong in functions, not sandboxes.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/29/introducing-electric-agents" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-agents%2Fheader3.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-agents%2Fheader3.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-agents%2Fheader3.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-agents%2Fheader3.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-agents%2Fheader3.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Introducing Electric Agents — the agent platform built on sync</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>Introducing Electric Agents, the agent platform built on sync. Use it to build scalable, collaborative multi-agent systems that integrate into your online systems.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/20/doom-on-durable-streams" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdoom-on-durable-streams%2Fheader.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdoom-on-durable-streams%2Fheader.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdoom-on-durable-streams%2Fheader.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdoom-on-durable-streams%2Fheader.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdoom-on-durable-streams%2Fheader.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Doom on Durable Streams</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>Can Doom run on Durable Streams? Absolutely! The result: live streaming, rewinding, and fork — branch any session at any point and you're instantly back in the game.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/15/fork-branching-for-durable-streams" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Ffork-branching-for-durable-streams%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Ffork-branching-for-durable-streams%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Ffork-branching-for-durable-streams%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Ffork-branching-for-durable-streams%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Ffork-branching-for-durable-streams%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Fork — branching for Durable Streams</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>Fork adds branching to Durable Streams. Branch any stream at any point — rewind history, fan out agents, or probe without polluting context.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/08/data-primitive-agent-loop" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdata-primitive-agent-loop%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdata-primitive-agent-loop%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdata-primitive-agent-loop%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdata-primitive-agent-loop%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdata-primitive-agent-loop%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Durable Streams — the data primitive for the agent loop</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Agents are stateful. The agent loop accumulates a new kind of data that needs a new kind of primitive. Durable Streams is that primitive.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/08/ai-agents-as-crdt-peers-with-yjs" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-a-collaborative-ai-editor%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-a-collaborative-ai-editor%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-a-collaborative-ai-editor%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-a-collaborative-ai-editor%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-a-collaborative-ai-editor%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>AI agents as CRDT peers — building collaborative AI with Yjs</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>What if an AI agent could be a real-time CRDT peer? Where the agent has its own cursor, streams edits into a live Yjs document, and the whole thing runs on Durable Streams.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/07/yjs-durable-streams-on-electric-cloud" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fyjs-durable-streams-on-electric-cloud%2Fheader.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fyjs-durable-streams-on-electric-cloud%2Fheader.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fyjs-durable-streams-on-electric-cloud%2Fheader.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fyjs-durable-streams-on-electric-cloud%2Fheader.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fyjs-durable-streams-on-electric-cloud%2Fheader.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Yjs over HTTP on Durable Streams</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>We've released a new Yjs provider built on Durable Streams — sync fan-out and fast catch-up from the edge for collaborative and agentic systems. Now live on Electric Cloud.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/04/02/electric-cloud-pricing" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-pricing%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-pricing%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-pricing%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-pricing%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-pricing%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric Cloud pricing is live</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>Electric Cloud now has self-serve pricing. Pay for writes and retention — reads and data delivery are free. Most simple apps will run for free on PAYG.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/03/26/stream-db" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fstream-db%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fstream-db%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fstream-db%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fstream-db%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fstream-db%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>StreamDB — a reactive database in a Durable Stream</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>StreamDB turns a Durable Stream into a reactive database. You provide a Standard Schema, StreamDB gives you type‑safe, durable state with sync.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/03/25/tanstack-db-0.6-app-ready-with-persistence-and-includes" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Ftanstack-db-0.6-app-ready-with-persistence-and-includes%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Ftanstack-db-0.6-app-ready-with-persistence-and-includes%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Ftanstack-db-0.6-app-ready-with-persistence-and-includes%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Ftanstack-db-0.6-app-ready-with-persistence-and-includes%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Ftanstack-db-0.6-app-ready-with-persistence-and-includes%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric apps get persistence and includes with TanStack DB 0.6</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>TanStack DB 0.6 is a major update for Electric users. Persistence and includes make the Electric + TanStack DB stack more app-ready while staying incrementally adoptable.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/03/25/announcing-pglite-v04" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-pglite-v04%2Fhero.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-pglite-v04%2Fhero.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-pglite-v04%2Fhero.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-pglite-v04%2Fhero.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-pglite-v04%2Fhero.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Announcing PGlite v0.4: PostGIS, connection multiplexing, and a new architecture</h3><p class="post-author" data-v-be5980dd><img src="/img/team/tudor.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Tudor Zaharia</span></p><p data-v-be5980dd>PGlite v0.4 ships PostGIS, connection multiplexing, and a major architecture refactor. This post covers what changed and what comes next for embedded Postgres.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/03/24/durable-transport-ai-sdks" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-transport-ai-sdks%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-transport-ai-sdks%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-transport-ai-sdks%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-transport-ai-sdks%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-transport-ai-sdks%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Durable Transports for your AI SDK</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>We've released Durable Streams based transport and session integrations for TanStack AI and the Vercel AI SDK. With turnkey hosting on Electric Cloud.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/03/06/agent-skills-now-shipping" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fagent-skills-now-shipping%2Fhero.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fagent-skills-now-shipping%2Fhero.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fagent-skills-now-shipping%2Fhero.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fagent-skills-now-shipping%2Fhero.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fagent-skills-now-shipping%2Fhero.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Agent skills now shipping in our npm packages</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>We've been collaborating with TanStack to ship agent skills in our npm packages. Run one command to give your agent deep knowledge of Electric, TanStack DB and Durable Streams.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/02/19/amdahls-law-for-ai-agents" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Famdahls-law-for-ai-agents%2Fhero.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Famdahls-law-for-ai-agents%2Fhero.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Famdahls-law-for-ai-agents%2Fhero.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Famdahls-law-for-ai-agents%2Fhero.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Famdahls-law-for-ai-agents%2Fhero.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Amdahl&#39;s law for AI agents</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>Multi-agent systems are delivering real throughput gains — but the teams seeing the biggest speedups share a pattern. A law from 1967 explains why.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/02/02/configurancy" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fconfigurancy%2Fhero.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fconfigurancy%2Fhero.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fconfigurancy%2Fhero.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fconfigurancy%2Fhero.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fconfigurancy%2Fhero.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Configurancy: keeping systems intelligible when agents write all the code</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>AI makes code cheap. The scarce asset is the system's self-knowledge. Configurancy is the layer that lets agents coherently co-evolve a system.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/01/22/announcing-hosted-durable-streams" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-hosted-durable-streams%2Fhero.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-hosted-durable-streams%2Fhero.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-hosted-durable-streams%2Fhero.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-hosted-durable-streams%2Fhero.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-hosted-durable-streams%2Fhero.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Announcing Hosted Durable Streams</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>Hosted durable streams are live on Electric Cloud. You can now sync and stream AI sessions and low-latency real-time data alongside structured database changes.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/01/20/from-science-fiction-to-reality-you-can-build-difficult-things-now" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Ffrom-science-fiction-to-reality-you-can-build-difficult-things-now%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Ffrom-science-fiction-to-reality-you-can-build-difficult-things-now%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Ffrom-science-fiction-to-reality-you-can-build-difficult-things-now%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Ffrom-science-fiction-to-reality-you-can-build-difficult-things-now%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Ffrom-science-fiction-to-reality-you-can-build-difficult-things-now%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>From fiction to reality, you can now build difficult things</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Four years ago, building a collaborative parametric CAD app was completely out of reach for a solo developer. I built one in a week, using the Electric stack and coding agents.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2026/01/12/durable-sessions-for-collaborative-ai" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-sessions-for-collaborative-ai%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-sessions-for-collaborative-ai%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-sessions-for-collaborative-ai%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-sessions-for-collaborative-ai%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-sessions-for-collaborative-ai%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Durable Sessions — the key pattern for collaborative AI</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>As the world moves to getting things done through agents, products need to combine AI with team-based collaboration. Durable Sessions are the best way to do that.
</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/12/23/durable-streams-0.1.0" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-0.1.0%2Fhero.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-0.1.0%2Fhero.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-0.1.0%2Fhero.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-0.1.0%2Fhero.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdurable-streams-0.1.0%2Fhero.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Durable Streams 0.1.0 and State Protocol</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>The first official npm release of Durable Streams, introducing the State Protocol for database-style sync semantics, improved conformance tests and community experiments.
</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/12/09/announcing-durable-streams" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-durable-streams%2Fhero.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-durable-streams%2Fhero.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-durable-streams%2Fhero.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-durable-streams%2Fhero.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fannouncing-durable-streams%2Fhero.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Announcing Durable Streams</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>Introducing Durable Streams, an open protocol for persistent, addressable, real-time streams, based on a generalization of the battle-tested Electric sync protocol.
</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/08/13/electricsql-v1.1-released" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.1-released%2Fheader.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.1-released%2Fheader.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.1-released%2Fheader.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.1-released%2Fheader.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.1-released%2Fheader.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric 1.1: new storage engine with 100x faster writes</h3><p class="post-author" data-v-be5980dd><img src="/img/team/ilia.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Ilia Borovitinov</span></p><p data-v-be5980dd>A behind‑the‑scenes look at Electric's new storage engine: why we built it, how it works, and how it improves performance in production.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/08/12/bringing-agents-back-down-to-earth" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fbringing-agents-back-down-to-earth%2Fheader2.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fbringing-agents-back-down-to-earth%2Fheader2.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fbringing-agents-back-down-to-earth%2Fheader2.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fbringing-agents-back-down-to-earth%2Fheader2.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fbringing-agents-back-down-to-earth%2Fheader2.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Bringing agents back down to earth</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Agentic AI, beneath all the hype, is actually just normal software. You can build agentic systems with a database, standard web tooling and real-time sync.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/08/04/reliability-sprint" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Freliability-sprint%2Fheader.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Freliability-sprint%2Fheader.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Freliability-sprint%2Fheader.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Freliability-sprint%2Fheader.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Freliability-sprint%2Fheader.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>120 days of hardening – the post‑1.0 reliability sprint</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>Our last quarter was a reliability sprint. We set one goal: make ElectricSQL so boring‑reliable that you stop thinking about it and just build.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/07/29/super-fast-apps-on-sync-with-tanstack-db" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-sync-with-tanstack-db%2Fheader2.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-sync-with-tanstack-db%2Fheader2.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-sync-with-tanstack-db%2Fheader2.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-sync-with-tanstack-db%2Fheader2.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-sync-with-tanstack-db%2Fheader2.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Super-fast apps on sync with Electric and TanStack DB</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Tanstack DB is a reactive client store for building super fast apps on sync. Paired with Electric, it provides an optimal end-to-end sync stack for local-first app development.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/06/05/database-in-the-sandbox" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fdatabase-in-the-sandbox%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fdatabase-in-the-sandbox%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fdatabase-in-the-sandbox%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fdatabase-in-the-sandbox%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fdatabase-in-the-sandbox%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Vibe coding with a database in the sandbox</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>More play less infra. With PGlite you can vibe code with a database built into the sandbox.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/04/22/untangling-llm-spaghetti" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Funtangling-llm-spaghetti%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Funtangling-llm-spaghetti%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Funtangling-llm-spaghetti%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Funtangling-llm-spaghetti%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Funtangling-llm-spaghetti%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Untangling the LLM spaghetti</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>LLMs are generating code. That code is imperatively fetching data. That leads to a big ball of spaghetti.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/04/09/building-ai-apps-on-sync" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-ai-apps-on-sync%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-ai-apps-on-sync%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-ai-apps-on-sync%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-ai-apps-on-sync%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fbuilding-ai-apps-on-sync%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Building AI apps? You need sync</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>AI apps are collaborative. Building them requires solving resumability, interruptibility, multi‑tab, multi‑device and multi‑user.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/04/07/electric-cloud-public-beta-release" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-public-beta-release%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-public-beta-release%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-public-beta-release%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-public-beta-release%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-cloud-public-beta-release%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric Cloud public BETA: Sync in 30 seconds</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>Electric Cloud is now in public BETA! This means it's open to everyone for immediate access.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2025/03/17/electricsql-1.0-released" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.0-released%2Fheader2.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.0-released%2Fheader2.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.0-released%2Fheader2.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.0-released%2Fheader2.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-1.0-released%2Fheader2.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric 1.0 released</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>With version 1.0 Electric is now in GA. The APIs are stable and the sync engine is ready for mission critical, production apps.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/12/10/electric-beta-release" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-beta-release%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-beta-release%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-beta-release%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-beta-release%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-beta-release%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric BETA release</h3><p class="post-author" data-v-be5980dd><img src="/img/team/kyle.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Kyle Mathews</span></p><p data-v-be5980dd>With version 1.0.0-beta.1, the Electric sync engine is now in BETA! If you haven't checked out Electric recently, it's a great time to take another look.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/11/21/local-first-with-your-existing-api" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-with-your-existing-api%2Fhumble-toaster.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-with-your-existing-api%2Fhumble-toaster.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-with-your-existing-api%2Fhumble-toaster.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-with-your-existing-api%2Fhumble-toaster.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-with-your-existing-api%2Fhumble-toaster.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Local-first with your existing API</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Local-first is often seen as eliminating your API. But what if you like your API or need to keep it as part of your stack? This post shows how you can develop local-first apps incrementally, using your existing API.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/07/17/electric-next" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-next%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-next%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-next%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-next%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-next%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>A new approach to building Electric</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Electric Next is a new approach that we've adopted to building Electric. One that's informed by the lessons learned building the previous system and inspired by new insight from Kyle Mathews.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/05/14/electricsql-postgres-client-support" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-released-with-postgres-support%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectric-released-with-postgres-support%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-released-with-postgres-support%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-released-with-postgres-support%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectric-released-with-postgres-support%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric v0.11 released with support for Postgres in the client</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Version 0.11 of ElectricSQL. This is the first release with support for syncing to Postgres in the client.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/04/10/electricsql-v0.10-released" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electric v0.10 released with shape filtering</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>We've published version 0.10 of Electric. This is the first release that properly supports where-clause and include-tree filtering with Shape-based sync.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/02/27/intel-ignite" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintel-ignite%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintel-ignite%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintel-ignite%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintel-ignite%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintel-ignite%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Electrify, Ignition, Liftoff!</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>ElectricSQL was selected by Intel as one of 10 startups to participate in batch #6 of it's Intel Ignite accelerator programme in Munich.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/02/05/local-first-ai-with-tauri-postgres-pgvector-llama" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-ai-with-tauri-postgres-pgvector-llama%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-ai-with-tauri-postgres-pgvector-llama%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-ai-with-tauri-postgres-pgvector-llama%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-ai-with-tauri-postgres-pgvector-llama%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-ai-with-tauri-postgres-pgvector-llama%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Local AI with Postgres, pgvector and llama2, inside a Tauri app</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Local AI with Postgres, pgvector and llama2, running inside a Tauri app with realtime sync powered by ElectricSQL 🤯 This is the architecture of the future!</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2024/01/24/electricsql-v0.9-released" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>ElectricSQL v0.9 released</h3><p class="post-author" data-v-be5980dd><img src="/img/team/oleksii.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Oleksii Sholik</span></p><p data-v-be5980dd>We're kicking off the year with a fresh release of Electric that introduces a whole slew of improvements to the experience of configuring, deploying, and developing with Electric.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/12/15/secure-transactions-with-local-first" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fsecure-transactions-with-local-first%2Fheader.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fsecure-transactions-with-local-first%2Fheader.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fsecure-transactions-with-local-first%2Fheader.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fsecure-transactions-with-local-first%2Fheader.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fsecure-transactions-with-local-first%2Fheader.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Secure transactions with local-first</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>One of the most common questions we get asked about developing on ElectricSQL is how to do secure, confirmed transactions like bookings and payments.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/12/13/electricsql-v0.8-released" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Felectricsql-v0.8-released%2FElectric%2BSupabase.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Felectricsql-v0.8-released%2FElectric%2BSupabase.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Felectricsql-v0.8-released%2FElectric%2BSupabase.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Felectricsql-v0.8-released%2FElectric%2BSupabase.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Felectricsql-v0.8-released%2FElectric%2BSupabase.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>ElectricSQL v0.8 released with JSON and Supabase support</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Improved data model and deployment compatibility including JSON support and integration with popular Postgres hosts like Supabase and Digital Ocean.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/11/02/using-electricsql-with-the-ionic-framework-and-capacitor" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fusing-electricsql-with-the-ionic-framework-and-capacitor%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fusing-electricsql-with-the-ionic-framework-and-capacitor%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fusing-electricsql-with-the-ionic-framework-and-capacitor%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fusing-electricsql-with-the-ionic-framework-and-capacitor%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fusing-electricsql-with-the-ionic-framework-and-capacitor%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Use ElectricSQL with the Ionic Framework and Capacitor</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Introducing Electric Appointments, a demo mobile app built with the Ionic Framework and Capacitor.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/11/02/electricsql-v0.7-released" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>ElectricSQL v0.7 released</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>We're thrilled to have published version 0.7 of ElectricSQL, which includes the new migration proxy and extended type support.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/10/26/local-first-software-London-meet-up" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-software-London-meet-up%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-software-London-meet-up%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-software-London-meet-up%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-software-London-meet-up%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Flocal-first-software-London-meet-up%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>ElectricSQL hosted the first &quot;Local-first Software London&quot; meet-up</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Last Thursday, the Electric team was excited to host the first Local-first Software London meet-up.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/10/12/linerlite-local-first-with-react" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Flinerlite-local-first-with-react%2Fheader.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Flinerlite-local-first-with-react%2Fheader.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Flinerlite-local-first-with-react%2Fheader.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Flinerlite-local-first-with-react%2Fheader.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Flinerlite-local-first-with-react%2Fheader.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Linearlite - A local-first app built with ElectricSQL and React</h3><p class="post-author" data-v-be5980dd><img src="/img/team/sam.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Sam Willis</span></p><p data-v-be5980dd>Introducing Linearlite, a simplified, lightweight clone of Linear.app built with Electric.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/10/10/welcome-sam" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-sam%2Flisting.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-sam%2Flisting.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-sam%2Flisting.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-sam%2Flisting.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-sam%2Flisting.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Welcome Sam Willis!</h3><p class="post-author" data-v-be5980dd><img src="/img/team/purva.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Purva Gujar</span></p><p data-v-be5980dd>Sam Willis has joined the team as a Founding Engineer.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/09/20/introducing-electricsql-v0.6" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Fimage.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Local-first sync for Postgres from the inventors of CRDTs</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Introducing the v0.6 release of ElectricSQL. A local-first sync layer that you can use to build reactive, realtime, offline-capable apps directly on Postgres.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/05/10/welcome-andrei-oleksii" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-andrei-oleksii%2Flisting.jpg&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-andrei-oleksii%2Flisting.jpg&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-andrei-oleksii%2Flisting.jpg&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-andrei-oleksii%2Flisting.jpg&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fwelcome-andrei-oleksii%2Flisting.jpg&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Welcome Andrei and Oleksii!</h3><p class="post-author" data-v-be5980dd><img src="/img/team/purva.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Purva Gujar</span></p><p data-v-be5980dd>Electric is now backed by Andrei Miulescu and Oleksii Sholik has joined us as a Founding Engineer.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/02/09/developing-local-first-software" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Flisting.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Flisting.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Flisting.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Flisting.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-electric-sql%2Flisting.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Developing local-first software</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Local-first software is the natural evolution of state-transfer. It enables a modern, realtime multi-user experience, with built in offline support, resilience, privacy and data ownership.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2023/02/02/introducing-jose-kevin-garry" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-jose-kevin-garry%2Flisting.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-jose-kevin-garry%2Flisting.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-jose-kevin-garry%2Flisting.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-jose-kevin-garry%2Flisting.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-jose-kevin-garry%2Flisting.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Welcome José, Kevin and Garry!</h3><p class="post-author" data-v-be5980dd><img src="/img/team/purva.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Purva Gujar</span></p><p data-v-be5980dd>José Valim, the creator of Elixir, distributed systems expert Kevin De Porre and startup engineering veteran Garry Hill have joined Electric.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2022/12/16/evolution-state-transfer" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fevolution-state-transfer%2Flisting.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fevolution-state-transfer%2Flisting.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fevolution-state-transfer%2Flisting.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fevolution-state-transfer%2Flisting.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fevolution-state-transfer%2Flisting.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>The evolution of state transfer</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>Web development has been progressing through an evolution of state transfer. Local-first is the natural endgame and the vision we're working towards with Electric.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2022/05/20/relativity-causal-consistency" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Frelativity-causal-consistency%2Flisting.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Frelativity-causal-consistency%2Flisting.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Frelativity-causal-consistency%2Flisting.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Frelativity-causal-consistency%2Flisting.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Frelativity-causal-consistency%2Flisting.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Relativity and causal consistency</h3><p class="post-author" data-v-be5980dd><img src="/img/team/james2.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>James Arthur</span></p><p data-v-be5980dd>In this post we explore the assumptions that distributed databases are based on and investigate how causal consistency fits the reality of a relativistic universe.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><div class="post" data-v-e444be2f data-v-be5980dd><a href="/blog/2022/05/03/introducing-rich-crdts" class="no-visual" data-v-be5980dd><div class="post-image" data-v-be5980dd><img src="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-rich-crdts%2Flisting.png&amp;w=896" srcset="/.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-rich-crdts%2Flisting.png&amp;w=320 320w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-rich-crdts%2Flisting.png&amp;w=640 640w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-rich-crdts%2Flisting.png&amp;w=960 960w, /.netlify/images?url=%2Fimg%2Fblog%2Fintroducing-rich-crdts%2Flisting.png&amp;w=1280 1280w" sizes="(max-width: 896px) 100vw, 896px" width="896" height="488" alt loading="lazy" decoding="async" data-v-be5980dd></div><div class="post-body" data-v-be5980dd><h3 data-v-be5980dd>Introducing Rich-CRDTs</h3><p class="post-author" data-v-be5980dd><img src="/img/team/valter.jpg" alt="" data-v-be5980dd><span data-v-be5980dd>Valter Balegas</span></p><p data-v-be5980dd>Rich-CRDTs are conflict-free data types (“CRDTs”) extended to provide additional (“Rich”) database guarantees. These guarantees, such as constraints and referential integrity, make building local-first applications much simpler.</p></div><div class="post-footer" data-v-be5980dd>Read post →</div></a></div><!--]--></div></main></div></div></div></div><!--[--><!--]--></div></div><!----><!--[--><footer class="VPFooter" data-v-59bb903a><div class="container" data-v-59bb903a><p class="footer-logo" data-v-59bb903a><img class="footer-logo-img footer-logo-dark" src="/img/brand/logo.svg" alt="Electric" data-v-59bb903a><img class="footer-logo-img footer-logo-light" src="/img/brand/logo.inverse.svg" alt="Electric" data-v-59bb903a></p><nav class="footer-nav" data-v-59bb903a><a href="/about/community" data-v-59bb903a>About</a><a href="/about/contact" data-v-59bb903a>Contact</a><a href="/about/legal/terms" data-v-59bb903a>Legal</a><a href="/docs/sync/" data-v-59bb903a>Docs</a><a href="/sync/demos/" data-v-59bb903a>Demos</a><a href="/blog" data-v-59bb903a>Blog</a><a href="https://dashboard.electric-sql.cloud/" data-v-59bb903a>Sign up</a></nav><nav class="footer-social" data-v-59bb903a><a href="https://tanstack.com/db" aria-label="TanStack DB" data-v-59bb903a><span class="vpi-social-tanstack" data-v-59bb903a></span><span class="social-name" data-v-59bb903a>TanStack DB</span></a><a href="https://pglite.dev" aria-label="PGlite" data-v-59bb903a><span class="vpi-social-pglite" data-v-59bb903a></span><span class="social-name" data-v-59bb903a>PGlite</span></a><a href="https://x.com/ElectricSQL" aria-label="X" data-v-59bb903a><span class="vpi-social-x" data-v-59bb903a></span><span class="social-name" data-v-59bb903a>X</span></a><a href="https://bsky.app/profile/electric.ax" aria-label="Bluesky" data-v-59bb903a><span class="vpi-social-bluesky" data-v-59bb903a></span><span class="social-name" data-v-59bb903a>Bluesky</span></a><a href="https://discord.electric-sql.com" aria-label="Discord" data-v-59bb903a><span class="vpi-social-discord" data-v-59bb903a></span><span class="social-name" data-v-59bb903a>Discord</span></a><a href="https://github.com/electric-sql" aria-label="GitHub" data-v-59bb903a><span class="vpi-social-github" data-v-59bb903a></span><span class="social-name" data-v-59bb903a>GitHub</span></a></nav><p class="copyright" data-v-59bb903a> © 2026 Electric DB Inc. Released under the <a href="https://github.com/electric-sql/electric/blob/main/LICENSE" target="_blank" data-v-59bb903a>Apache 2.0</a> License. </p><div class="footer-markdown-link" data-v-59bb903a><a class="markdown-link-footer" href="/blog.md" target="_blank" rel="noopener" data-v-59bb903a data-v-f88f512c><span class="title" data-v-f88f512c>✨ Markdown</span></a></div></div></footer><!--]--></div></div>
    <script>window.__VP_HASH_MAP__=JSON.parse("{\"about_community.md\":\"UuQw7PpW\",\"about_contact.md\":\"CrWeZGP9\",\"about_index.md\":\"Bq4KZzf1\",\"about_legal_delete-account.md\":\"DICjdN43\",\"about_legal_dpa.md\":\"CrPdIFxp\",\"about_legal_privacy.md\":\"C611Yjau\",\"about_legal_subprocessors.md\":\"60BNvMnV\",\"about_legal_terms.md\":\"DT1KLhME\",\"about_team.md\":\"CFJikY0z\",\"agents_demos.md\":\"C6KXCB6_\",\"agents_demos_chat-starter.md\":\"jOrNZOok\",\"agents_demos_deep-survey.md\":\"Zo9eelhq\",\"agents_index.md\":\"D5Vs-BRf\",\"app.md\":\"BhKbexup\",\"blog.md\":\"ofOT4asT\",\"blog_2022_05_03_introducing-rich-crdts.md\":\"mRerUczD\",\"blog_2022_05_20_relativity-causal-consistency.md\":\"COcdxIu1\",\"blog_2022_12_16_evolution-state-transfer.md\":\"DYPI1l3N\",\"blog_2023_02_02_introducing-jose-kevin-garry.md\":\"BwaGnHCI\",\"blog_2023_02_09_developing-local-first-software.md\":\"CZeRedyL\",\"blog_2023_05_10_welcome-andrei-oleksii.md\":\"eiBWAe3D\",\"blog_2023_09_20_introducing-electricsql-v0.6.md\":\"DDWXSB9a\",\"blog_2023_10_10_welcome-sam.md\":\"CkitPE9L\",\"blog_2023_10_12_linerlite-local-first-with-react.md\":\"ui4X1QdI\",\"blog_2023_10_26_local-first-software-london-meet-up.md\":\"BJFxTL0q\",\"blog_2023_11_02_electricsql-v0.7-released.md\":\"DXl8qrG7\",\"blog_2023_11_02_using-electricsql-with-the-ionic-framework-and-capacitor.md\":\"CCh6Rzbz\",\"blog_2023_12_13_electricsql-v0.8-released.md\":\"kEmocVVP\",\"blog_2023_12_15_secure-transactions-with-local-first.md\":\"E9HixMLR\",\"blog_2024_01_24_electricsql-v0.9-released.md\":\"gfcO1sKX\",\"blog_2024_02_05_local-first-ai-with-tauri-postgres-pgvector-llama.md\":\"DwsPscOL\",\"blog_2024_02_27_intel-ignite.md\":\"CYQ4ZqQL\",\"blog_2024_04_10_electricsql-v0.10-released.md\":\"zHPlO7EW\",\"blog_2024_05_14_electricsql-postgres-client-support.md\":\"COsfmo0d\",\"blog_2024_07_17_electric-next.md\":\"Deyv0ZgX\",\"blog_2024_11_21_local-first-with-your-existing-api.md\":\"D2sFRRct\",\"blog_2024_12_10_electric-beta-release.md\":\"CMQETgpK\",\"blog_2025_03_17_electricsql-1.0-released.md\":\"DsGpPE4A\",\"blog_2025_04_07_electric-cloud-public-beta-release.md\":\"Bjfl35T-\",\"blog_2025_04_09_building-ai-apps-on-sync.md\":\"B3B-lRW9\",\"blog_2025_04_22_untangling-llm-spaghetti.md\":\"D4wPgzao\",\"blog_2025_06_05_database-in-the-sandbox.md\":\"Bh9Hqadw\",\"blog_2025_07_29_super-fast-apps-on-sync-with-tanstack-db.md\":\"DSrYj0du\",\"blog_2025_08_04_reliability-sprint.md\":\"B8mnnGjP\",\"blog_2025_08_12_bringing-agents-back-down-to-earth.md\":\"0BjqObCU\",\"blog_2025_08_13_electricsql-v1.1-released.md\":\"-4PdpeCE\",\"blog_2025_12_09_announcing-durable-streams.md\":\"aC3UpQtp\",\"blog_2025_12_23_durable-streams-0.1.0.md\":\"CYvoVp1w\",\"blog_2026_01_12_durable-sessions-for-collaborative-ai.md\":\"C_Ece-8n\",\"blog_2026_01_20_from-science-fiction-to-reality-you-can-build-difficult-things-now.md\":\"DIqN2k2l\",\"blog_2026_01_22_announcing-hosted-durable-streams.md\":\"DZ8U66OM\",\"blog_2026_02_02_configurancy.md\":\"C8sfka6L\",\"blog_2026_02_19_amdahls-law-for-ai-agents.md\":\"B1d9DqMw\",\"blog_2026_03_06_agent-skills-now-shipping.md\":\"BZdruk20\",\"blog_2026_03_24_durable-transport-ai-sdks.md\":\"Cvjb-9Yu\",\"blog_2026_03_25_announcing-pglite-v04.md\":\"ByHu8ESa\",\"blog_2026_03_25_tanstack-db-0.6-app-ready-with-persistence-and-includes.md\":\"DMSoDlVK\",\"blog_2026_03_26_stream-db.md\":\"CEfor2AD\",\"blog_2026_04_02_electric-cloud-pricing.md\":\"VJpp1eZT\",\"blog_2026_04_07_yjs-durable-streams-on-electric-cloud.md\":\"D-jS_4_n\",\"blog_2026_04_08_ai-agents-as-crdt-peers-with-yjs.md\":\"b_HPl6j1\",\"blog_2026_04_08_data-primitive-agent-loop.md\":\"lw7j3UtO\",\"blog_2026_04_15_fork-branching-for-durable-streams.md\":\"Whm6CPqM\",\"blog_2026_04_20_doom-on-durable-streams.md\":\"BUeKgpEs\",\"blog_2026_04_29_introducing-electric-agents.md\":\"DRAvdYH9\",\"blog_2026_06_04_serverless-agents.md\":\"DtlH42na\",\"blog_2026_06_16_electric-agents-0-6-from-runtime-to-app.md\":\"B9-yTiO_\",\"blog_2026_06_25_pglite-reaches-10-million-weekly-downloads.md\":\"CElPFtoP\",\"blog_2026_06_26_durable-streams-at-kernel-speed.md\":\"Cbxtjx1W\",\"blog_2026_07_17_electric-circuits.md\":\"-cFNWPsT\",\"blog_2026_08_11_electric-joining-databricks.md\":\"B7o71sMj\",\"brand-toys.md\":\"Fy4UQIH0\",\"changelog.md\":\"Clr1MXla\",\"cloud_cli.md\":\"BU7cLi80\",\"cloud_index.md\":\"CSI1D_9q\",\"cloud_usage.md\":\"D9728tKK\",\"docs_agents_entities_agents_horton.md\":\"CVxAcC4x\",\"docs_agents_entities_agents_worker.md\":\"CQsIM53N\",\"docs_agents_entities_patterns_blackboard.md\":\"DaujizbE\",\"docs_agents_entities_patterns_dispatcher.md\":\"BtvRjkuQ\",\"docs_agents_entities_patterns_manager-worker.md\":\"r4RZOFKq\",\"docs_agents_entities_patterns_map-reduce.md\":\"C0TFuyhH\",\"docs_agents_entities_patterns_pipeline.md\":\"Dzjb_2Hh\",\"docs_agents_entities_patterns_reactive-observers.md\":\"DIu4o0Yz\",\"docs_agents_examples_playground.md\":\"C5EdQJjM\",\"docs_agents_index.md\":\"BG-YHP_e\",\"docs_agents_quickstart.md\":\"D5QlDjVW\",\"docs_agents_reference_agent-config.md\":\"DZ150NYR\",\"docs_agents_reference_agent-tool.md\":\"DW0Xz5pm\",\"docs_agents_reference_built-in-collections.md\":\"CLLSdrk7\",\"docs_agents_reference_cli.md\":\"COPEynMU\",\"docs_agents_reference_entity-definition.md\":\"C-1S3OER\",\"docs_agents_reference_entity-handle.md\":\"Bz6Fcrke\",\"docs_agents_reference_entity-registry.md\":\"CZ90_MSf\",\"docs_agents_reference_handler-context.md\":\"Dx29ZNB3\",\"docs_agents_reference_mcp-registry.md\":\"rAC7EPF9\",\"docs_agents_reference_mcp-server-config.md\":\"CaLJl9IN\",\"docs_agents_reference_runtime-handler.md\":\"53ebZQFF\",\"docs_agents_reference_shared-state-handle.md\":\"otE5AGpG\",\"docs_agents_reference_state-collection-proxy.md\":\"CqJ6GdML\",\"docs_agents_reference_wake-event.md\":\"D8Qj15NO\",\"docs_agents_usage_app-setup.md\":\"DjUCUPmR\",\"docs_agents_usage_attachments.md\":\"llfxlKOb\",\"docs_agents_usage_clients-and-react.md\":\"C0oaRkgq\",\"docs_agents_usage_configuring-the-agent.md\":\"DvqFwsOG\",\"docs_agents_usage_context-composition.md\":\"ZIuwF0Je\",\"docs_agents_usage_defining-entities.md\":\"Cv3KgQlC\",\"docs_agents_usage_defining-tools.md\":\"ROR2cyab\",\"docs_agents_usage_embedded-builtins.md\":\"CVO_gNQE\",\"docs_agents_usage_managing-state.md\":\"DV3au0Qo\",\"docs_agents_usage_mcp-servers.md\":\"CxxQ7Ye7\",\"docs_agents_usage_overview.md\":\"xyImYIEN\",\"docs_agents_usage_permissions-and-principals.md\":\"DDIT5K1I\",\"docs_agents_usage_programmatic-runtime-client.md\":\"BHpq3A0B\",\"docs_agents_usage_sandboxing.md\":\"3FZKbnMg\",\"docs_agents_usage_shared-state.md\":\"Bw7AnIyB\",\"docs_agents_usage_signals.md\":\"BsLK8Ywv\",\"docs_agents_usage_spawning-and-coordinating.md\":\"CohnEMRv\",\"docs_agents_usage_testing.md\":\"KimbkNTV\",\"docs_agents_usage_waking-entities.md\":\"A-94GK18\",\"docs_agents_usage_webhook-sources.md\":\"Sqd2hNVr\",\"docs_agents_usage_writing-handlers.md\":\"DzcjSQ9L\",\"docs_agents_walkthrough.md\":\"Bvrqcrfi\",\"docs_streams_cli.md\":\"ObVBddHf\",\"docs_streams_clients_other.md\":\"DI1sHRPM\",\"docs_streams_clients_python.md\":\"D1GJddva\",\"docs_streams_clients_typescript.md\":\"DeyCrcc0\",\"docs_streams_durable-proxy.md\":\"Cc84hUE2\",\"docs_streams_durable-state.md\":\"D0_8bTEA\",\"docs_streams_index.md\":\"CxnjtvDd\",\"docs_streams_integrations_tanstack-ai.md\":\"I_qBEWHO\",\"docs_streams_integrations_vercel-ai-sdk.md\":\"BIo96yHu\",\"docs_streams_integrations_yjs.md\":\"SQoUkQjW\",\"docs_streams_json-mode.md\":\"BYbzS18a\",\"docs_streams_quickstart.md\":\"CORpX5Vd\",\"docs_streams_stream-db.md\":\"JyO1VTP4\",\"docs_streams_stream-fs.md\":\"BGEPNXi7\",\"docs_sync_api_clients_elixir.md\":\"w0-9uuFf\",\"docs_sync_api_clients_typescript.md\":\"BsdPKcK5\",\"docs_sync_api_config.md\":\"DHfZgyLI\",\"docs_sync_api_http.md\":\"CQ176Pxb\",\"docs_sync_guides_auth.md\":\"DfK4_zOQ\",\"docs_sync_guides_client-development.md\":\"J-yaSBtt\",\"docs_sync_guides_deployment.md\":\"DAN-IBOp\",\"docs_sync_guides_installation.md\":\"Diok8fHR\",\"docs_sync_guides_postgres-permissions.md\":\"UyadFc07\",\"docs_sync_guides_security.md\":\"spqe2WB0\",\"docs_sync_guides_shapes.md\":\"CGNnARt5\",\"docs_sync_guides_sharding.md\":\"D0WaY4Gr\",\"docs_sync_guides_troubleshooting.md\":\"p18oqooR\",\"docs_sync_guides_upgrading.md\":\"DaL6MuHF\",\"docs_sync_guides_writes.md\":\"C5pPvyYL\",\"docs_sync_index.md\":\"BZIXF6k7\",\"docs_sync_integrations_aws.md\":\"CFfyX_IX\",\"docs_sync_integrations_cloudflare.md\":\"DK2Plaiv\",\"docs_sync_integrations_crunchy.md\":\"Bon_YHsm\",\"docs_sync_integrations_digital-ocean.md\":\"DRoAY_DT\",\"docs_sync_integrations_expo.md\":\"DnyvQmMo\",\"docs_sync_integrations_fly.md\":\"08_ADkUX\",\"docs_sync_integrations_gcp.md\":\"D0zsl4B4\",\"docs_sync_integrations_livestore.md\":\"C2CGiYiU\",\"docs_sync_integrations_mobx.md\":\"D1G4Mv8y\",\"docs_sync_integrations_neon.md\":\"DBW4Q0UN\",\"docs_sync_integrations_netlify.md\":\"0Aoc0P12\",\"docs_sync_integrations_next.md\":\"EAcZc9He\",\"docs_sync_integrations_phoenix.md\":\"DYJCkdLF\",\"docs_sync_integrations_planetscale.md\":\"Md6CXZcP\",\"docs_sync_integrations_react.md\":\"CV4Er8Ia\",\"docs_sync_integrations_redis.md\":\"DYCyqyYq\",\"docs_sync_integrations_render.md\":\"BAKzq0e_\",\"docs_sync_integrations_supabase.md\":\"DvZPEbo3\",\"docs_sync_integrations_tanstack.md\":\"CSNjTR3p\",\"docs_sync_integrations_vercel.md\":\"e1iYsiVy\",\"docs_sync_integrations_yjs.md\":\"COYaMhy7\",\"docs_sync_llms__intro_redux.md\":\"C2GXx9EZ\",\"docs_sync_llms__quickstart_redux.md\":\"AW5dGiLC\",\"docs_sync_llms__tutorial.md\":\"DrRI3xNz\",\"docs_sync_quickstart.md\":\"DZjtiXKd\",\"docs_sync_reference_alternatives.md\":\"Dl302COE\",\"docs_sync_reference_benchmarks.md\":\"DYKqtXU8\",\"docs_sync_reference_literature.md\":\"DbBcRE0l\",\"docs_sync_reference_telemetry.md\":\"D6sH8Lgc\",\"docs_sync_stacks.md\":\"Bly4oaX4\",\"index.md\":\"VckipgZH\",\"llms.md\":\"BExSzd0K\",\"og_agents.md\":\"BZPK5qXQ\",\"og_cloud.md\":\"C5zjVLJI\",\"og_default.md\":\"CCS4LdPe\",\"og_streams.md\":\"CgzIIa2u\",\"og_sync.md\":\"CCPgPBwg\",\"old-index.md\":\"DdVbzBBY\",\"pricing.md\":\"Ck_PZyHK\",\"src_partials_home-cta.md\":\"DY6UbUj_\",\"src_partials_home-features-after.md\":\"C9DlaIGZ\",\"src_partials_home-features-before.md\":\"BAGq4DRI\",\"src_partials_home-your-stack-simplified.md\":\"e4A7FKZJ\",\"streams_demos_collaborative-ai-editor.md\":\"Ce4jAuvY\",\"streams_demos_durable-doom.md\":\"ByRQLtF3\",\"streams_demos_index.md\":\"ZeIcbC4q\",\"streams_demos_territory-wars.md\":\"CS0UJqw4\",\"streams_index.md\":\"Dtp5ynmr\",\"sync_demos_ai-chat.md\":\"au9O5yjj\",\"sync_demos_bash.md\":\"Dlgcfhz8\",\"sync_demos_burn.md\":\"BctCEEU5\",\"sync_demos_encryption.md\":\"D60GDQJb\",\"sync_demos_gatekeeper-auth.md\":\"-7F5bQPB\",\"sync_demos_index.md\":\"DBsaGlYm\",\"sync_demos_linearlite.md\":\"CB-dKY9S\",\"sync_demos_nextjs.md\":\"BglOX7oy\",\"sync_demos_notes.md\":\"n-0At1ak\",\"sync_demos_phoenix-liveview.md\":\"p5-vNs2t\",\"sync_demos_pixel-art.md\":\"cUcP17Te\",\"sync_demos_proxy-auth.md\":\"DxUTwVG4\",\"sync_demos_react.md\":\"o4Tzw8A0\",\"sync_demos_redis.md\":\"BsZZk2C1\",\"sync_demos_remix.md\":\"TwFt5iIX\",\"sync_demos_tanstack.md\":\"CTHQEbxX\",\"sync_demos_todo-app.md\":\"CRr1YjnV\",\"sync_demos_write-patterns.md\":\"YGD2CIKU\",\"sync_demos_yjs.md\":\"H4FNKtRy\",\"sync_index.md\":\"CygiKUnA\",\"sync_pglite.md\":\"C3lqrXXk\",\"sync_postgres-sync.md\":\"DYcl4YY7\",\"sync_tanstack-db.md\":\"BgQvoWlg\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en\",\"dir\":\"ltr\",\"title\":\"Electric\",\"description\":\"Electric provides the data primitives and infra to build collaborative, multi-agent systems. Including Postgres Sync, Durable Streams, TanStack DB and PGlite.\",\"base\":\"/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":\"force-dark\",\"themeConfig\":{\"editLink\":{\"pattern\":\"https://github.com/electric-sql/electric/edit/main/website/:path\"},\"logo\":{\"light\":\"/img/brand/logo.inverse.svg\",\"dark\":\"/img/brand/logo.svg\",\"alt\":\"Electric\"},\"nav\":[],\"search\":{\"provider\":\"local\"},\"sidebar\":{\"/cloud/\":[{\"text\":\"Hosted products\",\"collapsed\":false,\"items\":[{\"text\":\"Electric Streams\",\"link\":\"/streams\"},{\"text\":\"Electric Sync\",\"link\":\"/sync\"}]}],\"/sync/postgres-sync\":[{\"text\":\"Sync primitives\",\"collapsed\":false,\"items\":[{\"text\":\"Postgres Sync\",\"link\":\"/sync/postgres-sync\"},{\"text\":\"TanStack DB\",\"link\":\"/sync/tanstack-db\"},{\"text\":\"PGlite\",\"link\":\"/sync/pglite\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"Auth\",\"link\":\"/docs/sync/guides/auth\"},{\"text\":\"Shapes\",\"link\":\"/docs/sync/guides/shapes\"},{\"text\":\"Writes\",\"link\":\"/docs/sync/guides/writes\"},{\"text\":\"Installation\",\"link\":\"/docs/sync/guides/installation\"},{\"text\":\"PostgreSQL Permissions\",\"link\":\"/docs/sync/guides/postgres-permissions\"},{\"text\":\"Deployment\",\"link\":\"/docs/sync/guides/deployment\"},{\"text\":\"Upgrading\",\"link\":\"/docs/sync/guides/upgrading\"},{\"text\":\"Sharding\",\"link\":\"/docs/sync/guides/sharding\"},{\"text\":\"Security\",\"link\":\"/docs/sync/guides/security\"},{\"text\":\"Troubleshooting\",\"link\":\"/docs/sync/guides/troubleshooting\"},{\"text\":\"Client development\",\"link\":\"/docs/sync/guides/client-development\"}]},{\"text\":\"API\",\"collapsed\":false,\"items\":[{\"text\":\"HTTP\",\"link\":\"/docs/sync/api/http\"},{\"text\":\"Clients\",\"items\":[{\"text\":\"TypeScript\",\"link\":\"/docs/sync/api/clients/typescript\"},{\"text\":\"Elixir\",\"link\":\"/docs/sync/api/clients/elixir\"}],\"collapsed\":false},{\"text\":\"Config\",\"link\":\"/docs/sync/api/config\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"Frameworks\",\"items\":[{\"text\":\"LiveStore\",\"link\":\"/docs/sync/integrations/livestore\"},{\"text\":\"MobX\",\"link\":\"/docs/sync/integrations/mobx\"},{\"text\":\"Next.js\",\"link\":\"/docs/sync/integrations/next\"},{\"text\":\"Phoenix\",\"link\":\"/docs/sync/integrations/phoenix\"},{\"text\":\"React\",\"link\":\"/docs/sync/integrations/react\"},{\"text\":\"Redis\",\"link\":\"/docs/sync/integrations/redis\"},{\"text\":\"TanStack\",\"link\":\"/docs/sync/integrations/tanstack\"},{\"text\":\"Yjs\",\"link\":\"/docs/sync/integrations/yjs\"}]},{\"text\":\"Platforms\",\"items\":[{\"text\":\"AWS\",\"link\":\"/docs/sync/integrations/aws\"},{\"text\":\"Cloudflare\",\"link\":\"/docs/sync/integrations/cloudflare\"},{\"text\":\"Crunchy\",\"link\":\"/docs/sync/integrations/crunchy\"},{\"text\":\"Digital Ocean\",\"link\":\"/docs/sync/integrations/digital-ocean\"},{\"text\":\"Expo\",\"link\":\"/docs/sync/integrations/expo\"},{\"text\":\"Fly.io\",\"link\":\"/docs/sync/integrations/fly\"},{\"text\":\"GCP\",\"link\":\"/docs/sync/integrations/gcp\"},{\"text\":\"Neon\",\"link\":\"/docs/sync/integrations/neon\"},{\"text\":\"Netlify\",\"link\":\"/docs/sync/integrations/netlify\"},{\"text\":\"PlanetScale\",\"link\":\"/docs/sync/integrations/planetscale\"},{\"text\":\"Render\",\"link\":\"/docs/sync/integrations/render\"},{\"text\":\"Supabase\",\"link\":\"/docs/sync/integrations/supabase\"}]}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Alternatives\",\"link\":\"/docs/sync/reference/alternatives\"},{\"text\":\"Benchmarks\",\"link\":\"/docs/sync/reference/benchmarks\"},{\"text\":\"Literature\",\"link\":\"/docs/sync/reference/literature\"},{\"text\":\"Telemetry\",\"link\":\"/docs/sync/reference/telemetry\"}]}],\"/sync/tanstack-db\":[{\"text\":\"Sync primitives\",\"collapsed\":false,\"items\":[{\"text\":\"Postgres Sync\",\"link\":\"/sync/postgres-sync\"},{\"text\":\"TanStack DB\",\"link\":\"/sync/tanstack-db\"},{\"text\":\"PGlite\",\"link\":\"/sync/pglite\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"Auth\",\"link\":\"/docs/sync/guides/auth\"},{\"text\":\"Shapes\",\"link\":\"/docs/sync/guides/shapes\"},{\"text\":\"Writes\",\"link\":\"/docs/sync/guides/writes\"},{\"text\":\"Installation\",\"link\":\"/docs/sync/guides/installation\"},{\"text\":\"PostgreSQL Permissions\",\"link\":\"/docs/sync/guides/postgres-permissions\"},{\"text\":\"Deployment\",\"link\":\"/docs/sync/guides/deployment\"},{\"text\":\"Upgrading\",\"link\":\"/docs/sync/guides/upgrading\"},{\"text\":\"Sharding\",\"link\":\"/docs/sync/guides/sharding\"},{\"text\":\"Security\",\"link\":\"/docs/sync/guides/security\"},{\"text\":\"Troubleshooting\",\"link\":\"/docs/sync/guides/troubleshooting\"},{\"text\":\"Client development\",\"link\":\"/docs/sync/guides/client-development\"}]},{\"text\":\"API\",\"collapsed\":false,\"items\":[{\"text\":\"HTTP\",\"link\":\"/docs/sync/api/http\"},{\"text\":\"Clients\",\"items\":[{\"text\":\"TypeScript\",\"link\":\"/docs/sync/api/clients/typescript\"},{\"text\":\"Elixir\",\"link\":\"/docs/sync/api/clients/elixir\"}],\"collapsed\":false},{\"text\":\"Config\",\"link\":\"/docs/sync/api/config\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"Frameworks\",\"items\":[{\"text\":\"LiveStore\",\"link\":\"/docs/sync/integrations/livestore\"},{\"text\":\"MobX\",\"link\":\"/docs/sync/integrations/mobx\"},{\"text\":\"Next.js\",\"link\":\"/docs/sync/integrations/next\"},{\"text\":\"Phoenix\",\"link\":\"/docs/sync/integrations/phoenix\"},{\"text\":\"React\",\"link\":\"/docs/sync/integrations/react\"},{\"text\":\"Redis\",\"link\":\"/docs/sync/integrations/redis\"},{\"text\":\"TanStack\",\"link\":\"/docs/sync/integrations/tanstack\"},{\"text\":\"Yjs\",\"link\":\"/docs/sync/integrations/yjs\"}]},{\"text\":\"Platforms\",\"items\":[{\"text\":\"AWS\",\"link\":\"/docs/sync/integrations/aws\"},{\"text\":\"Cloudflare\",\"link\":\"/docs/sync/integrations/cloudflare\"},{\"text\":\"Crunchy\",\"link\":\"/docs/sync/integrations/crunchy\"},{\"text\":\"Digital Ocean\",\"link\":\"/docs/sync/integrations/digital-ocean\"},{\"text\":\"Expo\",\"link\":\"/docs/sync/integrations/expo\"},{\"text\":\"Fly.io\",\"link\":\"/docs/sync/integrations/fly\"},{\"text\":\"GCP\",\"link\":\"/docs/sync/integrations/gcp\"},{\"text\":\"Neon\",\"link\":\"/docs/sync/integrations/neon\"},{\"text\":\"Netlify\",\"link\":\"/docs/sync/integrations/netlify\"},{\"text\":\"PlanetScale\",\"link\":\"/docs/sync/integrations/planetscale\"},{\"text\":\"Render\",\"link\":\"/docs/sync/integrations/render\"},{\"text\":\"Supabase\",\"link\":\"/docs/sync/integrations/supabase\"}]}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Alternatives\",\"link\":\"/docs/sync/reference/alternatives\"},{\"text\":\"Benchmarks\",\"link\":\"/docs/sync/reference/benchmarks\"},{\"text\":\"Literature\",\"link\":\"/docs/sync/reference/literature\"},{\"text\":\"Telemetry\",\"link\":\"/docs/sync/reference/telemetry\"}]}],\"/sync/pglite\":[{\"text\":\"Sync primitives\",\"collapsed\":false,\"items\":[{\"text\":\"Postgres Sync\",\"link\":\"/sync/postgres-sync\"},{\"text\":\"TanStack DB\",\"link\":\"/sync/tanstack-db\"},{\"text\":\"PGlite\",\"link\":\"/sync/pglite\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"Auth\",\"link\":\"/docs/sync/guides/auth\"},{\"text\":\"Shapes\",\"link\":\"/docs/sync/guides/shapes\"},{\"text\":\"Writes\",\"link\":\"/docs/sync/guides/writes\"},{\"text\":\"Installation\",\"link\":\"/docs/sync/guides/installation\"},{\"text\":\"PostgreSQL Permissions\",\"link\":\"/docs/sync/guides/postgres-permissions\"},{\"text\":\"Deployment\",\"link\":\"/docs/sync/guides/deployment\"},{\"text\":\"Upgrading\",\"link\":\"/docs/sync/guides/upgrading\"},{\"text\":\"Sharding\",\"link\":\"/docs/sync/guides/sharding\"},{\"text\":\"Security\",\"link\":\"/docs/sync/guides/security\"},{\"text\":\"Troubleshooting\",\"link\":\"/docs/sync/guides/troubleshooting\"},{\"text\":\"Client development\",\"link\":\"/docs/sync/guides/client-development\"}]},{\"text\":\"API\",\"collapsed\":false,\"items\":[{\"text\":\"HTTP\",\"link\":\"/docs/sync/api/http\"},{\"text\":\"Clients\",\"items\":[{\"text\":\"TypeScript\",\"link\":\"/docs/sync/api/clients/typescript\"},{\"text\":\"Elixir\",\"link\":\"/docs/sync/api/clients/elixir\"}],\"collapsed\":false},{\"text\":\"Config\",\"link\":\"/docs/sync/api/config\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"Frameworks\",\"items\":[{\"text\":\"LiveStore\",\"link\":\"/docs/sync/integrations/livestore\"},{\"text\":\"MobX\",\"link\":\"/docs/sync/integrations/mobx\"},{\"text\":\"Next.js\",\"link\":\"/docs/sync/integrations/next\"},{\"text\":\"Phoenix\",\"link\":\"/docs/sync/integrations/phoenix\"},{\"text\":\"React\",\"link\":\"/docs/sync/integrations/react\"},{\"text\":\"Redis\",\"link\":\"/docs/sync/integrations/redis\"},{\"text\":\"TanStack\",\"link\":\"/docs/sync/integrations/tanstack\"},{\"text\":\"Yjs\",\"link\":\"/docs/sync/integrations/yjs\"}]},{\"text\":\"Platforms\",\"items\":[{\"text\":\"AWS\",\"link\":\"/docs/sync/integrations/aws\"},{\"text\":\"Cloudflare\",\"link\":\"/docs/sync/integrations/cloudflare\"},{\"text\":\"Crunchy\",\"link\":\"/docs/sync/integrations/crunchy\"},{\"text\":\"Digital Ocean\",\"link\":\"/docs/sync/integrations/digital-ocean\"},{\"text\":\"Expo\",\"link\":\"/docs/sync/integrations/expo\"},{\"text\":\"Fly.io\",\"link\":\"/docs/sync/integrations/fly\"},{\"text\":\"GCP\",\"link\":\"/docs/sync/integrations/gcp\"},{\"text\":\"Neon\",\"link\":\"/docs/sync/integrations/neon\"},{\"text\":\"Netlify\",\"link\":\"/docs/sync/integrations/netlify\"},{\"text\":\"PlanetScale\",\"link\":\"/docs/sync/integrations/planetscale\"},{\"text\":\"Render\",\"link\":\"/docs/sync/integrations/render\"},{\"text\":\"Supabase\",\"link\":\"/docs/sync/integrations/supabase\"}]}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Alternatives\",\"link\":\"/docs/sync/reference/alternatives\"},{\"text\":\"Benchmarks\",\"link\":\"/docs/sync/reference/benchmarks\"},{\"text\":\"Literature\",\"link\":\"/docs/sync/reference/literature\"},{\"text\":\"Telemetry\",\"link\":\"/docs/sync/reference/telemetry\"}]}],\"/sync/demos\":[{\"text\":\"Demo apps\",\"collapsed\":false,\"items\":[{\"text\":\"Burn\",\"link\":\"/sync/demos/burn\"},{\"text\":\"AI Chat\",\"link\":\"/sync/demos/ai-chat\"},{\"text\":\"Linearlite\",\"link\":\"/sync/demos/linearlite\"},{\"text\":\"Notes\",\"link\":\"/sync/demos/notes\"},{\"text\":\"Pixel art\",\"link\":\"/sync/demos/pixel-art\"}]},{\"text\":\"Technical examples\",\"collapsed\":false,\"items\":[{\"text\":\"Bash\",\"link\":\"/sync/demos/bash\"},{\"text\":\"Encryption\",\"link\":\"/sync/demos/encryption\"},{\"text\":\"Gatekeeper auth\",\"link\":\"/sync/demos/gatekeeper-auth\"},{\"text\":\"Next.js\",\"link\":\"/sync/demos/nextjs\"},{\"text\":\"Phoenix LiveView\",\"link\":\"/sync/demos/phoenix-liveview\"},{\"text\":\"Proxy auth\",\"link\":\"/sync/demos/proxy-auth\"},{\"text\":\"React\",\"link\":\"/sync/demos/react\"},{\"text\":\"Redis\",\"link\":\"/sync/demos/redis\"},{\"text\":\"Remix\",\"link\":\"/sync/demos/remix\"},{\"text\":\"Tanstack\",\"link\":\"/sync/demos/tanstack\"},{\"text\":\"Todo app\",\"link\":\"/sync/demos/todo-app\"},{\"text\":\"Write patterns\",\"link\":\"/sync/demos/write-patterns\"},{\"text\":\"Yjs\",\"link\":\"/sync/demos/yjs\"}]}],\"/sync/\":[{\"text\":\"Electric Sync\",\"items\":[{\"text\":\"Overview\",\"link\":\"/sync\"}]},{\"text\":\"Sync primitives\",\"items\":[{\"text\":\"Postgres Sync\",\"link\":\"/sync/postgres-sync\"},{\"text\":\"TanStack DB\",\"link\":\"/sync/tanstack-db\"},{\"text\":\"PGlite\",\"link\":\"/sync/pglite\"}]}],\"/agents/demos\":[{\"text\":\"Demo apps\",\"collapsed\":false,\"items\":[{\"text\":\"Chat Starter\",\"link\":\"/agents/demos/chat-starter\"},{\"text\":\"Deep Survey\",\"link\":\"/agents/demos/deep-survey\"}]},{\"text\":\"Technical examples\",\"collapsed\":false,\"items\":[{\"text\":\"Playground\",\"link\":\"/docs/agents/examples/playground\"}]}],\"/streams/demos\":[{\"text\":\"Demo apps\",\"collapsed\":false,\"items\":[{\"text\":\"Durable Doom\",\"link\":\"/streams/demos/durable-doom\"},{\"text\":\"Collaborative AI Editor\",\"link\":\"/streams/demos/collaborative-ai-editor\"},{\"text\":\"Territory Wars\",\"link\":\"/streams/demos/territory-wars\"}]},{\"text\":\"Technical examples\",\"collapsed\":false,\"items\":[{\"text\":\"Yjs demo\",\"link\":\"https://github.com/durable-streams/durable-streams/tree/main/examples/yjs-demo\"},{\"text\":\"StreamDB\",\"link\":\"https://github.com/durable-streams/durable-streams/tree/main/examples/stream-db\"},{\"text\":\"Chat AI SDK\",\"link\":\"https://github.com/durable-streams/durable-streams/tree/main/examples/chat-aisdk\"},{\"text\":\"Chat TanStack\",\"link\":\"https://github.com/durable-streams/durable-streams/tree/main/examples/chat-tanstack\"}]}],\"/docs/sync\":[{\"text\":\"Sync primitives\",\"collapsed\":false,\"items\":[{\"text\":\"Postgres Sync\",\"link\":\"/sync/postgres-sync\"},{\"text\":\"TanStack DB\",\"link\":\"/sync/tanstack-db\"},{\"text\":\"PGlite\",\"link\":\"/sync/pglite\"}]},{\"text\":\"Guides\",\"collapsed\":false,\"items\":[{\"text\":\"Auth\",\"link\":\"/docs/sync/guides/auth\"},{\"text\":\"Shapes\",\"link\":\"/docs/sync/guides/shapes\"},{\"text\":\"Writes\",\"link\":\"/docs/sync/guides/writes\"},{\"text\":\"Installation\",\"link\":\"/docs/sync/guides/installation\"},{\"text\":\"PostgreSQL Permissions\",\"link\":\"/docs/sync/guides/postgres-permissions\"},{\"text\":\"Deployment\",\"link\":\"/docs/sync/guides/deployment\"},{\"text\":\"Upgrading\",\"link\":\"/docs/sync/guides/upgrading\"},{\"text\":\"Sharding\",\"link\":\"/docs/sync/guides/sharding\"},{\"text\":\"Security\",\"link\":\"/docs/sync/guides/security\"},{\"text\":\"Troubleshooting\",\"link\":\"/docs/sync/guides/troubleshooting\"},{\"text\":\"Client development\",\"link\":\"/docs/sync/guides/client-development\"}]},{\"text\":\"API\",\"collapsed\":false,\"items\":[{\"text\":\"HTTP\",\"link\":\"/docs/sync/api/http\"},{\"text\":\"Clients\",\"items\":[{\"text\":\"TypeScript\",\"link\":\"/docs/sync/api/clients/typescript\"},{\"text\":\"Elixir\",\"link\":\"/docs/sync/api/clients/elixir\"}],\"collapsed\":false},{\"text\":\"Config\",\"link\":\"/docs/sync/api/config\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"Frameworks\",\"items\":[{\"text\":\"LiveStore\",\"link\":\"/docs/sync/integrations/livestore\"},{\"text\":\"MobX\",\"link\":\"/docs/sync/integrations/mobx\"},{\"text\":\"Next.js\",\"link\":\"/docs/sync/integrations/next\"},{\"text\":\"Phoenix\",\"link\":\"/docs/sync/integrations/phoenix\"},{\"text\":\"React\",\"link\":\"/docs/sync/integrations/react\"},{\"text\":\"Redis\",\"link\":\"/docs/sync/integrations/redis\"},{\"text\":\"TanStack\",\"link\":\"/docs/sync/integrations/tanstack\"},{\"text\":\"Yjs\",\"link\":\"/docs/sync/integrations/yjs\"}]},{\"text\":\"Platforms\",\"items\":[{\"text\":\"AWS\",\"link\":\"/docs/sync/integrations/aws\"},{\"text\":\"Cloudflare\",\"link\":\"/docs/sync/integrations/cloudflare\"},{\"text\":\"Crunchy\",\"link\":\"/docs/sync/integrations/crunchy\"},{\"text\":\"Digital Ocean\",\"link\":\"/docs/sync/integrations/digital-ocean\"},{\"text\":\"Expo\",\"link\":\"/docs/sync/integrations/expo\"},{\"text\":\"Fly.io\",\"link\":\"/docs/sync/integrations/fly\"},{\"text\":\"GCP\",\"link\":\"/docs/sync/integrations/gcp\"},{\"text\":\"Neon\",\"link\":\"/docs/sync/integrations/neon\"},{\"text\":\"Netlify\",\"link\":\"/docs/sync/integrations/netlify\"},{\"text\":\"PlanetScale\",\"link\":\"/docs/sync/integrations/planetscale\"},{\"text\":\"Render\",\"link\":\"/docs/sync/integrations/render\"},{\"text\":\"Supabase\",\"link\":\"/docs/sync/integrations/supabase\"}]}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"Alternatives\",\"link\":\"/docs/sync/reference/alternatives\"},{\"text\":\"Benchmarks\",\"link\":\"/docs/sync/reference/benchmarks\"},{\"text\":\"Literature\",\"link\":\"/docs/sync/reference/literature\"},{\"text\":\"Telemetry\",\"link\":\"/docs/sync/reference/telemetry\"}]}],\"/docs/agents/examples\":[{\"text\":\"Demo apps\",\"collapsed\":false,\"items\":[{\"text\":\"Chat Starter\",\"link\":\"/agents/demos/chat-starter\"},{\"text\":\"Deep Survey\",\"link\":\"/agents/demos/deep-survey\"}]},{\"text\":\"Technical examples\",\"collapsed\":false,\"items\":[{\"text\":\"Playground\",\"link\":\"/docs/agents/examples/playground\"}]}],\"/docs/agents\":[{\"text\":\"Usage\",\"collapsed\":false,\"items\":[{\"text\":\"Overview\",\"link\":\"/docs/agents/usage/overview\"},{\"text\":\"Defining entities\",\"link\":\"/docs/agents/usage/defining-entities\"},{\"text\":\"Writing handlers\",\"link\":\"/docs/agents/usage/writing-handlers\"},{\"text\":\"Configuring the agent\",\"link\":\"/docs/agents/usage/configuring-the-agent\"},{\"text\":\"Context composition\",\"link\":\"/docs/agents/usage/context-composition\"},{\"text\":\"Defining tools\",\"link\":\"/docs/agents/usage/defining-tools\"},{\"text\":\"Managing state\",\"link\":\"/docs/agents/usage/managing-state\"},{\"text\":\"Permissions & principals\",\"link\":\"/docs/agents/usage/permissions-and-principals\"},{\"text\":\"Spawning & coordinating\",\"link\":\"/docs/agents/usage/spawning-and-coordinating\"},{\"text\":\"Waking entities\",\"link\":\"/docs/agents/usage/waking-entities\"},{\"text\":\"Signals\",\"link\":\"/docs/agents/usage/signals\"},{\"text\":\"Sandboxing\",\"link\":\"/docs/agents/usage/sandboxing\"},{\"text\":\"Attachments\",\"link\":\"/docs/agents/usage/attachments\"},{\"text\":\"Shared state\",\"link\":\"/docs/agents/usage/shared-state\"},{\"text\":\"Clients & React\",\"link\":\"/docs/agents/usage/clients-and-react\"},{\"text\":\"Programmatic runtime client\",\"link\":\"/docs/agents/usage/programmatic-runtime-client\"},{\"text\":\"App setup\",\"link\":\"/docs/agents/usage/app-setup\"},{\"text\":\"Embedded built-ins\",\"link\":\"/docs/agents/usage/embedded-builtins\"},{\"text\":\"Webhook sources\",\"link\":\"/docs/agents/usage/webhook-sources\"},{\"text\":\"MCP servers\",\"link\":\"/docs/agents/usage/mcp-servers\"},{\"text\":\"Testing\",\"link\":\"/docs/agents/usage/testing\"}]},{\"text\":\"Reference\",\"collapsed\":false,\"items\":[{\"text\":\"CLI\",\"link\":\"/docs/agents/reference/cli\"},{\"text\":\"HandlerContext\",\"link\":\"/docs/agents/reference/handler-context\"},{\"text\":\"EntityDefinition\",\"link\":\"/docs/agents/reference/entity-definition\"},{\"text\":\"AgentConfig\",\"link\":\"/docs/agents/reference/agent-config\"},{\"text\":\"AgentTool\",\"link\":\"/docs/agents/reference/agent-tool\"},{\"text\":\"StateCollectionProxy\",\"link\":\"/docs/agents/reference/state-collection-proxy\"},{\"text\":\"EntityHandle\",\"link\":\"/docs/agents/reference/entity-handle\"},{\"text\":\"SharedStateHandle\",\"link\":\"/docs/agents/reference/shared-state-handle\"},{\"text\":\"WakeEvent\",\"link\":\"/docs/agents/reference/wake-event\"},{\"text\":\"Built-in collections\",\"link\":\"/docs/agents/reference/built-in-collections\"},{\"text\":\"EntityRegistry\",\"link\":\"/docs/agents/reference/entity-registry\"},{\"text\":\"RuntimeHandler\",\"link\":\"/docs/agents/reference/runtime-handler\"},{\"text\":\"McpRegistry\",\"link\":\"/docs/agents/reference/mcp-registry\"},{\"text\":\"McpServerConfig\",\"link\":\"/docs/agents/reference/mcp-server-config\"}]},{\"text\":\"Entities\",\"collapsed\":false,\"items\":[{\"text\":\"Agents\",\"items\":[{\"text\":\"Horton\",\"link\":\"/docs/agents/entities/agents/horton\"},{\"text\":\"Worker\",\"link\":\"/docs/agents/entities/agents/worker\"}],\"collapsed\":false},{\"text\":\"Patterns\",\"items\":[{\"text\":\"Manager-Worker\",\"link\":\"/docs/agents/entities/patterns/manager-worker\"},{\"text\":\"Pipeline\",\"link\":\"/docs/agents/entities/patterns/pipeline\"},{\"text\":\"Map-Reduce\",\"link\":\"/docs/agents/entities/patterns/map-reduce\"},{\"text\":\"Dispatcher\",\"link\":\"/docs/agents/entities/patterns/dispatcher\"},{\"text\":\"Blackboard (shared state)\",\"link\":\"/docs/agents/entities/patterns/blackboard\"},{\"text\":\"Reactive observers\",\"link\":\"/docs/agents/entities/patterns/reactive-observers\"}],\"collapsed\":false}]}],\"/docs/streams\":[{\"text\":\"Usage\",\"collapsed\":false,\"items\":[{\"text\":\"CLI\",\"link\":\"/docs/streams/cli\"},{\"text\":\"Clients\",\"collapsed\":false,\"items\":[{\"text\":\"TypeScript\",\"link\":\"/docs/streams/clients/typescript\"},{\"text\":\"Python\",\"link\":\"/docs/streams/clients/python\"},{\"text\":\"Other clients\",\"link\":\"/docs/streams/clients/other\"}]},{\"text\":\"JSON mode\",\"link\":\"/docs/streams/json-mode\"},{\"text\":\"Durable Proxy\",\"link\":\"/docs/streams/durable-proxy\"},{\"text\":\"Durable State\",\"link\":\"/docs/streams/durable-state\"},{\"text\":\"StreamDB\",\"link\":\"/docs/streams/stream-db\"},{\"text\":\"StreamFS\",\"link\":\"/docs/streams/stream-fs\"}]},{\"text\":\"Integrations\",\"collapsed\":false,\"items\":[{\"text\":\"TanStack AI\",\"link\":\"/docs/streams/integrations/tanstack-ai\"},{\"text\":\"Vercel AI SDK\",\"link\":\"/docs/streams/integrations/vercel-ai-sdk\"},{\"text\":\"Yjs\",\"link\":\"/docs/streams/integrations/yjs\"}]},{\"text\":\"Open Protocol\",\"items\":[{\"text\":\"durablestreams.com\",\"link\":\"https://durablestreams.com\"}]}],\"/about\":[{\"text\":\"About\",\"link\":\"/about/\"},{\"text\":\"Community\",\"link\":\"/about/community\"},{\"text\":\"Team\",\"link\":\"/about/team\"},{\"text\":\"Contact\",\"link\":\"/about/contact\"},{\"text\":\"Legal\",\"items\":[{\"text\":\"Terms\",\"link\":\"/about/legal/terms\"},{\"text\":\"Privacy\",\"link\":\"/about/legal/privacy\"},{\"text\":\"Delete your account\",\"link\":\"/about/legal/delete-account\"}],\"collapsed\":false},{\"text\":\"LLMs / AGENTS.md\",\"link\":\"/llms\"}],\"/llms\":[{\"text\":\"About\",\"link\":\"/about/\"},{\"text\":\"Community\",\"link\":\"/about/community\"},{\"text\":\"Team\",\"link\":\"/about/team\"},{\"text\":\"Contact\",\"link\":\"/about/contact\"},{\"text\":\"Legal\",\"items\":[{\"text\":\"Terms\",\"link\":\"/about/legal/terms\"},{\"text\":\"Privacy\",\"link\":\"/about/legal/privacy\"},{\"text\":\"Delete your account\",\"link\":\"/about/legal/delete-account\"}],\"collapsed\":false},{\"text\":\"LLMs / AGENTS.md\",\"link\":\"/llms\"}]},\"siteTitle\":false,\"socialLinks\":[]},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":true}");</script>
    
  </body>
</html>