<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Quickstart | Electric</title>
    <meta name="description" content="Get up-and-running with Electric and TanStack DB. Install, develop and deploy a super-fast, reactive web app, based on real-time sync of your Postgres data.">
    <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/docs_sync_quickstart.md.DZjtiXKd.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="Quickstart | Electric">
    <meta name="twitter:description" content="Get up-and-running with Electric and TanStack DB. Install, develop and deploy a super-fast, reactive web app, based on real-time sync of your Postgres data.">
    <meta name="twitter:image" content="https://electric.ax/.netlify/images?url=https%3A%2F%2Felectric.ax%2Fimg%2Fmeta%2Felectric.jpg&amp;w=1200&amp;h=630&amp;fit=cover&amp;fm=jpg&amp;q=80">
    <meta property="og:title" content="Quickstart | Electric">
    <meta property="og:description" content="Get up-and-running with Electric and TanStack DB. Install, develop and deploy a super-fast, reactive web app, based on real-time sync of your Postgres data.">
    <meta property="og:image" content="https://electric.ax/.netlify/images?url=https%3A%2F%2Felectric.ax%2Fimg%2Fmeta%2Felectric.jpg&amp;w=1200&amp;h=630&amp;fit=cover&amp;fm=jpg&amp;q=80">
  </head>
  <body>
    <div id="app"><div class="Layout" data-v-53d7592e><!--[--><!--]--><!--[--><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 has-sidebar" 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="active 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 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 has-sidebar empty" data-v-53d7592e data-v-171f8b65><div class="container" data-v-171f8b65><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-171f8b65><span class="vpi-align-left menu-icon" data-v-171f8b65></span><span class="menu-text" data-v-171f8b65>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-171f8b65 data-v-6b00a9e6><button data-v-6b00a9e6>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-53d7592e data-v-958c514a><div class="curtain" data-v-958c514a></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-958c514a><span class="visually-hidden" id="sidebar-aria-label" data-v-958c514a> Sidebar Navigation </span><!--[--><!--[--><div class="docs-sidebar-hero" data-v-2c1b19f1><a class="docs-sidebar-hero-btn docs-sidebar-hero-btn--sync" href="/sync" aria-label="Back to the Electric Sync home page" data-v-2c1b19f1><span class="docs-sidebar-hero-label" data-v-2c1b19f1>Electric Sync</span><span class="docs-sidebar-hero-arrow vpi-chevron-right" aria-hidden="true" data-v-2c1b19f1></span></a><!--[--><div class="docs-sidebar-hero-link" data-v-2c1b19f1><div class="VPSidebarItem level-0 is-link" data-v-2c1b19f1 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Overview</p><!--]--></a><!----></div><!----></div></div><div class="docs-sidebar-hero-link docs-sidebar-hero-link--active" data-v-2c1b19f1><div class="VPSidebarItem level-0 is-link" data-v-2c1b19f1 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/quickstart" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Quickstart</p><!--]--></a><!----></div><!----></div></div><div class="docs-sidebar-hero-link" data-v-2c1b19f1><div class="VPSidebarItem level-0 is-link" data-v-2c1b19f1 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/stacks" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Stacks</p><!--]--></a><!----></div><!----></div></div><div class="docs-sidebar-hero-link" data-v-2c1b19f1><div class="VPSidebarItem level-0 is-link" data-v-2c1b19f1 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/sync/demos/" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Demos</p><!--]--></a><!----></div><!----></div></div><!--]--></div><!--]--><!--]--><!--[--><div class="no-transition group" data-v-12d53e25><section class="VPSidebarItem level-0 collapsible" data-v-12d53e25 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h2 class="text" data-v-8d0ea651>Sync primitives</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8d0ea651><span class="vpi-chevron-right caret-icon" data-v-8d0ea651></span></div></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/sync/postgres-sync" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Postgres Sync</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/sync/tanstack-db" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>TanStack DB</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/sync/pglite" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>PGlite</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-12d53e25><section class="VPSidebarItem level-0 collapsible" data-v-12d53e25 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h2 class="text" data-v-8d0ea651>Guides</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8d0ea651><span class="vpi-chevron-right caret-icon" data-v-8d0ea651></span></div></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/auth" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Auth</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/shapes" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Shapes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/writes" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Writes</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/installation" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Installation</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/postgres-permissions" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>PostgreSQL Permissions</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/deployment" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Deployment</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/upgrading" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Upgrading</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/sharding" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Sharding</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/security" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Security</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/troubleshooting" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Troubleshooting</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/guides/client-development" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Client development</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-12d53e25><section class="VPSidebarItem level-0 collapsible" data-v-12d53e25 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h2 class="text" data-v-8d0ea651>API</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8d0ea651><span class="vpi-chevron-right caret-icon" data-v-8d0ea651></span></div></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/api/http" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>HTTP</p><!--]--></a><!----></div><!----></div><section class="VPSidebarItem level-1 collapsible" data-v-8d0ea651 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h3 class="text" data-v-8d0ea651>Clients</h3><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8d0ea651><span class="vpi-chevron-right caret-icon" data-v-8d0ea651></span></div></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/api/clients/typescript" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>TypeScript</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/api/clients/elixir" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Elixir</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/api/config" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Config</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-12d53e25><section class="VPSidebarItem level-0 collapsible" data-v-12d53e25 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h2 class="text" data-v-8d0ea651>Integrations</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8d0ea651><span class="vpi-chevron-right caret-icon" data-v-8d0ea651></span></div></div><div class="items" data-v-8d0ea651><!--[--><section class="VPSidebarItem level-1" data-v-8d0ea651 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h3 class="text" data-v-8d0ea651>Frameworks</h3><!----></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/livestore" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>LiveStore</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/mobx" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>MobX</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/next" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Next.js</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/phoenix" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Phoenix</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/react" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>React</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/redis" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Redis</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/tanstack" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>TanStack</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/yjs" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Yjs</p><!--]--></a><!----></div><!----></div><!--]--></div></section><section class="VPSidebarItem level-1" data-v-8d0ea651 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h3 class="text" data-v-8d0ea651>Platforms</h3><!----></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/aws" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>AWS</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/cloudflare" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Cloudflare</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/crunchy" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Crunchy</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/digital-ocean" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Digital Ocean</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/expo" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Expo</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/fly" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Fly.io</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/gcp" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>GCP</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/neon" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Neon</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/netlify" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Netlify</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/planetscale" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>PlanetScale</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/render" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Render</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/integrations/supabase" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Supabase</p><!--]--></a><!----></div><!----></div><!--]--></div></section><!--]--></div></section></div><div class="no-transition group" data-v-12d53e25><section class="VPSidebarItem level-0 collapsible" data-v-12d53e25 data-v-8d0ea651><div class="item" role="button" tabindex="0" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><h2 class="text" data-v-8d0ea651>Reference</h2><div class="caret" role="button" aria-label="toggle section" tabindex="0" data-v-8d0ea651><span class="vpi-chevron-right caret-icon" data-v-8d0ea651></span></div></div><div class="items" data-v-8d0ea651><!--[--><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/reference/alternatives" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Alternatives</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/reference/benchmarks" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Benchmarks</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/reference/literature" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Literature</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-8d0ea651 data-v-8d0ea651><div class="item" data-v-8d0ea651><div class="indicator" data-v-8d0ea651></div><a class="VPLink link link" href="/docs/sync/reference/telemetry" data-v-8d0ea651><!--[--><p class="text" data-v-8d0ea651>Telemetry</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-53d7592e data-v-cc7caf18><div class="VPDoc has-sidebar has-aside" data-v-cc7caf18 data-v-9de355d2><!--[--><!--[--><!--[--><div class="markdown-link-local-nav-container"><a class="markdown-link-local-nav" href="/docs/sync/quickstart.md" target="_blank" rel="noopener" data-v-f88f512c><span class="title" data-v-f88f512c>✨ Markdown</span></a></div><!----><!--]--><!--]--><!--]--><div class="container" data-v-9de355d2><div class="aside" data-v-9de355d2><div class="aside-curtain" data-v-9de355d2></div><div class="aside-container" data-v-9de355d2><div class="aside-content" data-v-9de355d2><div class="VPDocAside" data-v-9de355d2 data-v-a2bbf8e3><!--[--><!--]--><!--[--><!--[--><!--[--><!--[--><a class="markdown-link-aside pager-link" href="/docs/sync/quickstart.md" target="_blank" rel="noopener" data-v-f88f512c><span class="title" data-v-f88f512c>✨ Markdown</span></a><!--]--><!--]--><!--]--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-a2bbf8e3 data-v-a4fbf1e8><div class="content" data-v-a4fbf1e8><div class="outline-marker" data-v-a4fbf1e8></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a4fbf1e8>On this page</div><ul class="VPDocOutlineItem root" data-v-a4fbf1e8 data-v-f8b22c7d><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-a2bbf8e3></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-9de355d2><div class="content-container" data-v-9de355d2><!--[--><!--]--><main class="main" data-v-9de355d2><div style="position:relative;" class="vp-doc _docs_sync_quickstart" data-v-9de355d2><div><div style="display:none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /docs/sync/quickstart.md for this page in Markdown format</div><p class="intro-zap-container"><img src="/img/home/zap-with-halo.svg" alt="Electric zap with halo" class="intro-zap"></p><h1 id="quickstart" tabindex="-1">Quickstart <a class="header-anchor" href="#quickstart" aria-label="Permalink to &quot;Quickstart&quot;">​</a></h1><p>Let&#39;s make a super-fast, reactive web app using <span class="no-wrap-xs"><a href="/blog/2025/07/29/super-fast-apps-on-sync-with-tanstack-db">Electric with TanStack DB</a></span>.</p><h2 id="setup" tabindex="-1">Setup <a class="header-anchor" href="#setup" aria-label="Permalink to &quot;Setup&quot;">​</a></h2><p>You&#39;ll need <a href="https://nodejs.org/en" target="_blank" rel="noreferrer">Node</a>, <a href="https://pnpm.io" target="_blank" rel="noreferrer">pnpm</a> and <a href="https://caddyserver.com" target="_blank" rel="noreferrer">Caddy</a> installed. If you haven&#39;t used Caddy before, you&#39;ll need to install it&#39;s <a href="https://caddyserver.com/docs/command-line#caddy-trust" target="_blank" rel="noreferrer">root certificate</a> using:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">caddy</span><span style="color:#9ECBFF;"> trust</span><span style="color:#6A737D;"> # may require sudo</span></span></code></pre></div><p><small><em>Why Caddy? Electric <a href="/docs/sync/guides/troubleshooting#slow-shapes-slow-hmr-slow-dev-server-mdash-why-is-my-local-development-slow">uses HTTP/2</a>. Caddy enables HTTP/2 in local development.</em></small></p><h2 id="get-started" tabindex="-1">Get started <a class="header-anchor" href="#get-started" aria-label="Permalink to &quot;Get started&quot;">​</a></h2><p>A quick way to get started is to run the <a href="https://github.com/electric-sql/electric/tree/main/examples/tanstack-db-web-starter" target="_blank" rel="noreferrer">starter template</a> with local backend services in Docker:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">npx</span><span style="color:#9ECBFF;"> gitpick</span><span style="color:#9ECBFF;"> electric-sql/electric/tree/main/examples/tanstack-db-web-starter</span><span style="color:#9ECBFF;"> my-electric-app</span></span>
<span class="line"><span style="color:#79B8FF;">cd</span><span style="color:#9ECBFF;"> my-electric-app</span></span></code></pre></div><p>Copy the <code>.env.example</code> file to <code>.env</code>:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">cp</span><span style="color:#9ECBFF;"> .env.example</span><span style="color:#9ECBFF;"> .env</span></span></code></pre></div><p>Install the dependencies:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">pnpm</span><span style="color:#9ECBFF;"> install</span></span></code></pre></div><p>Start Postgres and Electric running as background services using Docker Compose:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">pnpm</span><span style="color:#9ECBFF;"> backend:up</span></span></code></pre></div><p>Apply the database migrations:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">pnpm</span><span style="color:#9ECBFF;"> migrate</span></span></code></pre></div><p>Start the dev server:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">pnpm</span><span style="color:#9ECBFF;"> dev</span></span></code></pre></div><p>Open the application on <a href="https://localhost:5173" target="_blank" rel="noreferrer">https://localhost:5173</a>.</p><h2 id="see-the-real-time-sync" tabindex="-1">See the real-time sync <a class="header-anchor" href="#see-the-real-time-sync" aria-label="Permalink to &quot;See the real-time sync&quot;">​</a></h2><p>In another terminal, connect to Postgres using <code>psql</code>:</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">pnpm</span><span style="color:#9ECBFF;"> psql</span></span></code></pre></div><p>Update the project name:</p><div class="language-sql"><button title="Copy Code" class="copy"></button><span class="lang">sql</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#F97583;">UPDATE</span><span style="color:#E1E4E8;"> projects </span><span style="color:#F97583;">SET</span><span style="color:#F97583;"> name</span><span style="color:#F97583;"> =</span><span style="color:#9ECBFF;"> &#39;Baz bam!&#39;</span><span style="color:#E1E4E8;">;</span></span></code></pre></div><p>The app updates instantly in real-time — across all users and devices.</p><h2 id="develop-your-app" tabindex="-1">Develop your app <a class="header-anchor" href="#develop-your-app" aria-label="Permalink to &quot;Develop your app&quot;">​</a></h2><p>The starter is a fully-fledged <a href="https://tanstack.com/start/latest/docs/framework/react/overview" target="_blank" rel="noreferrer">TanStack Start</a> app with routing and auth.</p><p>You can edit the code manually. Or it has an <code>AGENTS.md</code> file you can load directly into your AI code editor:</p><div class="language-sh"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code" tabindex="0"><code><span class="line"><span style="color:#B392F0;">claude</span><span style="color:#9ECBFF;"> &quot;Read Agents.md. Sort the project page todo list alphabetically.&quot;</span></span></code></pre></div><p>See the <a href="https://github.com/electric-sql/electric/blob/main/examples/tanstack-db-web-starter/README.md#developing-your-app" target="_blank" rel="noreferrer">starter template README</a> for more details.</p><h2 id="next-steps" tabindex="-1">Next steps <a class="header-anchor" href="#next-steps" aria-label="Permalink to &quot;Next steps&quot;">​</a></h2><ul><li>learn more about <a href="/blog/2025/07/29/super-fast-apps-on-sync-with-tanstack-db">Super-fast apps on sync with Electric and TanStack DB</a></li><li>see the <a href="https://frontendatscale.com/blog/tanstack-db" target="_blank" rel="noreferrer">Interactive guide to TanStack DB</a>.</li></ul></div></div></main><footer class="VPDocFooter" data-v-9de355d2 data-v-a3804509><!--[--><!--]--><div class="edit-info" data-v-a3804509><div class="edit-link" data-v-a3804509><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/electric-sql/electric/edit/main/website/docs/sync/quickstart.md" target="_blank" rel="noreferrer" data-v-a3804509><!--[--><span class="vpi-square-pen edit-link-icon" data-v-a3804509></span> Edit this page<!--]--></a></div><!----></div><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-a3804509><span class="visually-hidden" id="doc-footer-aria-label" data-v-a3804509>Pager</span><div class="pager" data-v-a3804509><!----></div><div class="pager" data-v-a3804509><a class="VPLink link pager-link next" href="/sync/postgres-sync" data-v-a3804509><!--[--><span class="desc" data-v-a3804509>Next page</span><span class="title" data-v-a3804509>Postgres Sync</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><!--]--></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>