Two-way sync
Changes in Databricks instantly reflect in Supabase, and back. No stale data, no manual imports.
Map fields once for two-way sync. Permitted Supabase row inserts reach Databricks, and updates in Databricks reach Supabase.
Trusted by fast-scaling teams, from YC startups to enterprise platform teams

Connects over SQL over JDBC/ODBC via SQL warehouses, plus a REST API including statement execution, mapped field-by-field into Supabase, with row-level audit and no backend of your own to run.
Every table maps to a Databricks object both ways. Insert a row in Supabase and it lands in Databricks; update a record there and Supabase reflects it back.
Delta Lake Change Data Feed for row-level changes. Changes land in Supabase in milliseconds, not on the next polling cycle.
Any object the API exposes can be mapped into Supabase, with schema discovery doing the field-matching for you.
Patterns a two-person team can ship in a week. Any table in Supabase maps to any object in Databricks.
Changes in Databricks instantly reflect in Supabase, and back. No stale data, no manual imports.
Land Supabase application records in Databricks continuously, so data teams get lakehouse-scale analytics and ML features without custom ETL.
Sync Databricks-modeled tables and feature outputs back into Supabase for activation in the app and CRM tools that read it.
Mirror CRM and ERP objects into Databricks so data science and ML pipelines join business data with product data in one query.
Keep a Databricks reporting layer continuously hydrated from Supabase, without maintaining separate batch export jobs.
No ETL jobs or sync scripts to maintain. Map Supabase tables to Catalogs and Schemas once, and every write stays in sync automatically.
Changes in Supabase reach Databricks in real time, and back. catalogs, schemas and delta tables stay consistent everywhere they live.
Your Supabase write-ahead log is read directly, while Databricks changes are picked up instantly, no polling delays or extra load.
OAuth your project and the system. Schemas read automatically.
Tables to objects, fields to fields. Transforms run inline.
Historical backfill, then continuous CDC both ways.
Row-level logs, latency and one-click replay.
One client, the same auth as your Supabase project. If you know the Supabase client, you already know this one.
Read the docsimport { createClient } from '@stacksync/client'const stacksync = createClient( process.env.SUPABASE_URL, process.env.STACKSYNC_API_KEY)export default function Deals() { const [deals, setDeals] = useState([]) useEffect(() => { stacksync.from('deals').select('*') .then(({ data }) => setDeals(data)) }, []) return <DealList items={deals} />}
import { createClient } from '@stacksync/client'export async function POST(request) { const stacksync = createClient( process.env.SUPABASE_URL, process.env.STACKSYNC_API_KEY ) const { id, stage } = await request.json() // writes Supabase, propagates to Databricks const { data } = await stacksync .from('deals') .update({ stage }) .eq('id', id) return Response.json(data)}
from stacksync import create_clientstacksync = create_client( os.environ['SUPABASE_URL'], os.environ['STACKSYNC_API_KEY'])# one write, both systemsstacksync.table('deals').update( {'stage': 'won', 'amount': 48000}).eq('id', 'd_10427').execute()for row in stacksync.logs('deals').recent(): print(row['system'], row['latency_ms'])
import { createClient } from '@stacksync/client'Deno.serve(async (req) => { const stacksync = createClient( Deno.env.get('SUPABASE_URL'), Deno.env.get('STACKSYNC_API_KEY') ) const { record } = await req.json() await stacksync.from('accounts').upsert({ id: record.id, owner: record.owner_email }) return new Response('ok')})
// claude_desktop_config.json{ "mcpServers": { "stacksync": { "command": "npx", "args": ["-y", "@stacksync/mcp"], "env": { "STACKSYNC_API_KEY": "sk_live_...", "SUPABASE_URL": "https://xyz.supabase.co" } } }}// your agent now reads and writes// every connected system of record
-- Supabase stays the source of truthupdate deals set stage = 'won', amount = 48000 where id = 'd_10427';-- Stacksync picks up the change via CDC-- and writes it to every mapped systemselect system, object_id, latency_ms, status from stacksync.write_log where table_name = 'deals' order by created_at desc limit 10;
Normally $1,000/mo. Yours at $0 during launch week.
Plus $100 in sync credits on the house. No card, no sales call, the same self-serve start you got with Supabase.
Takes about 2 minutes · cancel in one click · export every mapping you build
“We went from treating data integration as a necessary evil that consumed our best engineers to having it just work, reliably, at scale, in real-time.”
Alex Marinov · VP of Technology, ACERTUS
Trusted by 1,000+ teams · SOC 2 Type II · ISO 27001
The integration layer is where compliance reviews stall. Row-level audit, residency and DPF certification for US, EU, UK and CH transfers, so procurement is a form, not a quarter.
Learn more about security
Okta, Azure and Google SSO, with SCIM provisioning.
Sync issues to email, Slack, PagerDuty or WhatsApp, with retry and revert.
Connects to your systems your way.
Stacksync watches your Supabase tables via CDC and Databricks's API in real time. A permitted write on either side maps to fields on the other, with row-level logs for every change.
Yes. Changes made in Supabase propagate to Databricks and vice versa. Field write controls preserve read-only values within the two-way sync.
No. Authenticate both systems, pick objects and fields to map, and enable the sync. Most integrations go live in minutes with no infrastructure to manage.
Stacksync is SOC 2 Type II, ISO 27001, HIPAA, GDPR, CCPA and CSA STAR certified, and holds the EU-US, UK and Swiss Data Privacy Framework (DPF) certification. Data is encrypted in transit, with a zero-persistent-storage architecture: records aren't retained after a sync operation.