https://powersync.com [651d894021] DocsOpen-SourceBlogPricing[651d894021][651d894021][6526208bec][651] Sign inGet started [651d894021]DocsOpen-SourceBlogPricingGet startedGitHubDiscordTwitter YouTube Drop-in sync layer for your existing Postgres and backend Enables an offline-first architecture for real-time reactive apps. Get started for freeRead the docs PowerSync architecture summary diagram.PowerSync architecture summary [65250f3e82] Tyler Shukert Supabase "PowerSync is really bulletproof -- every single kind of interaction that you might have with the data, it's got covered." Tyler Shukert Supabase [65250e79ee] Sebastian Rohl HabitKit "Integrated @powersync_ into an experimental branch of @HabitKit. Setup was pretty easy and fast. Really love the developer experience and I'm amazed how good it works " Sebastian Rohl HabitKit [65250f7b33] Praful Mathur Sarama / 5 Gyres volunteer "It was incredible to work with PowerSync. Probably the easiest thing that we had to do in terms of development." Praful Mathur Sarama / 5 Gyres volunteer How it works Plugs into your existing database, backend and app Demo Architecture PowerSync architecture overview Visit this website on your desktop to see a demo PowerSync architecture overview INSTANT OFFLINE-FIRST Build fast, always-available apps High-performance local database Real-time streaming & live queries Local reads and writes with a performance-optimized SQLite database make your apps responsive and always available. No client-side migrations are ever necessary. // Local queries db.get('SELECT * FROM lists WHERE id = ?', [id]) // Local writes db.execute('DELETE FROM lists WHERE id = ?', [id]) // Indexing Index('list', [IndexedColumn('list_id')]) // Transactions db.execute('BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE account_no = ?'; UPDATE accounts SET balance = balance + 100 WHERE account_no = ?'; COMMIT TRANSACTION', [account_1, account_2]) Automatically stream data update events from your backend Postgres to users. Live queries on the local database listen to changes and update your UI in real-time, // Flutter syntax db.watch('SELECT count() AS count FROM data').listen((results) { // update UI } why powersync Dynamic partial replication proven at scale PowerSync was spun off from a product that's been in production for over 10 years. Our sync rules approach to dynamic partial replication is battle-tested at scale. How it works Code [6530fb5181] bucket_definitions: user_lists_and_todos: parameters: SELECT token_parameters.user_id as user_id data: - SELECT * FROM lists WHERE owner_id = bucket.user_id - SELECT * FROM todos WHERE created_by = bucket.user_id Robust consistency using server reconciliation We use a proven server reconciliation architecture with a default of last write wins. Developers can customize conflict resolution if required, and are in full control of the write process. [6525f14205] How TO Try Get started with PowerSync Sign up Quickstart Supabase guide Example apps Future support Existing support Future support [651d894021] MySQL [65202471f5] PostgreSQL [6520250a18] [653105942a] React Native & Expo [651d894021] Kotlin/Native [651d894021] Oracle [652024afbf] Flutter [651d894021] Swift [651d894021] SQL Server [6520248afd] Supabase [65560d2c5b] Web (JavaScript & React) [651d894021] Kotlin Multiplatform [652028cd65] Appwrite [653fbb1678] FlutterFlow [65202a0b21] Electron COMMUNITY Join the community "How PowerSync approach the community and support us is really outstanding. I've simply never experienced such support." Ben M. [651d894021] Join Discord [65202e5625] Developers DocsQuickstart GuideSync RulesAPI ReferenceOpen-Source Packages Release NotesRoadmap About BlogPricingCompanySecurityTerms of ServiceAcceptable Use Policy Privacy Policy (c) 2023 Journey Mobile, Inc. [651d894021][651d894021][6526215a69][651][6537c71a93]