From 9bf5bbcc75c9a47b84e7f2bab4a30e386e17811b Mon Sep 17 00:00:00 2001 From: "K-Dog (Kevin)" Date: Fri, 12 Jun 2026 17:43:37 +0800 Subject: [PATCH] chore(etl): add pricing (#46872) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Screenshot 2026-06-12 at 4 21 02 PM Screenshot 2026-06-12 at 4 21 07 PM ## Summary by CodeRabbit * **New Features** * Introduced a database Replication (ETL) offering now available in Pro, Team, and Enterprise plans with usage-based billing options. * Updated the pricing table with explanatory tooltip text to clarify replication billing and features. --- .../components/Pricing/PricingTableRow.tsx | 12 +++++++---- packages/shared-data/pricing.ts | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index 460833a24b1..4ab9be68b6a 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -1,9 +1,10 @@ import ProductIcon from 'components/ProductIcon' -import { Fragment, ReactNode } from 'react' -import { IconPricingIncludedCheck, IconPricingMinus } from './PricingIcons' -import { InfoTooltip } from 'ui-patterns/info-tooltip' -import { FeatureKey } from 'shared-data/pricing' import Link from 'next/link' +import { Fragment, ReactNode } from 'react' +import { FeatureKey } from 'shared-data/pricing' +import { InfoTooltip } from 'ui-patterns/info-tooltip' + +import { IconPricingIncludedCheck, IconPricingMinus } from './PricingIcons' type PricingTooltips = { [key in FeatureKey]?: { @@ -38,6 +39,9 @@ export const pricingTooltips: PricingTooltips = { 'database.egress': { main: 'Billing is based on the total sum of all outgoing traffic (includes Database, Storage, Realtime, Auth, API, Edge Functions, Supavisor, Log Drains) in GB throughout your billing period. Excludes cache hits.', }, + 'database.replication': { + main: 'External Replication (ETL) is available as an add-on for paid plans. ETL provides change-data-capture pipelines that replicate your Postgres tables to analytical destinations in near real time.\nYou are billed for each active pipeline, the replicated bytes and for initial copies/backfills. Initial copies/backfills are billed at a lower rate.', + }, 'storage.cachedEgress': { main: 'Billing is based on the total sum of outgoing Storage traffic in GB throughout your billing period that is served from our CDN cache.', }, diff --git a/packages/shared-data/pricing.ts b/packages/shared-data/pricing.ts index 73afd88a142..56362e1bdf5 100644 --- a/packages/shared-data/pricing.ts +++ b/packages/shared-data/pricing.ts @@ -37,6 +37,7 @@ export type FeatureKey = | 'database.pausing' | 'database.branching' | 'database.egress' + | 'database.replication' | 'auth.totalUsers' | 'auth.maus' | 'auth.userDataOwnership' @@ -194,6 +195,25 @@ export const pricing: Pricing = { }, usage_based: true, }, + { + key: 'database.replication', + title: 'External Replication (ETL)', + plans: { + free: false, + pro: [ + '$39 per pipeline per month', + '$3.00 per GB replicated data', + '$0.60 per GB backfill data', + ], + team: [ + '$39 per pipeline per month', + '$3.00 per GB replicated data', + '$0.60 per GB backfill data', + ], + enterprise: 'Custom', + }, + usage_based: true, + }, ], }, auth: {