From d1fb6207432577fd59266c3f7585839e073f5fc4 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Wed, 11 Jan 2023 17:06:30 -0330 Subject: [PATCH 01/39] Start on pricing page updates --- apps/www/components/PricingTableRow.tsx | 35 ++-- apps/www/pages/pricing/index.tsx | 220 +++++++++++++++--------- apps/www/styles/index.css | 26 +++ 3 files changed, 186 insertions(+), 95 deletions(-) diff --git a/apps/www/components/PricingTableRow.tsx b/apps/www/components/PricingTableRow.tsx index 2a81769258b..e9a29a72236 100644 --- a/apps/www/components/PricingTableRow.tsx +++ b/apps/www/components/PricingTableRow.tsx @@ -1,6 +1,6 @@ import { IconHelpCircle } from 'ui' import ProductIcon from 'components/ProductIcon' -import React from 'react' +import React, { useState } from 'react' import ReactTooltip from 'react-tooltip' export const Check = () => ( @@ -50,7 +50,7 @@ export const PricingTableRowDesktop = (props: any) => { return ( <> {

{category.title}

- - - + + + {category.features.map((feat: any, i: number) => { @@ -85,17 +85,28 @@ export const PricingTableRowDesktop = (props: any) => { )} - {Object.values(feat.tiers).map((tier: any, i) => { + {Object.entries(feat.tiers).map((entry: any, i) => { + const tierName = entry[0] + const tierValue = entry[1] + return ( - - {typeof tier === 'boolean' && tier === true ? ( - - ) : typeof tier === 'boolean' && tier === false ? ( + + {typeof tierValue === 'boolean' && tierValue === true ? ( + + ) : typeof tierValue === 'boolean' && tierValue === false ? (
- +
) : ( - {tier} + + {tierValue} + )} ) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 75e03711b85..dd555d1683b 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -30,11 +30,14 @@ export default function IndexPage() { const tiers = [ { name: 'Free', - costUnit: '/month per project', + nameBadge: '', + costUnit: 'per month per project', href: 'https://app.supabase.com/new/new-project', + priceLabel: 'Starting from', priceMonthly: 0, warning: 'Limit of 2 free projects', description: 'Perfect for passion projects & simple websites.', + preface: 'Get started with...', features: [ 'Up to 500MB database & 1GB file storage', 'Up to 2GB bandwidth', @@ -51,9 +54,12 @@ export default function IndexPage() { }, { name: 'Pro', - costUnit: '/month per project', + nameBadge: '', + costUnit: 'per month per project', href: 'https://app.supabase.com/new/new-project', from: true, + priceLabel: 'Starting from', + warning: '+ any additional usage', priceMonthly: 25, description: 'For production applications with the option to scale.', features: [ @@ -74,6 +80,34 @@ export default function IndexPage() { additional: 'Need more? Turn off your spend cap to Pay As You Grow ', cta: 'Get Started', }, + { + name: 'Team', + nameBadge: 'New', + costUnit: 'per month per org', + href: 'https://app.supabase.com/new/new-project', + from: true, + priceLabel: 'Starting from', + priceMonthly: 25, + description: 'For scaling teams with permissions & access controls', + warning: '+ any additional usage', + features: [ + 'Usage-based pricing', + 'Organization member roles (ABAC)', + 'SOC2', + 'Priority email support & SLAs', + '14 day backups', + '100,000 monthly active users included', + 'Standardized Security Questionnaire', + 'SSO for Supabase Dashboard', + '1 XS compute instance', + '28 day log retention', + ], + scale: '', + shutdown: '', + preface: 'The following features will apply to all projects within the organization:', + additional: '', + cta: 'Get Started', + }, { name: 'Enterprise', href: 'https://forms.supabase.com/enterprise', @@ -163,7 +197,7 @@ export default function IndexPage() { -
+
{/*
*/}
-
+
{tiers.map((tier) => (
-
-
-

{tier.name}

- {tier.warning && ( -
- {tier.warning} + {tier.name === 'Pro' && ( +

Most Popular

+ )} +
+
+
+
+

+ {tier.name} +

+ {tier.nameBadge && ( + + {tier.nameBadge} + + )}
- )} -
-

{tier.description}

-
{tier.description}

+
- {tier.priceMonthly !== undefined ? ( -
-
-
- - {typeof tier.priceMonthly !== 'string' && '$'} - {tier.priceMonthly} - - - {tier.costUnit} - + > + {tier.priceMonthly !== undefined ? ( +
+
+
+

+ {tier.priceLabel} +

+

+ {typeof tier.priceMonthly !== 'string' && '$'} + {tier.priceMonthly} +

+ {tier.costUnit && ( +

{tier.costUnit}

+ )} + + {tier.warning && ( +
+ {tier.warning} +
+ )} +
- {tier.from && ( - - + any additional usage - - )} -
- ) : ( - Contact Us - )} + ) : ( + Contact Us + )} +
-
-
- {tier.preface &&

{tier.preface}

} - {/*

Included with plan:

*/} -
    - {tier.features.map((feature) => ( -
  • - {/*
    */} -
    */} -

    - {feature} -

    -
  • - ))} -
+ > + {tier.preface && ( +

{tier.preface}

+ )} + {/*

Included with plan:

*/} +
    + {tier.features.map((feature) => ( +
  • +
*/} + {feature} + + ))} + -
-
- {tier.additional && ( -

{tier.additional}

- )} - {tier.scale &&

{tier.scale}

} - {tier.shutdown &&

{tier.shutdown}

} +
+
+ {tier.additional && ( +

{tier.additional}

+ )} + {tier.scale &&

{tier.scale}

} + {tier.shutdown && ( +

{tier.shutdown}

+ )} +
+ + +
- - -
diff --git a/apps/www/styles/index.css b/apps/www/styles/index.css index 77922bd7095..32cf38b67af 100644 --- a/apps/www/styles/index.css +++ b/apps/www/styles/index.css @@ -659,3 +659,29 @@ launch week -webkit-mask-image: linear-gradient(rgba(0, 0, 0, 1), transparent); } + +/* Text with a gradient background */ +[class*='gradient-text-'] { + background-clip: text; + -webkit-text-fill-color: transparent; +} +@variants dark { + .gradient-text-brand-100 { + background-image: linear-gradient(45deg, var(--colors-brand8) 0%, var(--colors-brand9) 100%); + } + .gradient-text-brand-500 { + background-image: linear-gradient(45deg, var(--colors-brand8) 0%, var(--colors-brand9) 100%); + } + + .gradient-text-scale-100 { + background-image: -webkit-linear-gradient(45deg, #fff 0%, var(--colors-green4) 100%); + } + + .gradient-text-scale-500 { + background-image: -webkit-linear-gradient( + 45deg, + var(--colors-scale10) 0%, + var(--colors-scale12) 100% + ); + } +} From 0a20312d893939b8fcabf38ddb44cf2291e964dc Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 16 Jan 2023 16:48:28 -0330 Subject: [PATCH 02/39] Start on addon cards --- .../AuthWidget/AuthWidgetSection.tsx | 2 +- apps/www/components/DarkModeToggle.tsx | 2 +- apps/www/components/Footer/index.tsx | 2 +- apps/www/components/Globe.tsx | 2 +- apps/www/components/Nav/index.tsx | 2 +- apps/www/components/Providers/index.tsx | 44 --- ...icingAddOn.json => PricingAddOnTable.json} | 0 apps/www/data/PricingAddOns.json | 374 ++++++++++++++++++ apps/www/pages/404.tsx | 2 +- apps/www/pages/_app.tsx | 2 +- apps/www/pages/careers/index.tsx | 4 +- apps/www/pages/launch-week/index.tsx | 2 +- .../pages/launch-week/tickets/[username].tsx | 2 +- apps/www/pages/launch-week/tickets/index.tsx | 2 +- apps/www/pages/pricing/index.tsx | 106 ++++- .../pricing/addons-compute-hero-light.svg | 95 +++++ .../images/pricing/addons-compute-hero.svg | 95 +++++ .../images/pricing/compute-upgrade-light.svg | 9 + .../public/images/pricing/compute-upgrade.svg | 9 + .../pricing/custom-domain-upgrade-light.svg | 9 + .../images/pricing/custom-domain-upgrade.svg | 9 + .../images/pricing/support-upgrade-light.svg | 9 + .../public/images/pricing/support-upgrade.svg | 9 + apps/www/styles/index.css | 2 +- 24 files changed, 718 insertions(+), 76 deletions(-) delete mode 100644 apps/www/components/Providers/index.tsx rename apps/www/data/{PricingAddOn.json => PricingAddOnTable.json} (100%) create mode 100644 apps/www/data/PricingAddOns.json create mode 100644 apps/www/public/images/pricing/addons-compute-hero-light.svg create mode 100644 apps/www/public/images/pricing/addons-compute-hero.svg create mode 100644 apps/www/public/images/pricing/compute-upgrade-light.svg create mode 100644 apps/www/public/images/pricing/compute-upgrade.svg create mode 100644 apps/www/public/images/pricing/custom-domain-upgrade-light.svg create mode 100644 apps/www/public/images/pricing/custom-domain-upgrade.svg create mode 100644 apps/www/public/images/pricing/support-upgrade-light.svg create mode 100644 apps/www/public/images/pricing/support-upgrade.svg diff --git a/apps/www/components/AuthWidget/AuthWidgetSection.tsx b/apps/www/components/AuthWidget/AuthWidgetSection.tsx index 047ff5c4ac7..29f47168761 100644 --- a/apps/www/components/AuthWidget/AuthWidgetSection.tsx +++ b/apps/www/components/AuthWidget/AuthWidgetSection.tsx @@ -6,7 +6,7 @@ import { useRouter } from 'next/router' import { ColorSwatchIcon, MenuIcon } from '@heroicons/react/outline' import { Auth, ThemeSupa } from '@supabase/auth-ui-react' -import { useTheme } from '../Providers' +import { useTheme } from 'common/Providers' const supabase = createClient( 'https://rsnibhkhsbfnncjmwnkj.supabase.co', diff --git a/apps/www/components/DarkModeToggle.tsx b/apps/www/components/DarkModeToggle.tsx index c3a1b0f946f..789bdd7a5a4 100644 --- a/apps/www/components/DarkModeToggle.tsx +++ b/apps/www/components/DarkModeToggle.tsx @@ -1,4 +1,4 @@ -import { useTheme } from '~/components/Providers' +import { useTheme } from 'common/Providers' import { IconSun, IconMoon } from 'ui' function DarkModeToggle() { diff --git a/apps/www/components/Footer/index.tsx b/apps/www/components/Footer/index.tsx index e4fb2ee81f5..bcc49c7bcc9 100644 --- a/apps/www/components/Footer/index.tsx +++ b/apps/www/components/Footer/index.tsx @@ -2,7 +2,7 @@ import FooterLinks from 'data/Footer.json' import SectionContainer from '../Layouts/SectionContainer' import DarkModeToggle from '../DarkModeToggle' import Link from 'next/link' -import { useTheme } from '../Providers' +import { useTheme } from 'common/Providers' import { Badge } from 'ui' import Image from 'next/image' import * as supabaseLogoWordmarkDark from 'common/assets/images/supabase-logo-wordmark--dark.png' diff --git a/apps/www/components/Globe.tsx b/apps/www/components/Globe.tsx index 388c6a3d65d..49470073455 100644 --- a/apps/www/components/Globe.tsx +++ b/apps/www/components/Globe.tsx @@ -1,6 +1,6 @@ import createGlobe from 'cobe' import { useEffect, useRef } from 'react' -import { useTheme } from './Providers/index' +import { useTheme } from 'common/Providers' const Globe = () => { const { isDarkMode } = useTheme() diff --git a/apps/www/components/Nav/index.tsx b/apps/www/components/Nav/index.tsx index 93e7402a1ab..54a04a654aa 100644 --- a/apps/www/components/Nav/index.tsx +++ b/apps/www/components/Nav/index.tsx @@ -11,7 +11,7 @@ import Solutions from '~/components/Nav/Product' import Developers from '~/components/Nav/Developers' import Announcement from '~/components/Nav/Announcement' -import { useTheme } from '~/components/Providers' +import { useTheme } from 'common/Providers' import TextLink from '../TextLink' import Image from 'next/image' import * as supabaseLogoWordmarkDark from 'common/assets/images/supabase-logo-wordmark--dark.png' diff --git a/apps/www/components/Providers/index.tsx b/apps/www/components/Providers/index.tsx deleted file mode 100644 index ab023562c17..00000000000 --- a/apps/www/components/Providers/index.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { createContext, useContext, useEffect, useState } from 'react' - -interface UseThemeProps { - isDarkMode?: boolean - toggleTheme: () => void -} - -interface ThemeProviderProps { - children?: any -} - -export const ThemeContext = createContext({ - isDarkMode: true, - toggleTheme: () => {}, -}) - -export const useTheme = () => useContext(ThemeContext) - -export const ThemeProvider = ({ children }: ThemeProviderProps) => { - const [isDarkMode, setIsDarkMode] = useState(false) - - useEffect(() => { - const key = localStorage.getItem('supabaseDarkMode') - // Default to dark mode if no preference config - setIsDarkMode(!key || key === 'true') - }, []) - - const toggleTheme = () => { - setIsDarkMode(!isDarkMode) - } - - return ( - <> - - {children} - - - ) -} diff --git a/apps/www/data/PricingAddOn.json b/apps/www/data/PricingAddOnTable.json similarity index 100% rename from apps/www/data/PricingAddOn.json rename to apps/www/data/PricingAddOnTable.json diff --git a/apps/www/data/PricingAddOns.json b/apps/www/data/PricingAddOns.json new file mode 100644 index 00000000000..63b69e84725 --- /dev/null +++ b/apps/www/data/PricingAddOns.json @@ -0,0 +1,374 @@ +{ + "optimized_compute": { + "title": "Optimized Compute", + "features": [ + "For projects that need dedicated compute", + "For scaling number of connections", + "Additional CPU & RAM options", + "Additional Disk IO Bandwidth" + ], + "rows": [ + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Free (Included)" }, + { "key": "pricing", "title": "Pricing", "value": "$0" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM (shared)" }, + { "key": "memory", "title": "Memory", "value": "1 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "87 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "10" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "50" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Small" }, + { "key": "pricing", "title": "Pricing", "value": "$5" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM (shared)" }, + { "key": "memory", "title": "Memory", "value": "2 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "174 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "30" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "75" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Medium" }, + { "key": "pricing", "title": "Pricing", "value": "$50" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM (shared)" }, + { "key": "memory", "title": "Memory", "value": "4 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "347 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "50" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "150" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Large" }, + { "key": "pricing", "title": "Pricing", "value": "$100" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "8 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "630 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "100" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "300" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "XL" }, + { "key": "pricing", "title": "Pricing", "value": "$200" }, + { "key": "cpu", "title": "CPU", "value": "4-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "16 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "1,188 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "200" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "600" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "2XL" }, + { "key": "pricing", "title": "Pricing", "value": "$400" }, + { "key": "cpu", "title": "CPU", "value": "8-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "32 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "2,375 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "350" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "1200" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "4XL" }, + { "key": "pricing", "title": "Pricing", "value": "$950" }, + { "key": "cpu", "title": "CPU", "value": "16-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "64 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "4,750 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "420" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "2800" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "8XL" }, + { "key": "pricing", "title": "Pricing", "value": "$1,860" }, + { "key": "cpu", "title": "CPU", "value": "32-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "128 GB" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "9,500 Mbps" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "9,500 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "450" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "5600" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "12XL" }, + { "key": "pricing", "title": "Pricing", "value": "$2,790" }, + { "key": "cpu", "title": "CPU", "value": "48-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "192 GB" }, + { + "key": "maxDiskIO", + "title": "Maximum Disk IO Bandwidth", + "value": "14,250 Mbps" + }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "14,250 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "480" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "8600" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "16XL" }, + { "key": "pricing", "title": "Pricing", "value": "$3,720" }, + { "key": "cpu", "title": "CPU", "value": "64-core ARM (dedicated)" }, + { "key": "memory", "title": "Memory", "value": "256 GB" }, + { + "key": "maxDiskIO", + "title": "Maximum Disk IO Bandwidth", + "value": "19,000 Mbps" + }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "19,000 Mbps" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "500" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "11,600" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Custom (need more?)" }, + { "key": "pricing", "title": "Pricing", "value": "Contact Us" }, + { "key": "cpu", "title": "CPU", "value": "Contact Us" }, + { "key": "memory", "title": "Memory", "value": "Contact Us" }, + { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "Contact Us" }, + { + "key": "baseDiskIO", + "title": "Baseline Disk IO Bandwidth", + "value": "Contact Us" + }, + { + "key": "directConnections", + "title": "Connections: Direct (recommended)", + "value": "Contact Us" + }, + { + "key": "poolerConnections", + "title": "Connections: Pooler (recommended)", + "value": "Contact Us" + } + ] + } + ] + }, + "support": { + "title": "Support", + "features": [ + "Guaranteed Response Times", + "SLAs", + "Designated Support", + "Advanced Support Scope" + ], + "rows": [ + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Standard" }, + { "key": "pricing", "title": "Pricing", "value": "Contact Us" }, + { + "key": "severityLevelUrgent", + "title": "1. Severity Level: Urgent", + "value": "1 business hour (24/7x365)" + }, + { + "key": "severityLevelHigh", + "title": "2. Severity Level: High", + "value": "4 business hours (Monday - Friday)" + }, + { + "key": "severityLevelNormal", + "title": "3. Severity Level: Normal", + "value": "1 business day (Monday - Friday)" + }, + { + "key": "severityLevelLow", + "title": "4. Severity Level: Low", + "value": "2 business days (Monday - Friday)" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Priority" }, + { "key": "pricing", "title": "Pricing", "value": "Contact Us" }, + { + "key": "severityLevelUrgent", + "title": "1. Severity Level: Urgent", + "value": "1 business hour (24/7x365)" + }, + { + "key": "severityLevelHigh", + "title": "2. Severity Level: High", + "value": "2 business hours (Monday - Friday)" + }, + { + "key": "severityLevelNormal", + "title": "3. Severity Level: Normal", + "value": "1 business day (Monday - Friday)" + }, + { + "key": "severityLevelLow", + "title": "4. Severity Level: Low", + "value": "2 business days (Monday - Friday)" + } + ] + }, + { + "columns": [ + { "key": "plan", "title": "Plan", "value": "Priority Plus" }, + { "key": "pricing", "title": "Pricing", "value": "Contact Us" }, + { + "key": "severityLevelUrgent", + "title": "1. Severity Level: Urgent", + "value": "1 business hour (24/7x365)" + }, + { + "key": "severityLevelHigh", + "title": "2. Severity Level: High", + "value": "2 business hours (24/7x365)" + }, + { + "key": "severityLevelNormal", + "title": "3. Severity Level: Normal", + "value": "12 business hours (Monday - Friday)" + }, + { + "key": "severityLevelLow", + "title": "4. Severity Level: Low", + "value": "1 business days (Monday - Friday)" + } + ] + } + ] + } +} diff --git a/apps/www/pages/404.tsx b/apps/www/pages/404.tsx index f0d453140e4..f31fe7d4dd3 100644 --- a/apps/www/pages/404.tsx +++ b/apps/www/pages/404.tsx @@ -5,7 +5,7 @@ import { Button } from 'ui' import DefaultLayout from '../components/Layouts/Default' -import { useTheme } from '~/components/Providers' +import { useTheme } from 'common/Providers' import * as supabaseLogoWordmarkDark from 'common/assets/images/supabase-logo-wordmark--dark.png' import * as supabaseLogoWordmarkLight from 'common/assets/images/supabase-logo-wordmark--light.png' diff --git a/apps/www/pages/_app.tsx b/apps/www/pages/_app.tsx index afe6bd7a1a1..b4fb7a031ce 100644 --- a/apps/www/pages/_app.tsx +++ b/apps/www/pages/_app.tsx @@ -6,7 +6,7 @@ import { useEffect } from 'react' import Meta from '~/components/Favicons' import '../styles/index.css' import { post } from './../lib/fetchWrapper' -import { ThemeProvider } from '~/components/Providers' +import { ThemeProvider } from 'common/Providers' import Head from 'next/head' export default function MyApp({ Component, pageProps }: AppProps) { diff --git a/apps/www/pages/careers/index.tsx b/apps/www/pages/careers/index.tsx index d7d4ec2d29a..55ba72ca594 100644 --- a/apps/www/pages/careers/index.tsx +++ b/apps/www/pages/careers/index.tsx @@ -8,7 +8,7 @@ import { Badge, Button, IconCheck } from 'ui' import Globe from '~/components/Globe' import DefaultLayout from '~/components/Layouts/Default' import SectionContainer from '~/components/Layouts/SectionContainer' -import { useTheme } from '~/components/Providers' +import { useTheme } from 'common/Providers' import career from '~/data/career.json' import Styles from './career.module.css' @@ -321,7 +321,7 @@ const CareerPage: NextPage = ({ jobs, contributors }: any) => {
(
{tier.name === 'Pro' && ( @@ -286,8 +336,6 @@ export default function IndexPage() { flex-1 flex-col - space-y-4 - bg-white px-8 @@ -300,7 +348,7 @@ export default function IndexPage() { {/*

Included with plan:

*/}
    {tier.features.map((feature) => (
  • @@ -315,14 +363,14 @@ export default function IndexPage() { ))}
-
-
+
+
{tier.additional && ( -

{tier.additional}

+

{tier.additional}

)} - {tier.scale &&

{tier.scale}

} + {tier.scale &&

{tier.scale}

} {tier.shutdown && ( -

{tier.shutdown}

+

{tier.shutdown}

)}
@@ -341,13 +389,33 @@ export default function IndexPage() {
-
-

Add-Ons

-

- Level up your Supabase experience with add-ons. -

+
+
+

Easily customizable add-Ons

+

+ Level up your Supabase experience with add-ons. +

+
+
+ {addons.map((addon) => ( +
+ Compute +
+ {addon.icon} + {addon.name} + {addon.price} +
+
+ ))} +
+
+
} diff --git a/apps/www/public/images/pricing/addons-compute-hero-light.svg b/apps/www/public/images/pricing/addons-compute-hero-light.svg new file mode 100644 index 00000000000..37ec0b91dad --- /dev/null +++ b/apps/www/public/images/pricing/addons-compute-hero-light.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/addons-compute-hero.svg b/apps/www/public/images/pricing/addons-compute-hero.svg new file mode 100644 index 00000000000..500a0803480 --- /dev/null +++ b/apps/www/public/images/pricing/addons-compute-hero.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/compute-upgrade-light.svg b/apps/www/public/images/pricing/compute-upgrade-light.svg new file mode 100644 index 00000000000..8f23ffadd2f --- /dev/null +++ b/apps/www/public/images/pricing/compute-upgrade-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/compute-upgrade.svg b/apps/www/public/images/pricing/compute-upgrade.svg new file mode 100644 index 00000000000..c6241aa159e --- /dev/null +++ b/apps/www/public/images/pricing/compute-upgrade.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/custom-domain-upgrade-light.svg b/apps/www/public/images/pricing/custom-domain-upgrade-light.svg new file mode 100644 index 00000000000..6d08ae8eedd --- /dev/null +++ b/apps/www/public/images/pricing/custom-domain-upgrade-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/custom-domain-upgrade.svg b/apps/www/public/images/pricing/custom-domain-upgrade.svg new file mode 100644 index 00000000000..0d608d5d91d --- /dev/null +++ b/apps/www/public/images/pricing/custom-domain-upgrade.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/support-upgrade-light.svg b/apps/www/public/images/pricing/support-upgrade-light.svg new file mode 100644 index 00000000000..e2143d09436 --- /dev/null +++ b/apps/www/public/images/pricing/support-upgrade-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/support-upgrade.svg b/apps/www/public/images/pricing/support-upgrade.svg new file mode 100644 index 00000000000..d981270ce21 --- /dev/null +++ b/apps/www/public/images/pricing/support-upgrade.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/styles/index.css b/apps/www/styles/index.css index 32cf38b67af..585cc7cfb1e 100644 --- a/apps/www/styles/index.css +++ b/apps/www/styles/index.css @@ -665,7 +665,7 @@ launch week background-clip: text; -webkit-text-fill-color: transparent; } -@variants dark { +@layer utilities { .gradient-text-brand-100 { background-image: linear-gradient(45deg, var(--colors-brand8) 0%, var(--colors-brand9) 100%); } From e2607446a5f1c076dd4e8eb079eb02acf02da421 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 17 Jan 2023 09:40:13 -0330 Subject: [PATCH 03/39] Add brand icons --- apps/www/pages/pricing/index.tsx | 9 ++++----- apps/www/public/images/icons/brand/api-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/api-gray.svg | 7 +++++++ apps/www/public/images/icons/brand/api-green.svg | 7 +++++++ .../images/icons/brand/api-management-gray-negative.svg | 9 +++++++++ .../public/images/icons/brand/api-management-gray.svg | 3 +++ .../public/images/icons/brand/api-management-green.svg | 3 +++ .../www/public/images/icons/brand/auth-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/auth-gray.svg | 6 ++++++ apps/www/public/images/icons/brand/auth-green.svg | 6 ++++++ .../www/public/images/icons/brand/blog-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/blog-gray.svg | 4 ++++ apps/www/public/images/icons/brand/blog-green.svg | 4 ++++ apps/www/public/images/icons/brand/cli-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/cli-gray.svg | 5 +++++ apps/www/public/images/icons/brand/cli-green.svg | 3 +++ .../public/images/icons/brand/columns-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/columns-gray.svg | 5 +++++ apps/www/public/images/icons/brand/columns-green.svg | 5 +++++ .../images/icons/brand/custom-domains-gray-negative.svg | 9 +++++++++ .../public/images/icons/brand/custom-domains-gray.svg | 5 +++++ .../public/images/icons/brand/custom-domains-green.svg | 5 +++++ .../icons/brand/database-add-ons-gray-negative.svg | 9 +++++++++ .../public/images/icons/brand/database-add-ons-gray.svg | 9 +++++++++ .../public/images/icons/brand/database-add-ons-green.svg | 9 +++++++++ .../public/images/icons/brand/database-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/database-gray.svg | 5 +++++ apps/www/public/images/icons/brand/database-green.svg | 5 +++++ .../images/icons/brand/documentation-gray-negative.svg | 9 +++++++++ .../www/public/images/icons/brand/documentation-gray.svg | 7 +++++++ .../public/images/icons/brand/documentation-green.svg | 7 +++++++ .../images/icons/brand/edge-functions-gray-negative.svg | 9 +++++++++ .../public/images/icons/brand/edge-functions-gray.svg | 6 ++++++ .../public/images/icons/brand/edge-functions-green.svg | 6 ++++++ .../images/icons/brand/extensions-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/extensions-gray.svg | 7 +++++++ apps/www/public/images/icons/brand/extensions-green.svg | 7 +++++++ .../images/icons/brand/getting-started-gray-negative.svg | 9 +++++++++ .../public/images/icons/brand/getting-started-gray.svg | 3 +++ .../public/images/icons/brand/getting-started-green.svg | 3 +++ .../public/images/icons/brand/glossary-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/glossary-gray.svg | 5 +++++ apps/www/public/images/icons/brand/glossary-green.svg | 5 +++++ .../public/images/icons/brand/guides-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/guides-gray.svg | 5 +++++ apps/www/public/images/icons/brand/guides-green.svg | 5 +++++ .../www/public/images/icons/brand/home-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/home-gray.svg | 5 +++++ apps/www/public/images/icons/brand/home-green.svg | 5 +++++ .../www/public/images/icons/brand/logs-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/logs-gray.svg | 6 ++++++ apps/www/public/images/icons/brand/logs-green.svg | 6 ++++++ .../www/public/images/icons/brand/pitr-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/pitr-gray.svg | 7 +++++++ apps/www/public/images/icons/brand/pitr-green.svg | 7 +++++++ .../public/images/icons/brand/platform-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/platform-gray.svg | 5 +++++ apps/www/public/images/icons/brand/platform-green.svg | 5 +++++ .../public/images/icons/brand/profile-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/profile-gray.svg | 5 +++++ apps/www/public/images/icons/brand/profile-green.svg | 5 +++++ .../images/icons/brand/read-replicas-gray-negative.svg | 9 +++++++++ .../www/public/images/icons/brand/read-replicas-gray.svg | 6 ++++++ .../public/images/icons/brand/read-replicas-green.svg | 6 ++++++ .../public/images/icons/brand/realtime-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/realtime-gray.svg | 6 ++++++ apps/www/public/images/icons/brand/realtime-green.svg | 6 ++++++ .../public/images/icons/brand/reports-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/reports-gray.svg | 7 +++++++ apps/www/public/images/icons/brand/reports-green.svg | 7 +++++++ .../public/images/icons/brand/roles-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/roles-gray.svg | 8 ++++++++ apps/www/public/images/icons/brand/roles-green.svg | 9 +++++++++ .../www/public/images/icons/brand/rows-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/rows-gray.svg | 5 +++++ apps/www/public/images/icons/brand/rows-green.svg | 5 +++++ .../images/icons/brand/self-hosting-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/self-hosting-gray.svg | 9 +++++++++ .../www/public/images/icons/brand/self-hosting-green.svg | 9 +++++++++ .../public/images/icons/brand/settings-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/settings-gray.svg | 4 ++++ apps/www/public/images/icons/brand/settings-green.svg | 4 ++++ .../public/images/icons/brand/storage-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/storage-gray.svg | 5 +++++ apps/www/public/images/icons/brand/storage-green.svg | 5 +++++ .../images/icons/brand/support-add-ons-gray-negative.svg | 9 +++++++++ .../public/images/icons/brand/support-add-ons-gray.svg | 7 +++++++ .../public/images/icons/brand/support-add-ons-green.svg | 7 +++++++ .../public/images/icons/brand/support-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/support-gray.svg | 5 +++++ apps/www/public/images/icons/brand/support-green.svg | 5 +++++ .../images/icons/brand/table-editor-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/table-editor-gray.svg | 6 ++++++ .../www/public/images/icons/brand/table-editor-green.svg | 6 ++++++ .../public/images/icons/brand/tables-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/tables-gray.svg | 7 +++++++ apps/www/public/images/icons/brand/tables-green.svg | 7 +++++++ .../images/icons/brand/tutorials-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/tutorials-gray.svg | 4 ++++ apps/www/public/images/icons/brand/tutorials-green.svg | 4 ++++ .../public/images/icons/brand/wrappers-gray-negative.svg | 9 +++++++++ apps/www/public/images/icons/brand/wrappers-gray.svg | 7 +++++++ apps/www/public/images/icons/brand/wrappers-green.svg | 7 +++++++ 103 files changed, 701 insertions(+), 5 deletions(-) create mode 100644 apps/www/public/images/icons/brand/api-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/api-gray.svg create mode 100644 apps/www/public/images/icons/brand/api-green.svg create mode 100644 apps/www/public/images/icons/brand/api-management-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/api-management-gray.svg create mode 100644 apps/www/public/images/icons/brand/api-management-green.svg create mode 100644 apps/www/public/images/icons/brand/auth-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/auth-gray.svg create mode 100644 apps/www/public/images/icons/brand/auth-green.svg create mode 100644 apps/www/public/images/icons/brand/blog-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/blog-gray.svg create mode 100644 apps/www/public/images/icons/brand/blog-green.svg create mode 100644 apps/www/public/images/icons/brand/cli-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/cli-gray.svg create mode 100644 apps/www/public/images/icons/brand/cli-green.svg create mode 100644 apps/www/public/images/icons/brand/columns-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/columns-gray.svg create mode 100644 apps/www/public/images/icons/brand/columns-green.svg create mode 100644 apps/www/public/images/icons/brand/custom-domains-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/custom-domains-gray.svg create mode 100644 apps/www/public/images/icons/brand/custom-domains-green.svg create mode 100644 apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/database-add-ons-gray.svg create mode 100644 apps/www/public/images/icons/brand/database-add-ons-green.svg create mode 100644 apps/www/public/images/icons/brand/database-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/database-gray.svg create mode 100644 apps/www/public/images/icons/brand/database-green.svg create mode 100644 apps/www/public/images/icons/brand/documentation-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/documentation-gray.svg create mode 100644 apps/www/public/images/icons/brand/documentation-green.svg create mode 100644 apps/www/public/images/icons/brand/edge-functions-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/edge-functions-gray.svg create mode 100644 apps/www/public/images/icons/brand/edge-functions-green.svg create mode 100644 apps/www/public/images/icons/brand/extensions-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/extensions-gray.svg create mode 100644 apps/www/public/images/icons/brand/extensions-green.svg create mode 100644 apps/www/public/images/icons/brand/getting-started-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/getting-started-gray.svg create mode 100644 apps/www/public/images/icons/brand/getting-started-green.svg create mode 100644 apps/www/public/images/icons/brand/glossary-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/glossary-gray.svg create mode 100644 apps/www/public/images/icons/brand/glossary-green.svg create mode 100644 apps/www/public/images/icons/brand/guides-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/guides-gray.svg create mode 100644 apps/www/public/images/icons/brand/guides-green.svg create mode 100644 apps/www/public/images/icons/brand/home-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/home-gray.svg create mode 100644 apps/www/public/images/icons/brand/home-green.svg create mode 100644 apps/www/public/images/icons/brand/logs-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/logs-gray.svg create mode 100644 apps/www/public/images/icons/brand/logs-green.svg create mode 100644 apps/www/public/images/icons/brand/pitr-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/pitr-gray.svg create mode 100644 apps/www/public/images/icons/brand/pitr-green.svg create mode 100644 apps/www/public/images/icons/brand/platform-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/platform-gray.svg create mode 100644 apps/www/public/images/icons/brand/platform-green.svg create mode 100644 apps/www/public/images/icons/brand/profile-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/profile-gray.svg create mode 100644 apps/www/public/images/icons/brand/profile-green.svg create mode 100644 apps/www/public/images/icons/brand/read-replicas-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/read-replicas-gray.svg create mode 100644 apps/www/public/images/icons/brand/read-replicas-green.svg create mode 100644 apps/www/public/images/icons/brand/realtime-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/realtime-gray.svg create mode 100644 apps/www/public/images/icons/brand/realtime-green.svg create mode 100644 apps/www/public/images/icons/brand/reports-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/reports-gray.svg create mode 100644 apps/www/public/images/icons/brand/reports-green.svg create mode 100644 apps/www/public/images/icons/brand/roles-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/roles-gray.svg create mode 100644 apps/www/public/images/icons/brand/roles-green.svg create mode 100644 apps/www/public/images/icons/brand/rows-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/rows-gray.svg create mode 100644 apps/www/public/images/icons/brand/rows-green.svg create mode 100644 apps/www/public/images/icons/brand/self-hosting-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/self-hosting-gray.svg create mode 100644 apps/www/public/images/icons/brand/self-hosting-green.svg create mode 100644 apps/www/public/images/icons/brand/settings-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/settings-gray.svg create mode 100644 apps/www/public/images/icons/brand/settings-green.svg create mode 100644 apps/www/public/images/icons/brand/storage-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/storage-gray.svg create mode 100644 apps/www/public/images/icons/brand/storage-green.svg create mode 100644 apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/support-add-ons-gray.svg create mode 100644 apps/www/public/images/icons/brand/support-add-ons-green.svg create mode 100644 apps/www/public/images/icons/brand/support-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/support-gray.svg create mode 100644 apps/www/public/images/icons/brand/support-green.svg create mode 100644 apps/www/public/images/icons/brand/table-editor-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/table-editor-gray.svg create mode 100644 apps/www/public/images/icons/brand/table-editor-green.svg create mode 100644 apps/www/public/images/icons/brand/tables-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/tables-gray.svg create mode 100644 apps/www/public/images/icons/brand/tables-green.svg create mode 100644 apps/www/public/images/icons/brand/tutorials-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/tutorials-gray.svg create mode 100644 apps/www/public/images/icons/brand/tutorials-green.svg create mode 100644 apps/www/public/images/icons/brand/wrappers-gray-negative.svg create mode 100644 apps/www/public/images/icons/brand/wrappers-gray.svg create mode 100644 apps/www/public/images/icons/brand/wrappers-green.svg diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 8cc41575118..9fe40754704 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -19,7 +19,7 @@ export default function IndexPage() { const router = useRouter() const { basePath } = useRouter() const { isDarkMode } = useTheme() - console.log('isDarkMode', isDarkMode) + const meta_title = 'Pricing & fees | Supabase' const meta_description = 'Explore Supabase fees and pricing information. Find our competitive pricing tiers, with no hidden pricing. We have generous free tiers for those getting started, and Pay As You Go for those scaling up.' @@ -258,7 +258,7 @@ export default function IndexPage() { lg:px-8 " > -
+
{tiers.map((tier) => (
{addons.map((addon) => ( -
+
Compute -
- {addon.icon} +
{addon.name} {addon.price}
diff --git a/apps/www/public/images/icons/brand/api-gray-negative.svg b/apps/www/public/images/icons/brand/api-gray-negative.svg new file mode 100644 index 00000000000..1c8b36abab2 --- /dev/null +++ b/apps/www/public/images/icons/brand/api-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/api-gray.svg b/apps/www/public/images/icons/brand/api-gray.svg new file mode 100644 index 00000000000..af00abfa5c6 --- /dev/null +++ b/apps/www/public/images/icons/brand/api-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/api-green.svg b/apps/www/public/images/icons/brand/api-green.svg new file mode 100644 index 00000000000..14f6f33c4fe --- /dev/null +++ b/apps/www/public/images/icons/brand/api-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/api-management-gray-negative.svg b/apps/www/public/images/icons/brand/api-management-gray-negative.svg new file mode 100644 index 00000000000..9cfe9c931d8 --- /dev/null +++ b/apps/www/public/images/icons/brand/api-management-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/api-management-gray.svg b/apps/www/public/images/icons/brand/api-management-gray.svg new file mode 100644 index 00000000000..ad8169dc421 --- /dev/null +++ b/apps/www/public/images/icons/brand/api-management-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/www/public/images/icons/brand/api-management-green.svg b/apps/www/public/images/icons/brand/api-management-green.svg new file mode 100644 index 00000000000..2724bdb975d --- /dev/null +++ b/apps/www/public/images/icons/brand/api-management-green.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/www/public/images/icons/brand/auth-gray-negative.svg b/apps/www/public/images/icons/brand/auth-gray-negative.svg new file mode 100644 index 00000000000..611ec59b334 --- /dev/null +++ b/apps/www/public/images/icons/brand/auth-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/auth-gray.svg b/apps/www/public/images/icons/brand/auth-gray.svg new file mode 100644 index 00000000000..69a108e951d --- /dev/null +++ b/apps/www/public/images/icons/brand/auth-gray.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/auth-green.svg b/apps/www/public/images/icons/brand/auth-green.svg new file mode 100644 index 00000000000..0875ec0d581 --- /dev/null +++ b/apps/www/public/images/icons/brand/auth-green.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/blog-gray-negative.svg b/apps/www/public/images/icons/brand/blog-gray-negative.svg new file mode 100644 index 00000000000..77cd8aa368d --- /dev/null +++ b/apps/www/public/images/icons/brand/blog-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/blog-gray.svg b/apps/www/public/images/icons/brand/blog-gray.svg new file mode 100644 index 00000000000..d17a7a75f2f --- /dev/null +++ b/apps/www/public/images/icons/brand/blog-gray.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/images/icons/brand/blog-green.svg b/apps/www/public/images/icons/brand/blog-green.svg new file mode 100644 index 00000000000..ce9e01c1703 --- /dev/null +++ b/apps/www/public/images/icons/brand/blog-green.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/images/icons/brand/cli-gray-negative.svg b/apps/www/public/images/icons/brand/cli-gray-negative.svg new file mode 100644 index 00000000000..eaa2cee6601 --- /dev/null +++ b/apps/www/public/images/icons/brand/cli-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/cli-gray.svg b/apps/www/public/images/icons/brand/cli-gray.svg new file mode 100644 index 00000000000..e44838f4b7a --- /dev/null +++ b/apps/www/public/images/icons/brand/cli-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/cli-green.svg b/apps/www/public/images/icons/brand/cli-green.svg new file mode 100644 index 00000000000..ab3012bccd9 --- /dev/null +++ b/apps/www/public/images/icons/brand/cli-green.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/www/public/images/icons/brand/columns-gray-negative.svg b/apps/www/public/images/icons/brand/columns-gray-negative.svg new file mode 100644 index 00000000000..767fc7c44e9 --- /dev/null +++ b/apps/www/public/images/icons/brand/columns-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/columns-gray.svg b/apps/www/public/images/icons/brand/columns-gray.svg new file mode 100644 index 00000000000..bdf3c770bea --- /dev/null +++ b/apps/www/public/images/icons/brand/columns-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/columns-green.svg b/apps/www/public/images/icons/brand/columns-green.svg new file mode 100644 index 00000000000..e55340280d8 --- /dev/null +++ b/apps/www/public/images/icons/brand/columns-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/custom-domains-gray-negative.svg b/apps/www/public/images/icons/brand/custom-domains-gray-negative.svg new file mode 100644 index 00000000000..afc7ede37ff --- /dev/null +++ b/apps/www/public/images/icons/brand/custom-domains-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/custom-domains-gray.svg b/apps/www/public/images/icons/brand/custom-domains-gray.svg new file mode 100644 index 00000000000..405ab724659 --- /dev/null +++ b/apps/www/public/images/icons/brand/custom-domains-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/custom-domains-green.svg b/apps/www/public/images/icons/brand/custom-domains-green.svg new file mode 100644 index 00000000000..48f15398d17 --- /dev/null +++ b/apps/www/public/images/icons/brand/custom-domains-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg b/apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg new file mode 100644 index 00000000000..55685530c78 --- /dev/null +++ b/apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/database-add-ons-gray.svg b/apps/www/public/images/icons/brand/database-add-ons-gray.svg new file mode 100644 index 00000000000..1a434548729 --- /dev/null +++ b/apps/www/public/images/icons/brand/database-add-ons-gray.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/database-add-ons-green.svg b/apps/www/public/images/icons/brand/database-add-ons-green.svg new file mode 100644 index 00000000000..c893942cdc6 --- /dev/null +++ b/apps/www/public/images/icons/brand/database-add-ons-green.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/database-gray-negative.svg b/apps/www/public/images/icons/brand/database-gray-negative.svg new file mode 100644 index 00000000000..5e55c299c24 --- /dev/null +++ b/apps/www/public/images/icons/brand/database-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/database-gray.svg b/apps/www/public/images/icons/brand/database-gray.svg new file mode 100644 index 00000000000..56bc4ae60b2 --- /dev/null +++ b/apps/www/public/images/icons/brand/database-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/database-green.svg b/apps/www/public/images/icons/brand/database-green.svg new file mode 100644 index 00000000000..7919de28ca8 --- /dev/null +++ b/apps/www/public/images/icons/brand/database-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/documentation-gray-negative.svg b/apps/www/public/images/icons/brand/documentation-gray-negative.svg new file mode 100644 index 00000000000..9c9549935db --- /dev/null +++ b/apps/www/public/images/icons/brand/documentation-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/documentation-gray.svg b/apps/www/public/images/icons/brand/documentation-gray.svg new file mode 100644 index 00000000000..9e4b7b66c91 --- /dev/null +++ b/apps/www/public/images/icons/brand/documentation-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/documentation-green.svg b/apps/www/public/images/icons/brand/documentation-green.svg new file mode 100644 index 00000000000..877b89de115 --- /dev/null +++ b/apps/www/public/images/icons/brand/documentation-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/edge-functions-gray-negative.svg b/apps/www/public/images/icons/brand/edge-functions-gray-negative.svg new file mode 100644 index 00000000000..47168849c2b --- /dev/null +++ b/apps/www/public/images/icons/brand/edge-functions-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/edge-functions-gray.svg b/apps/www/public/images/icons/brand/edge-functions-gray.svg new file mode 100644 index 00000000000..65b62e8f89e --- /dev/null +++ b/apps/www/public/images/icons/brand/edge-functions-gray.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/edge-functions-green.svg b/apps/www/public/images/icons/brand/edge-functions-green.svg new file mode 100644 index 00000000000..cfe6bb89751 --- /dev/null +++ b/apps/www/public/images/icons/brand/edge-functions-green.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/extensions-gray-negative.svg b/apps/www/public/images/icons/brand/extensions-gray-negative.svg new file mode 100644 index 00000000000..6fdd405e034 --- /dev/null +++ b/apps/www/public/images/icons/brand/extensions-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/extensions-gray.svg b/apps/www/public/images/icons/brand/extensions-gray.svg new file mode 100644 index 00000000000..fcd4c774c8b --- /dev/null +++ b/apps/www/public/images/icons/brand/extensions-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/extensions-green.svg b/apps/www/public/images/icons/brand/extensions-green.svg new file mode 100644 index 00000000000..bea58a73a02 --- /dev/null +++ b/apps/www/public/images/icons/brand/extensions-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/getting-started-gray-negative.svg b/apps/www/public/images/icons/brand/getting-started-gray-negative.svg new file mode 100644 index 00000000000..66a75217931 --- /dev/null +++ b/apps/www/public/images/icons/brand/getting-started-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/getting-started-gray.svg b/apps/www/public/images/icons/brand/getting-started-gray.svg new file mode 100644 index 00000000000..b1ef015bec7 --- /dev/null +++ b/apps/www/public/images/icons/brand/getting-started-gray.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/www/public/images/icons/brand/getting-started-green.svg b/apps/www/public/images/icons/brand/getting-started-green.svg new file mode 100644 index 00000000000..f24b5d6f883 --- /dev/null +++ b/apps/www/public/images/icons/brand/getting-started-green.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/www/public/images/icons/brand/glossary-gray-negative.svg b/apps/www/public/images/icons/brand/glossary-gray-negative.svg new file mode 100644 index 00000000000..48846d72ed6 --- /dev/null +++ b/apps/www/public/images/icons/brand/glossary-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/glossary-gray.svg b/apps/www/public/images/icons/brand/glossary-gray.svg new file mode 100644 index 00000000000..9931120ffa6 --- /dev/null +++ b/apps/www/public/images/icons/brand/glossary-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/glossary-green.svg b/apps/www/public/images/icons/brand/glossary-green.svg new file mode 100644 index 00000000000..7ab0359e7b9 --- /dev/null +++ b/apps/www/public/images/icons/brand/glossary-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/guides-gray-negative.svg b/apps/www/public/images/icons/brand/guides-gray-negative.svg new file mode 100644 index 00000000000..619dfc473e5 --- /dev/null +++ b/apps/www/public/images/icons/brand/guides-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/guides-gray.svg b/apps/www/public/images/icons/brand/guides-gray.svg new file mode 100644 index 00000000000..375fe6d5d8b --- /dev/null +++ b/apps/www/public/images/icons/brand/guides-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/guides-green.svg b/apps/www/public/images/icons/brand/guides-green.svg new file mode 100644 index 00000000000..27863e00032 --- /dev/null +++ b/apps/www/public/images/icons/brand/guides-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/home-gray-negative.svg b/apps/www/public/images/icons/brand/home-gray-negative.svg new file mode 100644 index 00000000000..ae023b5375a --- /dev/null +++ b/apps/www/public/images/icons/brand/home-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/home-gray.svg b/apps/www/public/images/icons/brand/home-gray.svg new file mode 100644 index 00000000000..ebfa14f7f23 --- /dev/null +++ b/apps/www/public/images/icons/brand/home-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/home-green.svg b/apps/www/public/images/icons/brand/home-green.svg new file mode 100644 index 00000000000..0a228053177 --- /dev/null +++ b/apps/www/public/images/icons/brand/home-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/logs-gray-negative.svg b/apps/www/public/images/icons/brand/logs-gray-negative.svg new file mode 100644 index 00000000000..234a573c22a --- /dev/null +++ b/apps/www/public/images/icons/brand/logs-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/logs-gray.svg b/apps/www/public/images/icons/brand/logs-gray.svg new file mode 100644 index 00000000000..0e99fe1f216 --- /dev/null +++ b/apps/www/public/images/icons/brand/logs-gray.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/logs-green.svg b/apps/www/public/images/icons/brand/logs-green.svg new file mode 100644 index 00000000000..52da7533ce1 --- /dev/null +++ b/apps/www/public/images/icons/brand/logs-green.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/pitr-gray-negative.svg b/apps/www/public/images/icons/brand/pitr-gray-negative.svg new file mode 100644 index 00000000000..378964e9333 --- /dev/null +++ b/apps/www/public/images/icons/brand/pitr-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/pitr-gray.svg b/apps/www/public/images/icons/brand/pitr-gray.svg new file mode 100644 index 00000000000..c13962eae4f --- /dev/null +++ b/apps/www/public/images/icons/brand/pitr-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/pitr-green.svg b/apps/www/public/images/icons/brand/pitr-green.svg new file mode 100644 index 00000000000..f6269710023 --- /dev/null +++ b/apps/www/public/images/icons/brand/pitr-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/platform-gray-negative.svg b/apps/www/public/images/icons/brand/platform-gray-negative.svg new file mode 100644 index 00000000000..bdff9e59d70 --- /dev/null +++ b/apps/www/public/images/icons/brand/platform-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/platform-gray.svg b/apps/www/public/images/icons/brand/platform-gray.svg new file mode 100644 index 00000000000..83483f36f32 --- /dev/null +++ b/apps/www/public/images/icons/brand/platform-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/platform-green.svg b/apps/www/public/images/icons/brand/platform-green.svg new file mode 100644 index 00000000000..2c73d35f721 --- /dev/null +++ b/apps/www/public/images/icons/brand/platform-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/profile-gray-negative.svg b/apps/www/public/images/icons/brand/profile-gray-negative.svg new file mode 100644 index 00000000000..2e4fe6c99e7 --- /dev/null +++ b/apps/www/public/images/icons/brand/profile-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/profile-gray.svg b/apps/www/public/images/icons/brand/profile-gray.svg new file mode 100644 index 00000000000..344fa4c16f3 --- /dev/null +++ b/apps/www/public/images/icons/brand/profile-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/profile-green.svg b/apps/www/public/images/icons/brand/profile-green.svg new file mode 100644 index 00000000000..4064771b4f8 --- /dev/null +++ b/apps/www/public/images/icons/brand/profile-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/read-replicas-gray-negative.svg b/apps/www/public/images/icons/brand/read-replicas-gray-negative.svg new file mode 100644 index 00000000000..ba08dbd69e7 --- /dev/null +++ b/apps/www/public/images/icons/brand/read-replicas-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/read-replicas-gray.svg b/apps/www/public/images/icons/brand/read-replicas-gray.svg new file mode 100644 index 00000000000..abfb88d2213 --- /dev/null +++ b/apps/www/public/images/icons/brand/read-replicas-gray.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/read-replicas-green.svg b/apps/www/public/images/icons/brand/read-replicas-green.svg new file mode 100644 index 00000000000..c033c7189cf --- /dev/null +++ b/apps/www/public/images/icons/brand/read-replicas-green.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/realtime-gray-negative.svg b/apps/www/public/images/icons/brand/realtime-gray-negative.svg new file mode 100644 index 00000000000..e820eaae08f --- /dev/null +++ b/apps/www/public/images/icons/brand/realtime-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/realtime-gray.svg b/apps/www/public/images/icons/brand/realtime-gray.svg new file mode 100644 index 00000000000..a3bcf43ffdd --- /dev/null +++ b/apps/www/public/images/icons/brand/realtime-gray.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/realtime-green.svg b/apps/www/public/images/icons/brand/realtime-green.svg new file mode 100644 index 00000000000..1d5d535b40d --- /dev/null +++ b/apps/www/public/images/icons/brand/realtime-green.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/reports-gray-negative.svg b/apps/www/public/images/icons/brand/reports-gray-negative.svg new file mode 100644 index 00000000000..3cea4f0d444 --- /dev/null +++ b/apps/www/public/images/icons/brand/reports-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/reports-gray.svg b/apps/www/public/images/icons/brand/reports-gray.svg new file mode 100644 index 00000000000..4e988b96331 --- /dev/null +++ b/apps/www/public/images/icons/brand/reports-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/reports-green.svg b/apps/www/public/images/icons/brand/reports-green.svg new file mode 100644 index 00000000000..a04dc29b8e9 --- /dev/null +++ b/apps/www/public/images/icons/brand/reports-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/roles-gray-negative.svg b/apps/www/public/images/icons/brand/roles-gray-negative.svg new file mode 100644 index 00000000000..bd12069792c --- /dev/null +++ b/apps/www/public/images/icons/brand/roles-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/roles-gray.svg b/apps/www/public/images/icons/brand/roles-gray.svg new file mode 100644 index 00000000000..7764b8841bb --- /dev/null +++ b/apps/www/public/images/icons/brand/roles-gray.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/apps/www/public/images/icons/brand/roles-green.svg b/apps/www/public/images/icons/brand/roles-green.svg new file mode 100644 index 00000000000..6ab8c3b3c05 --- /dev/null +++ b/apps/www/public/images/icons/brand/roles-green.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/rows-gray-negative.svg b/apps/www/public/images/icons/brand/rows-gray-negative.svg new file mode 100644 index 00000000000..f0640712741 --- /dev/null +++ b/apps/www/public/images/icons/brand/rows-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/rows-gray.svg b/apps/www/public/images/icons/brand/rows-gray.svg new file mode 100644 index 00000000000..f5320ce67bb --- /dev/null +++ b/apps/www/public/images/icons/brand/rows-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/rows-green.svg b/apps/www/public/images/icons/brand/rows-green.svg new file mode 100644 index 00000000000..02b29c41d64 --- /dev/null +++ b/apps/www/public/images/icons/brand/rows-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/self-hosting-gray-negative.svg b/apps/www/public/images/icons/brand/self-hosting-gray-negative.svg new file mode 100644 index 00000000000..ea74756adce --- /dev/null +++ b/apps/www/public/images/icons/brand/self-hosting-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/self-hosting-gray.svg b/apps/www/public/images/icons/brand/self-hosting-gray.svg new file mode 100644 index 00000000000..7a5e667ced1 --- /dev/null +++ b/apps/www/public/images/icons/brand/self-hosting-gray.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/self-hosting-green.svg b/apps/www/public/images/icons/brand/self-hosting-green.svg new file mode 100644 index 00000000000..9cc2c2ddfb8 --- /dev/null +++ b/apps/www/public/images/icons/brand/self-hosting-green.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/settings-gray-negative.svg b/apps/www/public/images/icons/brand/settings-gray-negative.svg new file mode 100644 index 00000000000..2b64a926831 --- /dev/null +++ b/apps/www/public/images/icons/brand/settings-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/settings-gray.svg b/apps/www/public/images/icons/brand/settings-gray.svg new file mode 100644 index 00000000000..2b62223d7bc --- /dev/null +++ b/apps/www/public/images/icons/brand/settings-gray.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/images/icons/brand/settings-green.svg b/apps/www/public/images/icons/brand/settings-green.svg new file mode 100644 index 00000000000..2d149540e53 --- /dev/null +++ b/apps/www/public/images/icons/brand/settings-green.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/images/icons/brand/storage-gray-negative.svg b/apps/www/public/images/icons/brand/storage-gray-negative.svg new file mode 100644 index 00000000000..837bee9ee6d --- /dev/null +++ b/apps/www/public/images/icons/brand/storage-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/storage-gray.svg b/apps/www/public/images/icons/brand/storage-gray.svg new file mode 100644 index 00000000000..bef6045c255 --- /dev/null +++ b/apps/www/public/images/icons/brand/storage-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/storage-green.svg b/apps/www/public/images/icons/brand/storage-green.svg new file mode 100644 index 00000000000..55b6ca6367f --- /dev/null +++ b/apps/www/public/images/icons/brand/storage-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg b/apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg new file mode 100644 index 00000000000..4eaf7940385 --- /dev/null +++ b/apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/support-add-ons-gray.svg b/apps/www/public/images/icons/brand/support-add-ons-gray.svg new file mode 100644 index 00000000000..bd8647de63d --- /dev/null +++ b/apps/www/public/images/icons/brand/support-add-ons-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/support-add-ons-green.svg b/apps/www/public/images/icons/brand/support-add-ons-green.svg new file mode 100644 index 00000000000..6ff5e144638 --- /dev/null +++ b/apps/www/public/images/icons/brand/support-add-ons-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/support-gray-negative.svg b/apps/www/public/images/icons/brand/support-gray-negative.svg new file mode 100644 index 00000000000..c2f5ca07036 --- /dev/null +++ b/apps/www/public/images/icons/brand/support-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/support-gray.svg b/apps/www/public/images/icons/brand/support-gray.svg new file mode 100644 index 00000000000..7f0cddd1c45 --- /dev/null +++ b/apps/www/public/images/icons/brand/support-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/support-green.svg b/apps/www/public/images/icons/brand/support-green.svg new file mode 100644 index 00000000000..0e3034f495a --- /dev/null +++ b/apps/www/public/images/icons/brand/support-green.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/www/public/images/icons/brand/table-editor-gray-negative.svg b/apps/www/public/images/icons/brand/table-editor-gray-negative.svg new file mode 100644 index 00000000000..53d8b392821 --- /dev/null +++ b/apps/www/public/images/icons/brand/table-editor-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/table-editor-gray.svg b/apps/www/public/images/icons/brand/table-editor-gray.svg new file mode 100644 index 00000000000..7c79f5d9512 --- /dev/null +++ b/apps/www/public/images/icons/brand/table-editor-gray.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/table-editor-green.svg b/apps/www/public/images/icons/brand/table-editor-green.svg new file mode 100644 index 00000000000..a100b64c80f --- /dev/null +++ b/apps/www/public/images/icons/brand/table-editor-green.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/apps/www/public/images/icons/brand/tables-gray-negative.svg b/apps/www/public/images/icons/brand/tables-gray-negative.svg new file mode 100644 index 00000000000..0156ae2f417 --- /dev/null +++ b/apps/www/public/images/icons/brand/tables-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/tables-gray.svg b/apps/www/public/images/icons/brand/tables-gray.svg new file mode 100644 index 00000000000..3f7f4a54554 --- /dev/null +++ b/apps/www/public/images/icons/brand/tables-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/tables-green.svg b/apps/www/public/images/icons/brand/tables-green.svg new file mode 100644 index 00000000000..509103462b1 --- /dev/null +++ b/apps/www/public/images/icons/brand/tables-green.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/tutorials-gray-negative.svg b/apps/www/public/images/icons/brand/tutorials-gray-negative.svg new file mode 100644 index 00000000000..08a86d1254d --- /dev/null +++ b/apps/www/public/images/icons/brand/tutorials-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/tutorials-gray.svg b/apps/www/public/images/icons/brand/tutorials-gray.svg new file mode 100644 index 00000000000..df4b35c7489 --- /dev/null +++ b/apps/www/public/images/icons/brand/tutorials-gray.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/images/icons/brand/tutorials-green.svg b/apps/www/public/images/icons/brand/tutorials-green.svg new file mode 100644 index 00000000000..a4787fd42a3 --- /dev/null +++ b/apps/www/public/images/icons/brand/tutorials-green.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/images/icons/brand/wrappers-gray-negative.svg b/apps/www/public/images/icons/brand/wrappers-gray-negative.svg new file mode 100644 index 00000000000..b9825cc8b84 --- /dev/null +++ b/apps/www/public/images/icons/brand/wrappers-gray-negative.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/icons/brand/wrappers-gray.svg b/apps/www/public/images/icons/brand/wrappers-gray.svg new file mode 100644 index 00000000000..6b504f78bf5 --- /dev/null +++ b/apps/www/public/images/icons/brand/wrappers-gray.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/apps/www/public/images/icons/brand/wrappers-green.svg b/apps/www/public/images/icons/brand/wrappers-green.svg new file mode 100644 index 00000000000..970028b1b07 --- /dev/null +++ b/apps/www/public/images/icons/brand/wrappers-green.svg @@ -0,0 +1,7 @@ + + + + + + + From 5b634770efd5530fde0c7e838f113c8ea3a28145 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Wed, 18 Jan 2023 08:19:37 -0330 Subject: [PATCH 04/39] Update --- .../Pricing/ComputePricingModal.tsx | 113 ++++++++ .../{ => Pricing}/PricingAddOnTable.tsx | 0 .../{ => Pricing}/PricingTableRow.tsx | 123 ++++---- apps/www/components/ProductIcon.tsx | 11 +- apps/www/data/Pricing.json | 48 ++++ apps/www/data/PricingAddOnTable.json | 62 ++-- apps/www/pages/pricing/index.tsx | 267 ++++++++++-------- .../images/icons/brand/api-gray-negative.svg | 9 - .../public/images/icons/brand/api-gray.svg | 7 - .../public/images/icons/brand/api-green.svg | 7 - .../brand/api-management-gray-negative.svg | 9 - .../icons/brand/api-management-gray.svg | 3 - .../icons/brand/api-management-green.svg | 3 - .../images/icons/brand/auth-gray-negative.svg | 9 - .../public/images/icons/brand/auth-gray.svg | 6 - .../public/images/icons/brand/auth-green.svg | 6 - .../images/icons/brand/blog-gray-negative.svg | 9 - .../public/images/icons/brand/blog-gray.svg | 4 - .../public/images/icons/brand/blog-green.svg | 4 - .../images/icons/brand/cli-gray-negative.svg | 9 - .../public/images/icons/brand/cli-gray.svg | 5 - .../public/images/icons/brand/cli-green.svg | 3 - .../icons/brand/columns-gray-negative.svg | 9 - .../images/icons/brand/columns-gray.svg | 5 - .../images/icons/brand/columns-green.svg | 5 - .../brand/custom-domains-gray-negative.svg | 9 - .../icons/brand/custom-domains-gray.svg | 5 - .../icons/brand/custom-domains-green.svg | 5 - .../brand/database-add-ons-gray-negative.svg | 9 - .../icons/brand/database-add-ons-gray.svg | 9 - .../icons/brand/database-add-ons-green.svg | 9 - .../icons/brand/database-gray-negative.svg | 9 - .../images/icons/brand/database-gray.svg | 5 - .../images/icons/brand/database-green.svg | 5 - .../brand/documentation-gray-negative.svg | 9 - .../images/icons/brand/documentation-gray.svg | 7 - .../icons/brand/documentation-green.svg | 7 - .../brand/edge-functions-gray-negative.svg | 9 - .../icons/brand/edge-functions-gray.svg | 6 - .../icons/brand/edge-functions-green.svg | 6 - .../icons/brand/extensions-gray-negative.svg | 9 - .../images/icons/brand/extensions-gray.svg | 7 - .../images/icons/brand/extensions-green.svg | 7 - .../brand/getting-started-gray-negative.svg | 9 - .../icons/brand/getting-started-gray.svg | 3 - .../icons/brand/getting-started-green.svg | 3 - .../icons/brand/glossary-gray-negative.svg | 9 - .../images/icons/brand/glossary-gray.svg | 5 - .../images/icons/brand/glossary-green.svg | 5 - .../icons/brand/guides-gray-negative.svg | 9 - .../public/images/icons/brand/guides-gray.svg | 5 - .../images/icons/brand/guides-green.svg | 5 - .../images/icons/brand/home-gray-negative.svg | 9 - .../public/images/icons/brand/home-gray.svg | 5 - .../public/images/icons/brand/home-green.svg | 5 - .../images/icons/brand/logs-gray-negative.svg | 9 - .../public/images/icons/brand/logs-gray.svg | 6 - .../public/images/icons/brand/logs-green.svg | 6 - .../images/icons/brand/pitr-gray-negative.svg | 9 - .../public/images/icons/brand/pitr-gray.svg | 7 - .../public/images/icons/brand/pitr-green.svg | 7 - .../icons/brand/platform-gray-negative.svg | 9 - .../images/icons/brand/platform-gray.svg | 5 - .../images/icons/brand/platform-green.svg | 5 - .../icons/brand/profile-gray-negative.svg | 9 - .../images/icons/brand/profile-gray.svg | 5 - .../images/icons/brand/profile-green.svg | 5 - .../brand/read-replicas-gray-negative.svg | 9 - .../images/icons/brand/read-replicas-gray.svg | 6 - .../icons/brand/read-replicas-green.svg | 6 - .../icons/brand/realtime-gray-negative.svg | 9 - .../images/icons/brand/realtime-gray.svg | 6 - .../images/icons/brand/realtime-green.svg | 6 - .../icons/brand/reports-gray-negative.svg | 9 - .../images/icons/brand/reports-gray.svg | 7 - .../images/icons/brand/reports-green.svg | 7 - .../icons/brand/roles-gray-negative.svg | 9 - .../public/images/icons/brand/roles-gray.svg | 8 - .../public/images/icons/brand/roles-green.svg | 9 - .../images/icons/brand/rows-gray-negative.svg | 9 - .../public/images/icons/brand/rows-gray.svg | 5 - .../public/images/icons/brand/rows-green.svg | 5 - .../brand/self-hosting-gray-negative.svg | 9 - .../images/icons/brand/self-hosting-gray.svg | 9 - .../images/icons/brand/self-hosting-green.svg | 9 - .../icons/brand/settings-gray-negative.svg | 9 - .../images/icons/brand/settings-gray.svg | 4 - .../images/icons/brand/settings-green.svg | 4 - .../icons/brand/storage-gray-negative.svg | 9 - .../images/icons/brand/storage-gray.svg | 5 - .../images/icons/brand/storage-green.svg | 5 - .../brand/support-add-ons-gray-negative.svg | 9 - .../icons/brand/support-add-ons-gray.svg | 7 - .../icons/brand/support-add-ons-green.svg | 7 - .../icons/brand/support-gray-negative.svg | 9 - .../images/icons/brand/support-gray.svg | 5 - .../images/icons/brand/support-green.svg | 5 - .../brand/table-editor-gray-negative.svg | 9 - .../images/icons/brand/table-editor-gray.svg | 6 - .../images/icons/brand/table-editor-green.svg | 6 - .../icons/brand/tables-gray-negative.svg | 9 - .../public/images/icons/brand/tables-gray.svg | 7 - .../images/icons/brand/tables-green.svg | 7 - .../icons/brand/tutorials-gray-negative.svg | 9 - .../images/icons/brand/tutorials-gray.svg | 4 - .../images/icons/brand/tutorials-green.svg | 4 - .../icons/brand/wrappers-gray-negative.svg | 9 - .../images/icons/brand/wrappers-gray.svg | 7 - .../images/icons/brand/wrappers-green.svg | 7 - .../addons-custom-domain-hero-light.svg | 158 +++++++++++ .../pricing/addons-custom-domain-hero.svg | 159 +++++++++++ .../images/pricing/addons-pitr-light.svg | 188 ++++++++++++ .../www/public/images/pricing/addons-pitr.svg | 188 ++++++++++++ .../images/pricing/addons-support-light.svg | 136 +++++++++ .../public/images/pricing/addons-support.svg | 136 +++++++++ .../images/pricing/pitr-upgrade-light.svg | 9 + .../public/images/pricing/pitr-upgrade.svg | 7 + 117 files changed, 1396 insertions(+), 906 deletions(-) create mode 100644 apps/www/components/Pricing/ComputePricingModal.tsx rename apps/www/components/{ => Pricing}/PricingAddOnTable.tsx (100%) rename apps/www/components/{ => Pricing}/PricingTableRow.tsx (50%) delete mode 100644 apps/www/public/images/icons/brand/api-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/api-gray.svg delete mode 100644 apps/www/public/images/icons/brand/api-green.svg delete mode 100644 apps/www/public/images/icons/brand/api-management-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/api-management-gray.svg delete mode 100644 apps/www/public/images/icons/brand/api-management-green.svg delete mode 100644 apps/www/public/images/icons/brand/auth-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/auth-gray.svg delete mode 100644 apps/www/public/images/icons/brand/auth-green.svg delete mode 100644 apps/www/public/images/icons/brand/blog-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/blog-gray.svg delete mode 100644 apps/www/public/images/icons/brand/blog-green.svg delete mode 100644 apps/www/public/images/icons/brand/cli-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/cli-gray.svg delete mode 100644 apps/www/public/images/icons/brand/cli-green.svg delete mode 100644 apps/www/public/images/icons/brand/columns-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/columns-gray.svg delete mode 100644 apps/www/public/images/icons/brand/columns-green.svg delete mode 100644 apps/www/public/images/icons/brand/custom-domains-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/custom-domains-gray.svg delete mode 100644 apps/www/public/images/icons/brand/custom-domains-green.svg delete mode 100644 apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/database-add-ons-gray.svg delete mode 100644 apps/www/public/images/icons/brand/database-add-ons-green.svg delete mode 100644 apps/www/public/images/icons/brand/database-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/database-gray.svg delete mode 100644 apps/www/public/images/icons/brand/database-green.svg delete mode 100644 apps/www/public/images/icons/brand/documentation-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/documentation-gray.svg delete mode 100644 apps/www/public/images/icons/brand/documentation-green.svg delete mode 100644 apps/www/public/images/icons/brand/edge-functions-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/edge-functions-gray.svg delete mode 100644 apps/www/public/images/icons/brand/edge-functions-green.svg delete mode 100644 apps/www/public/images/icons/brand/extensions-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/extensions-gray.svg delete mode 100644 apps/www/public/images/icons/brand/extensions-green.svg delete mode 100644 apps/www/public/images/icons/brand/getting-started-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/getting-started-gray.svg delete mode 100644 apps/www/public/images/icons/brand/getting-started-green.svg delete mode 100644 apps/www/public/images/icons/brand/glossary-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/glossary-gray.svg delete mode 100644 apps/www/public/images/icons/brand/glossary-green.svg delete mode 100644 apps/www/public/images/icons/brand/guides-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/guides-gray.svg delete mode 100644 apps/www/public/images/icons/brand/guides-green.svg delete mode 100644 apps/www/public/images/icons/brand/home-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/home-gray.svg delete mode 100644 apps/www/public/images/icons/brand/home-green.svg delete mode 100644 apps/www/public/images/icons/brand/logs-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/logs-gray.svg delete mode 100644 apps/www/public/images/icons/brand/logs-green.svg delete mode 100644 apps/www/public/images/icons/brand/pitr-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/pitr-gray.svg delete mode 100644 apps/www/public/images/icons/brand/pitr-green.svg delete mode 100644 apps/www/public/images/icons/brand/platform-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/platform-gray.svg delete mode 100644 apps/www/public/images/icons/brand/platform-green.svg delete mode 100644 apps/www/public/images/icons/brand/profile-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/profile-gray.svg delete mode 100644 apps/www/public/images/icons/brand/profile-green.svg delete mode 100644 apps/www/public/images/icons/brand/read-replicas-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/read-replicas-gray.svg delete mode 100644 apps/www/public/images/icons/brand/read-replicas-green.svg delete mode 100644 apps/www/public/images/icons/brand/realtime-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/realtime-gray.svg delete mode 100644 apps/www/public/images/icons/brand/realtime-green.svg delete mode 100644 apps/www/public/images/icons/brand/reports-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/reports-gray.svg delete mode 100644 apps/www/public/images/icons/brand/reports-green.svg delete mode 100644 apps/www/public/images/icons/brand/roles-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/roles-gray.svg delete mode 100644 apps/www/public/images/icons/brand/roles-green.svg delete mode 100644 apps/www/public/images/icons/brand/rows-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/rows-gray.svg delete mode 100644 apps/www/public/images/icons/brand/rows-green.svg delete mode 100644 apps/www/public/images/icons/brand/self-hosting-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/self-hosting-gray.svg delete mode 100644 apps/www/public/images/icons/brand/self-hosting-green.svg delete mode 100644 apps/www/public/images/icons/brand/settings-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/settings-gray.svg delete mode 100644 apps/www/public/images/icons/brand/settings-green.svg delete mode 100644 apps/www/public/images/icons/brand/storage-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/storage-gray.svg delete mode 100644 apps/www/public/images/icons/brand/storage-green.svg delete mode 100644 apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/support-add-ons-gray.svg delete mode 100644 apps/www/public/images/icons/brand/support-add-ons-green.svg delete mode 100644 apps/www/public/images/icons/brand/support-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/support-gray.svg delete mode 100644 apps/www/public/images/icons/brand/support-green.svg delete mode 100644 apps/www/public/images/icons/brand/table-editor-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/table-editor-gray.svg delete mode 100644 apps/www/public/images/icons/brand/table-editor-green.svg delete mode 100644 apps/www/public/images/icons/brand/tables-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/tables-gray.svg delete mode 100644 apps/www/public/images/icons/brand/tables-green.svg delete mode 100644 apps/www/public/images/icons/brand/tutorials-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/tutorials-gray.svg delete mode 100644 apps/www/public/images/icons/brand/tutorials-green.svg delete mode 100644 apps/www/public/images/icons/brand/wrappers-gray-negative.svg delete mode 100644 apps/www/public/images/icons/brand/wrappers-gray.svg delete mode 100644 apps/www/public/images/icons/brand/wrappers-green.svg create mode 100644 apps/www/public/images/pricing/addons-custom-domain-hero-light.svg create mode 100644 apps/www/public/images/pricing/addons-custom-domain-hero.svg create mode 100644 apps/www/public/images/pricing/addons-pitr-light.svg create mode 100644 apps/www/public/images/pricing/addons-pitr.svg create mode 100644 apps/www/public/images/pricing/addons-support-light.svg create mode 100644 apps/www/public/images/pricing/addons-support.svg create mode 100644 apps/www/public/images/pricing/pitr-upgrade-light.svg create mode 100644 apps/www/public/images/pricing/pitr-upgrade.svg diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx new file mode 100644 index 00000000000..b56881abb0c --- /dev/null +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -0,0 +1,113 @@ +import React, { Fragment, useMemo } from 'react' + +import { IconCheckCircle, IconXCircle, Modal } from 'ui' +import pricingAddOn from '~/data/PricingAddOnTable.json' + +interface Props { + showComputeModal: boolean + setShowComputeModal: React.Dispatch> +} + +export default function ComputePricingModal({ showComputeModal, setShowComputeModal }: Props) { + const columnNames = useMemo( + () => + pricingAddOn.database.rows.map((row) => + row.columns.map((column) => ({ key: column.key, title: column.title })) + )[0], + [] + ) + + return ( + setVideoVisible(false)} + hideFooter + header={ +
+ Compute pricing + setShowComputeModal(false)} + /> +
+ } + > +
+
+
+

Choose best compute setup for you

+

+ Every project on the Supabase Platform comes with its own dedicated Postgres instance + running inside a virtual machine (VM). The following table describes the base instance + with additional compute add-ons available if you need extra performance when scaling + up Supabase. +

+
+
+ + + + {columnNames.map((column) => ( + + ))} + + + + {pricingAddOn.database.rows.map((row, i) => ( + <> + {i === 0 && ( + + + + )} + + {row.columns.map((column) => ( + + ))} + + + ))} + +
+ {column.title} +
+ Included in Free and Pro tiers +
+ {column.key === 'dedicated' ? ( + + ) : ( + column.value + )} +
+
+ + + + {pricingAddOn.database.rows.map((row, i) => ( + + {row.columns.map((column) => ( + + + + + ))} + + ))} + +
{column.title}{column.value}
+
+
+
+ ) +} diff --git a/apps/www/components/PricingAddOnTable.tsx b/apps/www/components/Pricing/PricingAddOnTable.tsx similarity index 100% rename from apps/www/components/PricingAddOnTable.tsx rename to apps/www/components/Pricing/PricingAddOnTable.tsx diff --git a/apps/www/components/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx similarity index 50% rename from apps/www/components/PricingTableRow.tsx rename to apps/www/components/Pricing/PricingTableRow.tsx index e9a29a72236..f546208082e 100644 --- a/apps/www/components/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -1,11 +1,11 @@ -import { IconHelpCircle } from 'ui' +import { IconHelpCircle, IconInfo, IconX, IconXCircle, Modal } from 'ui' import ProductIcon from 'components/ProductIcon' import React, { useState } from 'react' import ReactTooltip from 'react-tooltip' export const Check = () => ( ( ) const IncludedCheck = (props: any) => ( - <> + Included in {props.tier} - + ) const Minus = (props: any) => ( <> { return ( <>
-
- {props.icon && } -

{category.title}

+
+ {props.icon && } +

{category.title}

- - - + + + + {category.features.map((feat: any, i: number) => { return ( - - - {feat.title} - {feat.tooltip && ( - - - - )} - + <> + + + {feat.title} + {feat.tooltip && !feat.tooltipPosition && ( + + + + )} + - {Object.entries(feat.tiers).map((entry: any, i) => { - const tierName = entry[0] - const tierValue = entry[1] + {Object.entries(feat.tiers).map((entry: any, i) => { + const tierName = entry[0] + const tierValue = entry[1] - return ( - - {typeof tierValue === 'boolean' && tierValue === true ? ( - - ) : typeof tierValue === 'boolean' && tierValue === false ? ( -
- -
- ) : ( - - {tierValue} - - )} - - ) - })} - + return ( + + {typeof tierValue === 'boolean' && tierValue === true ? ( + + ) : typeof tierValue === 'boolean' && tierValue === false ? ( +
+ +
+ ) : ( + + {feat.tooltip && feat.tooltipPosition === tierName && ( + + + + )} + + {tierValue} + + )} + + ) + })} + + {i === category.features.length - 1 && ( +
+ )} + ) })} diff --git a/apps/www/components/ProductIcon.tsx b/apps/www/components/ProductIcon.tsx index d7a24709787..fa2240071a4 100644 --- a/apps/www/components/ProductIcon.tsx +++ b/apps/www/components/ProductIcon.tsx @@ -1,10 +1,17 @@ interface ProductIcon { icon: string + color?: 'black' | 'green' } -function ProductIcon({ icon }: ProductIcon) { +function ProductIcon({ icon, color }: ProductIcon) { return ( -
+
1TB, contact enterprise)", + "team": "text", "enterprise": "Custom" } }, @@ -42,6 +47,7 @@ "tiers": { "free": false, "pro": false, + "team": "text", "enterprise": true } }, @@ -51,6 +57,7 @@ "tiers": { "free": "Paused after 1 week inactivity", "pro": "Never", + "team": "text", "enterprise": "Never" } }, @@ -60,6 +67,7 @@ "tiers": { "free": "Up to 2GB", "pro": "50GB included per month, then $0.09 per GB", + "team": "text", "enterprise": "Unlimited" } } @@ -75,6 +83,7 @@ "tiers": { "free": "Unlimited", "pro": "Unlimited", + "team": "text", "enterprise": "Unlimited" } }, @@ -84,6 +93,7 @@ "tiers": { "free": "Up to 50,000 MAUs", "pro": "100,000 included, then $0.00325 per MAU", + "team": "text", "enterprise": "Unlimited" } }, @@ -92,6 +102,7 @@ "tiers": { "free": true, "pro": true, + "team": true, "enterprise": true } }, @@ -100,6 +111,7 @@ "tiers": { "free": true, "pro": true, + "team": true, "enterprise": true } }, @@ -108,6 +120,7 @@ "tiers": { "free": false, "pro": true, + "team": true, "enterprise": true } }, @@ -116,6 +129,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } }, @@ -124,6 +138,7 @@ "tiers": { "free": "1 hour", "pro": "7 days", + "team": "text", "enterprise": true } }, @@ -132,6 +147,7 @@ "tiers": { "free": true, "pro": true, + "team": true, "enterprise": true } }, @@ -141,6 +157,7 @@ "tiers": { "free": "30 / hour", "pro": "100 / hour", + "team": "text", "enterprise": "Contact Us" } }, @@ -149,6 +166,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": "Contact Us" } } @@ -163,6 +181,7 @@ "tiers": { "free": "Up to 1 GB", "pro": "100 GB included, then $0.021 per GB", + "team": "text", "enterprise": "Unlimited" } }, @@ -172,6 +191,7 @@ "tiers": { "free": "Up to 2 GB", "pro": "200 GB included, then $0.09 per GB", + "team": "text", "enterprise": "Unlimited" } }, @@ -189,6 +209,7 @@ "tiers": { "free": "Up to 50MB", "pro": "Up to 5GB", + "team": "text", "enterprise": "Unlimited" } }, @@ -197,6 +218,7 @@ "tiers": { "free": false, "pro": "Unlimited transformations for 100 origin images, then 5$ per 1000 origin images", + "team": "text", "enterprise": "Unlimited" } } @@ -211,6 +233,7 @@ "tiers": { "free": "500K per month", "pro": "2 Million per month, then $2 per 1 million invocations", + "team": "text", "enterprise": "Unlimited" } }, @@ -219,6 +242,7 @@ "tiers": { "free": "2 mb", "pro": "10 mb", + "team": "text", "enterprise": "Unlimited" } }, @@ -227,6 +251,7 @@ "tiers": { "free": "10", "pro": "100, then $10 per additional 100 functions", + "team": "text", "enterprise": "Unlimited" } } @@ -241,6 +266,7 @@ "tiers": { "free": true, "pro": true, + "team": true, "enterprise": true } }, @@ -249,6 +275,7 @@ "tiers": { "free": "Up to 200", "pro": "Up to 500, then $10 per 1000", + "team": "text", "enterprise": "Unlimited concurrent connections and volume discount" } }, @@ -257,6 +284,7 @@ "tiers": { "free": "2 Million (including database)", "pro": "5 Million", + "team": "text", "enterprise": "Volume discounts on messages" } }, @@ -265,6 +293,7 @@ "tiers": { "free": "250 Kb", "pro": "3 Mb", + "team": "text", "enterprise": "Custom" } } @@ -279,6 +308,7 @@ "tiers": { "free": "Unlimited", "pro": "Unlimited", + "team": "text", "enterprise": "Unlimited" } }, @@ -287,6 +317,7 @@ "tiers": { "free": "Coming soon", "pro": "Coming soon", + "team": "text", "enterprise": true } }, @@ -295,6 +326,7 @@ "tiers": { "free": false, "pro": false, + "team": false, "enterprise": true } } @@ -309,6 +341,7 @@ "tiers": { "free": false, "pro": false, + "team": false, "enterprise": true } }, @@ -317,6 +350,7 @@ "tiers": { "free": "1 day", "pro": "7 days", + "team": "text", "enterprise": "90 days" } }, @@ -325,6 +359,7 @@ "tiers": { "free": false, "pro": false, + "team": "text", "enterprise": "Coming soon" } }, @@ -333,6 +368,7 @@ "tiers": { "free": false, "pro": true, + "team": true, "enterprise": true } }, @@ -341,6 +377,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } }, @@ -349,6 +386,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": "Contact Us" } }, @@ -357,6 +395,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } }, @@ -365,6 +404,7 @@ "tiers": { "free": "Owner, Developer", "pro": "Owner, Developer", + "team": "text", "enterprise": "Additional owner(s), admin, read-only, billing admin, custom" } }, @@ -373,6 +413,7 @@ "tiers": { "free": false, "pro": true, + "team": true, "enterprise": true } }, @@ -382,6 +423,7 @@ "tiers": { "free": false, "pro": "$10 per domain per month per project add on", + "team": "text", "enterprise": "1 included, additional custom domains $10 per custom domain per month. Volume discounts available." } } @@ -396,6 +438,7 @@ "tiers": { "free": true, "pro": true, + "team": true, "enterprise": true } }, @@ -404,6 +447,7 @@ "tiers": { "free": false, "pro": true, + "team": true, "enterprise": true } }, @@ -412,6 +456,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } }, @@ -420,6 +465,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } }, @@ -436,6 +482,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } }, @@ -444,6 +491,7 @@ "tiers": { "free": false, "pro": false, + "team": true, "enterprise": true } } diff --git a/apps/www/data/PricingAddOnTable.json b/apps/www/data/PricingAddOnTable.json index d756fb75d18..e20da275960 100644 --- a/apps/www/data/PricingAddOnTable.json +++ b/apps/www/data/PricingAddOnTable.json @@ -10,11 +10,12 @@ "rows": [ { "columns": [ - { "key": "plan", "title": "Plan", "value": "Free (Included)" }, + { "key": "plan", "title": "Plan", "value": "Starter" }, { "key": "pricing", "title": "Pricing", "value": "$0" }, - { "key": "cpu", "title": "CPU", "value": "2-core ARM (shared)" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": false }, { "key": "memory", "title": "Memory", "value": "1 GB" }, - { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, + { "key": "maxDiskIO", "title": "Disk IO Bandwidth up to", "value": "2,606 Mbps" }, { "key": "baseDiskIO", "title": "Baseline Disk IO Bandwidth", @@ -22,12 +23,12 @@ }, { "key": "directConnections", - "title": "Connections: Direct (recommended)", + "title": "Connections: Direct", "value": "10" }, { "key": "poolerConnections", - "title": "Connections: Pooler (recommended)", + "title": "Connections: Pooler", "value": "50" } ] @@ -36,7 +37,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "Small" }, { "key": "pricing", "title": "Pricing", "value": "$5" }, - { "key": "cpu", "title": "CPU", "value": "2-core ARM (shared)" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": false }, { "key": "memory", "title": "Memory", "value": "2 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, { @@ -60,7 +62,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "Medium" }, { "key": "pricing", "title": "Pricing", "value": "$50" }, - { "key": "cpu", "title": "CPU", "value": "2-core ARM (shared)" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": false }, { "key": "memory", "title": "Memory", "value": "4 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, { @@ -84,7 +87,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "Large" }, { "key": "pricing", "title": "Pricing", "value": "$100" }, - { "key": "cpu", "title": "CPU", "value": "2-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "2-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "8 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, { @@ -108,7 +112,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "XL" }, { "key": "pricing", "title": "Pricing", "value": "$200" }, - { "key": "cpu", "title": "CPU", "value": "4-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "4-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "16 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, { @@ -132,7 +137,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "2XL" }, { "key": "pricing", "title": "Pricing", "value": "$400" }, - { "key": "cpu", "title": "CPU", "value": "8-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "8-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "32 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, { @@ -156,7 +162,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "4XL" }, { "key": "pricing", "title": "Pricing", "value": "$950" }, - { "key": "cpu", "title": "CPU", "value": "16-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "16-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "64 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, { @@ -180,7 +187,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "8XL" }, { "key": "pricing", "title": "Pricing", "value": "$1,860" }, - { "key": "cpu", "title": "CPU", "value": "32-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "32-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "128 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "9,500 Mbps" }, { @@ -204,7 +212,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "12XL" }, { "key": "pricing", "title": "Pricing", "value": "$2,790" }, - { "key": "cpu", "title": "CPU", "value": "48-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "48-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "192 GB" }, { "key": "maxDiskIO", @@ -232,7 +241,8 @@ "columns": [ { "key": "plan", "title": "Plan", "value": "16XL" }, { "key": "pricing", "title": "Pricing", "value": "$3,720" }, - { "key": "cpu", "title": "CPU", "value": "64-core ARM (dedicated)" }, + { "key": "cpu", "title": "CPU", "value": "64-core ARM" }, + { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "256 GB" }, { "key": "maxDiskIO", @@ -255,30 +265,6 @@ "value": "11,600" } ] - }, - { - "columns": [ - { "key": "plan", "title": "Plan", "value": "Custom (need more?)" }, - { "key": "pricing", "title": "Pricing", "value": "Contact Us" }, - { "key": "cpu", "title": "CPU", "value": "Contact Us" }, - { "key": "memory", "title": "Memory", "value": "Contact Us" }, - { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "Contact Us" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "Contact Us" - }, - { - "key": "directConnections", - "title": "Connections: Direct (recommended)", - "value": "Contact Us" - }, - { - "key": "poolerConnections", - "title": "Connections: Pooler (recommended)", - "value": "Contact Us" - } - ] } ] }, diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 9fe40754704..89c21f0ffec 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -4,21 +4,23 @@ import Solutions from 'data/Solutions.json' import { NextSeo } from 'next-seo' import Link from 'next/link' import { useRouter } from 'next/router' -import React from 'react' +import React, { useState } from 'react' import ReactMarkdown from 'react-markdown' import CTABanner from '~/components/CTABanner' import DefaultLayout from '~/components/Layouts/Default' -import PricingAddOnTable from '~/components/PricingAddOnTable' -import { PricingTableRowDesktop, PricingTableRowMobile } from '~/components/PricingTableRow' +import PricingAddOnTable from '~/components/Pricing/PricingAddOnTable' +import { PricingTableRowDesktop, PricingTableRowMobile } from '~/components/Pricing/PricingTableRow' import pricing from '~/data/Pricing.json' import pricingAddOn from '~/data/PricingAddOnTable.json' import pricingFaq from '~/data/PricingFAQ.json' import { useTheme } from 'common/Providers' +import ComputePricingModal from '~/components/Pricing/ComputePricingModal' export default function IndexPage() { const router = useRouter() const { basePath } = useRouter() const { isDarkMode } = useTheme() + const [showComputeModal, setShowComputeModal] = useState(false) const meta_title = 'Pricing & fees | Supabase' const meta_description = @@ -37,7 +39,7 @@ export default function IndexPage() { costUnit: 'per month per project', href: 'https://app.supabase.com/new/new-project', priceLabel: 'Starting from', - priceMonthly: 0, + priceMonthly: '0', warning: 'Limit of 2 free projects', description: 'Perfect for passion projects & simple websites.', preface: 'Get started with...', @@ -90,7 +92,7 @@ export default function IndexPage() { href: 'https://app.supabase.com/new/new-project', from: true, priceLabel: 'Starting from', - priceMonthly: 25, + priceMonthly: 599, description: 'For scaling teams with permissions & access controls', warning: '+ any additional usage', features: [ @@ -134,7 +136,7 @@ export default function IndexPage() { const addons = [ { name: 'Optimized Compute', - heroImg: 'hero', + heroImg: 'addons-compute-hero', icon: 'compute-upgrade', price: 'Starts from $5', description: 'Increase the captability of your database only for what you need.', @@ -145,7 +147,7 @@ export default function IndexPage() { }, { name: 'Dedicated Support', - heroImg: 'hero', + heroImg: 'addons-support', icon: 'support-upgrade', price: 'Starts from $5', description: @@ -157,7 +159,7 @@ export default function IndexPage() { }, { name: 'Custom Domain', - heroImg: 'hero', + heroImg: 'addons-custom-domain-hero', icon: 'custom-domain-upgrade', price: 'Flat fee $10', description: @@ -169,8 +171,8 @@ export default function IndexPage() { }, { name: 'Point in time recovery', - heroImg: 'hero', - icon: 'icon', + heroImg: 'addons-pitr', + icon: 'pitr-upgrade', price: 'Starts from $5', description: 'Roll back to any specific point in time and ensure that data is not lost.', leftCtaText: 'Documentation', @@ -249,7 +251,7 @@ export default function IndexPage() {
-
+
{/*
*/}
-
+
{tiers.map((tier) => (
-
+

Easily customizable add-Ons

@@ -396,24 +398,73 @@ export default function IndexPage() { Level up your Supabase experience with add-ons.

-
+ +
{addons.map((addon) => ( -
- Compute -
- {addon.name} - {addon.price} +
+
+ +
+
+

{addon.price}

+
+ Compute + {addon.name} +
+

+ {addon.description} +

+
+ + + + + + {addon.name === 'Optimized Compute' ? ( + + ) : ( + '' + )} +
))}
-
+
+
+ + Available for Pro plan + +

Flexible Spend Cap

+

+ Ensure you have the flexibility to scale your business without the restrictions of Pro + usage limits. Turn off the usage cap to let your project scale and only pay for what + you use.{' '} +

+
+
+
right
+
+
- + - - - - - + {tiers.map((tier) => ( + + ))} + + + + {tiers.map((tier) => ( + + ))} + - + + > - - - - - + + + + + ))} + ) } diff --git a/apps/www/public/images/icons/brand/api-gray-negative.svg b/apps/www/public/images/icons/brand/api-gray-negative.svg deleted file mode 100644 index 1c8b36abab2..00000000000 --- a/apps/www/public/images/icons/brand/api-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/api-gray.svg b/apps/www/public/images/icons/brand/api-gray.svg deleted file mode 100644 index af00abfa5c6..00000000000 --- a/apps/www/public/images/icons/brand/api-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/api-green.svg b/apps/www/public/images/icons/brand/api-green.svg deleted file mode 100644 index 14f6f33c4fe..00000000000 --- a/apps/www/public/images/icons/brand/api-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/api-management-gray-negative.svg b/apps/www/public/images/icons/brand/api-management-gray-negative.svg deleted file mode 100644 index 9cfe9c931d8..00000000000 --- a/apps/www/public/images/icons/brand/api-management-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/api-management-gray.svg b/apps/www/public/images/icons/brand/api-management-gray.svg deleted file mode 100644 index ad8169dc421..00000000000 --- a/apps/www/public/images/icons/brand/api-management-gray.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/www/public/images/icons/brand/api-management-green.svg b/apps/www/public/images/icons/brand/api-management-green.svg deleted file mode 100644 index 2724bdb975d..00000000000 --- a/apps/www/public/images/icons/brand/api-management-green.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/www/public/images/icons/brand/auth-gray-negative.svg b/apps/www/public/images/icons/brand/auth-gray-negative.svg deleted file mode 100644 index 611ec59b334..00000000000 --- a/apps/www/public/images/icons/brand/auth-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/auth-gray.svg b/apps/www/public/images/icons/brand/auth-gray.svg deleted file mode 100644 index 69a108e951d..00000000000 --- a/apps/www/public/images/icons/brand/auth-gray.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/auth-green.svg b/apps/www/public/images/icons/brand/auth-green.svg deleted file mode 100644 index 0875ec0d581..00000000000 --- a/apps/www/public/images/icons/brand/auth-green.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/blog-gray-negative.svg b/apps/www/public/images/icons/brand/blog-gray-negative.svg deleted file mode 100644 index 77cd8aa368d..00000000000 --- a/apps/www/public/images/icons/brand/blog-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/blog-gray.svg b/apps/www/public/images/icons/brand/blog-gray.svg deleted file mode 100644 index d17a7a75f2f..00000000000 --- a/apps/www/public/images/icons/brand/blog-gray.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/www/public/images/icons/brand/blog-green.svg b/apps/www/public/images/icons/brand/blog-green.svg deleted file mode 100644 index ce9e01c1703..00000000000 --- a/apps/www/public/images/icons/brand/blog-green.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/www/public/images/icons/brand/cli-gray-negative.svg b/apps/www/public/images/icons/brand/cli-gray-negative.svg deleted file mode 100644 index eaa2cee6601..00000000000 --- a/apps/www/public/images/icons/brand/cli-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/cli-gray.svg b/apps/www/public/images/icons/brand/cli-gray.svg deleted file mode 100644 index e44838f4b7a..00000000000 --- a/apps/www/public/images/icons/brand/cli-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/cli-green.svg b/apps/www/public/images/icons/brand/cli-green.svg deleted file mode 100644 index ab3012bccd9..00000000000 --- a/apps/www/public/images/icons/brand/cli-green.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/www/public/images/icons/brand/columns-gray-negative.svg b/apps/www/public/images/icons/brand/columns-gray-negative.svg deleted file mode 100644 index 767fc7c44e9..00000000000 --- a/apps/www/public/images/icons/brand/columns-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/columns-gray.svg b/apps/www/public/images/icons/brand/columns-gray.svg deleted file mode 100644 index bdf3c770bea..00000000000 --- a/apps/www/public/images/icons/brand/columns-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/columns-green.svg b/apps/www/public/images/icons/brand/columns-green.svg deleted file mode 100644 index e55340280d8..00000000000 --- a/apps/www/public/images/icons/brand/columns-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/custom-domains-gray-negative.svg b/apps/www/public/images/icons/brand/custom-domains-gray-negative.svg deleted file mode 100644 index afc7ede37ff..00000000000 --- a/apps/www/public/images/icons/brand/custom-domains-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/custom-domains-gray.svg b/apps/www/public/images/icons/brand/custom-domains-gray.svg deleted file mode 100644 index 405ab724659..00000000000 --- a/apps/www/public/images/icons/brand/custom-domains-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/custom-domains-green.svg b/apps/www/public/images/icons/brand/custom-domains-green.svg deleted file mode 100644 index 48f15398d17..00000000000 --- a/apps/www/public/images/icons/brand/custom-domains-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg b/apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg deleted file mode 100644 index 55685530c78..00000000000 --- a/apps/www/public/images/icons/brand/database-add-ons-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/database-add-ons-gray.svg b/apps/www/public/images/icons/brand/database-add-ons-gray.svg deleted file mode 100644 index 1a434548729..00000000000 --- a/apps/www/public/images/icons/brand/database-add-ons-gray.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/database-add-ons-green.svg b/apps/www/public/images/icons/brand/database-add-ons-green.svg deleted file mode 100644 index c893942cdc6..00000000000 --- a/apps/www/public/images/icons/brand/database-add-ons-green.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/database-gray-negative.svg b/apps/www/public/images/icons/brand/database-gray-negative.svg deleted file mode 100644 index 5e55c299c24..00000000000 --- a/apps/www/public/images/icons/brand/database-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/database-gray.svg b/apps/www/public/images/icons/brand/database-gray.svg deleted file mode 100644 index 56bc4ae60b2..00000000000 --- a/apps/www/public/images/icons/brand/database-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/database-green.svg b/apps/www/public/images/icons/brand/database-green.svg deleted file mode 100644 index 7919de28ca8..00000000000 --- a/apps/www/public/images/icons/brand/database-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/documentation-gray-negative.svg b/apps/www/public/images/icons/brand/documentation-gray-negative.svg deleted file mode 100644 index 9c9549935db..00000000000 --- a/apps/www/public/images/icons/brand/documentation-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/documentation-gray.svg b/apps/www/public/images/icons/brand/documentation-gray.svg deleted file mode 100644 index 9e4b7b66c91..00000000000 --- a/apps/www/public/images/icons/brand/documentation-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/documentation-green.svg b/apps/www/public/images/icons/brand/documentation-green.svg deleted file mode 100644 index 877b89de115..00000000000 --- a/apps/www/public/images/icons/brand/documentation-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/edge-functions-gray-negative.svg b/apps/www/public/images/icons/brand/edge-functions-gray-negative.svg deleted file mode 100644 index 47168849c2b..00000000000 --- a/apps/www/public/images/icons/brand/edge-functions-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/edge-functions-gray.svg b/apps/www/public/images/icons/brand/edge-functions-gray.svg deleted file mode 100644 index 65b62e8f89e..00000000000 --- a/apps/www/public/images/icons/brand/edge-functions-gray.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/edge-functions-green.svg b/apps/www/public/images/icons/brand/edge-functions-green.svg deleted file mode 100644 index cfe6bb89751..00000000000 --- a/apps/www/public/images/icons/brand/edge-functions-green.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/extensions-gray-negative.svg b/apps/www/public/images/icons/brand/extensions-gray-negative.svg deleted file mode 100644 index 6fdd405e034..00000000000 --- a/apps/www/public/images/icons/brand/extensions-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/extensions-gray.svg b/apps/www/public/images/icons/brand/extensions-gray.svg deleted file mode 100644 index fcd4c774c8b..00000000000 --- a/apps/www/public/images/icons/brand/extensions-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/extensions-green.svg b/apps/www/public/images/icons/brand/extensions-green.svg deleted file mode 100644 index bea58a73a02..00000000000 --- a/apps/www/public/images/icons/brand/extensions-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/getting-started-gray-negative.svg b/apps/www/public/images/icons/brand/getting-started-gray-negative.svg deleted file mode 100644 index 66a75217931..00000000000 --- a/apps/www/public/images/icons/brand/getting-started-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/getting-started-gray.svg b/apps/www/public/images/icons/brand/getting-started-gray.svg deleted file mode 100644 index b1ef015bec7..00000000000 --- a/apps/www/public/images/icons/brand/getting-started-gray.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/www/public/images/icons/brand/getting-started-green.svg b/apps/www/public/images/icons/brand/getting-started-green.svg deleted file mode 100644 index f24b5d6f883..00000000000 --- a/apps/www/public/images/icons/brand/getting-started-green.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/apps/www/public/images/icons/brand/glossary-gray-negative.svg b/apps/www/public/images/icons/brand/glossary-gray-negative.svg deleted file mode 100644 index 48846d72ed6..00000000000 --- a/apps/www/public/images/icons/brand/glossary-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/glossary-gray.svg b/apps/www/public/images/icons/brand/glossary-gray.svg deleted file mode 100644 index 9931120ffa6..00000000000 --- a/apps/www/public/images/icons/brand/glossary-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/glossary-green.svg b/apps/www/public/images/icons/brand/glossary-green.svg deleted file mode 100644 index 7ab0359e7b9..00000000000 --- a/apps/www/public/images/icons/brand/glossary-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/guides-gray-negative.svg b/apps/www/public/images/icons/brand/guides-gray-negative.svg deleted file mode 100644 index 619dfc473e5..00000000000 --- a/apps/www/public/images/icons/brand/guides-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/guides-gray.svg b/apps/www/public/images/icons/brand/guides-gray.svg deleted file mode 100644 index 375fe6d5d8b..00000000000 --- a/apps/www/public/images/icons/brand/guides-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/guides-green.svg b/apps/www/public/images/icons/brand/guides-green.svg deleted file mode 100644 index 27863e00032..00000000000 --- a/apps/www/public/images/icons/brand/guides-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/home-gray-negative.svg b/apps/www/public/images/icons/brand/home-gray-negative.svg deleted file mode 100644 index ae023b5375a..00000000000 --- a/apps/www/public/images/icons/brand/home-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/home-gray.svg b/apps/www/public/images/icons/brand/home-gray.svg deleted file mode 100644 index ebfa14f7f23..00000000000 --- a/apps/www/public/images/icons/brand/home-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/home-green.svg b/apps/www/public/images/icons/brand/home-green.svg deleted file mode 100644 index 0a228053177..00000000000 --- a/apps/www/public/images/icons/brand/home-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/logs-gray-negative.svg b/apps/www/public/images/icons/brand/logs-gray-negative.svg deleted file mode 100644 index 234a573c22a..00000000000 --- a/apps/www/public/images/icons/brand/logs-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/logs-gray.svg b/apps/www/public/images/icons/brand/logs-gray.svg deleted file mode 100644 index 0e99fe1f216..00000000000 --- a/apps/www/public/images/icons/brand/logs-gray.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/logs-green.svg b/apps/www/public/images/icons/brand/logs-green.svg deleted file mode 100644 index 52da7533ce1..00000000000 --- a/apps/www/public/images/icons/brand/logs-green.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/pitr-gray-negative.svg b/apps/www/public/images/icons/brand/pitr-gray-negative.svg deleted file mode 100644 index 378964e9333..00000000000 --- a/apps/www/public/images/icons/brand/pitr-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/pitr-gray.svg b/apps/www/public/images/icons/brand/pitr-gray.svg deleted file mode 100644 index c13962eae4f..00000000000 --- a/apps/www/public/images/icons/brand/pitr-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/pitr-green.svg b/apps/www/public/images/icons/brand/pitr-green.svg deleted file mode 100644 index f6269710023..00000000000 --- a/apps/www/public/images/icons/brand/pitr-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/platform-gray-negative.svg b/apps/www/public/images/icons/brand/platform-gray-negative.svg deleted file mode 100644 index bdff9e59d70..00000000000 --- a/apps/www/public/images/icons/brand/platform-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/platform-gray.svg b/apps/www/public/images/icons/brand/platform-gray.svg deleted file mode 100644 index 83483f36f32..00000000000 --- a/apps/www/public/images/icons/brand/platform-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/platform-green.svg b/apps/www/public/images/icons/brand/platform-green.svg deleted file mode 100644 index 2c73d35f721..00000000000 --- a/apps/www/public/images/icons/brand/platform-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/profile-gray-negative.svg b/apps/www/public/images/icons/brand/profile-gray-negative.svg deleted file mode 100644 index 2e4fe6c99e7..00000000000 --- a/apps/www/public/images/icons/brand/profile-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/profile-gray.svg b/apps/www/public/images/icons/brand/profile-gray.svg deleted file mode 100644 index 344fa4c16f3..00000000000 --- a/apps/www/public/images/icons/brand/profile-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/profile-green.svg b/apps/www/public/images/icons/brand/profile-green.svg deleted file mode 100644 index 4064771b4f8..00000000000 --- a/apps/www/public/images/icons/brand/profile-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/read-replicas-gray-negative.svg b/apps/www/public/images/icons/brand/read-replicas-gray-negative.svg deleted file mode 100644 index ba08dbd69e7..00000000000 --- a/apps/www/public/images/icons/brand/read-replicas-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/read-replicas-gray.svg b/apps/www/public/images/icons/brand/read-replicas-gray.svg deleted file mode 100644 index abfb88d2213..00000000000 --- a/apps/www/public/images/icons/brand/read-replicas-gray.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/read-replicas-green.svg b/apps/www/public/images/icons/brand/read-replicas-green.svg deleted file mode 100644 index c033c7189cf..00000000000 --- a/apps/www/public/images/icons/brand/read-replicas-green.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/realtime-gray-negative.svg b/apps/www/public/images/icons/brand/realtime-gray-negative.svg deleted file mode 100644 index e820eaae08f..00000000000 --- a/apps/www/public/images/icons/brand/realtime-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/realtime-gray.svg b/apps/www/public/images/icons/brand/realtime-gray.svg deleted file mode 100644 index a3bcf43ffdd..00000000000 --- a/apps/www/public/images/icons/brand/realtime-gray.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/realtime-green.svg b/apps/www/public/images/icons/brand/realtime-green.svg deleted file mode 100644 index 1d5d535b40d..00000000000 --- a/apps/www/public/images/icons/brand/realtime-green.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/reports-gray-negative.svg b/apps/www/public/images/icons/brand/reports-gray-negative.svg deleted file mode 100644 index 3cea4f0d444..00000000000 --- a/apps/www/public/images/icons/brand/reports-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/reports-gray.svg b/apps/www/public/images/icons/brand/reports-gray.svg deleted file mode 100644 index 4e988b96331..00000000000 --- a/apps/www/public/images/icons/brand/reports-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/reports-green.svg b/apps/www/public/images/icons/brand/reports-green.svg deleted file mode 100644 index a04dc29b8e9..00000000000 --- a/apps/www/public/images/icons/brand/reports-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/roles-gray-negative.svg b/apps/www/public/images/icons/brand/roles-gray-negative.svg deleted file mode 100644 index bd12069792c..00000000000 --- a/apps/www/public/images/icons/brand/roles-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/roles-gray.svg b/apps/www/public/images/icons/brand/roles-gray.svg deleted file mode 100644 index 7764b8841bb..00000000000 --- a/apps/www/public/images/icons/brand/roles-gray.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/apps/www/public/images/icons/brand/roles-green.svg b/apps/www/public/images/icons/brand/roles-green.svg deleted file mode 100644 index 6ab8c3b3c05..00000000000 --- a/apps/www/public/images/icons/brand/roles-green.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/rows-gray-negative.svg b/apps/www/public/images/icons/brand/rows-gray-negative.svg deleted file mode 100644 index f0640712741..00000000000 --- a/apps/www/public/images/icons/brand/rows-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/rows-gray.svg b/apps/www/public/images/icons/brand/rows-gray.svg deleted file mode 100644 index f5320ce67bb..00000000000 --- a/apps/www/public/images/icons/brand/rows-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/rows-green.svg b/apps/www/public/images/icons/brand/rows-green.svg deleted file mode 100644 index 02b29c41d64..00000000000 --- a/apps/www/public/images/icons/brand/rows-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/self-hosting-gray-negative.svg b/apps/www/public/images/icons/brand/self-hosting-gray-negative.svg deleted file mode 100644 index ea74756adce..00000000000 --- a/apps/www/public/images/icons/brand/self-hosting-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/self-hosting-gray.svg b/apps/www/public/images/icons/brand/self-hosting-gray.svg deleted file mode 100644 index 7a5e667ced1..00000000000 --- a/apps/www/public/images/icons/brand/self-hosting-gray.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/self-hosting-green.svg b/apps/www/public/images/icons/brand/self-hosting-green.svg deleted file mode 100644 index 9cc2c2ddfb8..00000000000 --- a/apps/www/public/images/icons/brand/self-hosting-green.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/settings-gray-negative.svg b/apps/www/public/images/icons/brand/settings-gray-negative.svg deleted file mode 100644 index 2b64a926831..00000000000 --- a/apps/www/public/images/icons/brand/settings-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/settings-gray.svg b/apps/www/public/images/icons/brand/settings-gray.svg deleted file mode 100644 index 2b62223d7bc..00000000000 --- a/apps/www/public/images/icons/brand/settings-gray.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/www/public/images/icons/brand/settings-green.svg b/apps/www/public/images/icons/brand/settings-green.svg deleted file mode 100644 index 2d149540e53..00000000000 --- a/apps/www/public/images/icons/brand/settings-green.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/www/public/images/icons/brand/storage-gray-negative.svg b/apps/www/public/images/icons/brand/storage-gray-negative.svg deleted file mode 100644 index 837bee9ee6d..00000000000 --- a/apps/www/public/images/icons/brand/storage-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/storage-gray.svg b/apps/www/public/images/icons/brand/storage-gray.svg deleted file mode 100644 index bef6045c255..00000000000 --- a/apps/www/public/images/icons/brand/storage-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/storage-green.svg b/apps/www/public/images/icons/brand/storage-green.svg deleted file mode 100644 index 55b6ca6367f..00000000000 --- a/apps/www/public/images/icons/brand/storage-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg b/apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg deleted file mode 100644 index 4eaf7940385..00000000000 --- a/apps/www/public/images/icons/brand/support-add-ons-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/support-add-ons-gray.svg b/apps/www/public/images/icons/brand/support-add-ons-gray.svg deleted file mode 100644 index bd8647de63d..00000000000 --- a/apps/www/public/images/icons/brand/support-add-ons-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/support-add-ons-green.svg b/apps/www/public/images/icons/brand/support-add-ons-green.svg deleted file mode 100644 index 6ff5e144638..00000000000 --- a/apps/www/public/images/icons/brand/support-add-ons-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/support-gray-negative.svg b/apps/www/public/images/icons/brand/support-gray-negative.svg deleted file mode 100644 index c2f5ca07036..00000000000 --- a/apps/www/public/images/icons/brand/support-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/support-gray.svg b/apps/www/public/images/icons/brand/support-gray.svg deleted file mode 100644 index 7f0cddd1c45..00000000000 --- a/apps/www/public/images/icons/brand/support-gray.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/support-green.svg b/apps/www/public/images/icons/brand/support-green.svg deleted file mode 100644 index 0e3034f495a..00000000000 --- a/apps/www/public/images/icons/brand/support-green.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/apps/www/public/images/icons/brand/table-editor-gray-negative.svg b/apps/www/public/images/icons/brand/table-editor-gray-negative.svg deleted file mode 100644 index 53d8b392821..00000000000 --- a/apps/www/public/images/icons/brand/table-editor-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/table-editor-gray.svg b/apps/www/public/images/icons/brand/table-editor-gray.svg deleted file mode 100644 index 7c79f5d9512..00000000000 --- a/apps/www/public/images/icons/brand/table-editor-gray.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/table-editor-green.svg b/apps/www/public/images/icons/brand/table-editor-green.svg deleted file mode 100644 index a100b64c80f..00000000000 --- a/apps/www/public/images/icons/brand/table-editor-green.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/apps/www/public/images/icons/brand/tables-gray-negative.svg b/apps/www/public/images/icons/brand/tables-gray-negative.svg deleted file mode 100644 index 0156ae2f417..00000000000 --- a/apps/www/public/images/icons/brand/tables-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/tables-gray.svg b/apps/www/public/images/icons/brand/tables-gray.svg deleted file mode 100644 index 3f7f4a54554..00000000000 --- a/apps/www/public/images/icons/brand/tables-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/tables-green.svg b/apps/www/public/images/icons/brand/tables-green.svg deleted file mode 100644 index 509103462b1..00000000000 --- a/apps/www/public/images/icons/brand/tables-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/tutorials-gray-negative.svg b/apps/www/public/images/icons/brand/tutorials-gray-negative.svg deleted file mode 100644 index 08a86d1254d..00000000000 --- a/apps/www/public/images/icons/brand/tutorials-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/tutorials-gray.svg b/apps/www/public/images/icons/brand/tutorials-gray.svg deleted file mode 100644 index df4b35c7489..00000000000 --- a/apps/www/public/images/icons/brand/tutorials-gray.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/www/public/images/icons/brand/tutorials-green.svg b/apps/www/public/images/icons/brand/tutorials-green.svg deleted file mode 100644 index a4787fd42a3..00000000000 --- a/apps/www/public/images/icons/brand/tutorials-green.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/www/public/images/icons/brand/wrappers-gray-negative.svg b/apps/www/public/images/icons/brand/wrappers-gray-negative.svg deleted file mode 100644 index b9825cc8b84..00000000000 --- a/apps/www/public/images/icons/brand/wrappers-gray-negative.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/www/public/images/icons/brand/wrappers-gray.svg b/apps/www/public/images/icons/brand/wrappers-gray.svg deleted file mode 100644 index 6b504f78bf5..00000000000 --- a/apps/www/public/images/icons/brand/wrappers-gray.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/icons/brand/wrappers-green.svg b/apps/www/public/images/icons/brand/wrappers-green.svg deleted file mode 100644 index 970028b1b07..00000000000 --- a/apps/www/public/images/icons/brand/wrappers-green.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/www/public/images/pricing/addons-custom-domain-hero-light.svg b/apps/www/public/images/pricing/addons-custom-domain-hero-light.svg new file mode 100644 index 00000000000..0b6cd42fcad --- /dev/null +++ b/apps/www/public/images/pricing/addons-custom-domain-hero-light.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/addons-custom-domain-hero.svg b/apps/www/public/images/pricing/addons-custom-domain-hero.svg new file mode 100644 index 00000000000..9522f483565 --- /dev/null +++ b/apps/www/public/images/pricing/addons-custom-domain-hero.svg @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/addons-pitr-light.svg b/apps/www/public/images/pricing/addons-pitr-light.svg new file mode 100644 index 00000000000..ec8f6511785 --- /dev/null +++ b/apps/www/public/images/pricing/addons-pitr-light.svg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/addons-pitr.svg b/apps/www/public/images/pricing/addons-pitr.svg new file mode 100644 index 00000000000..9136cffa38d --- /dev/null +++ b/apps/www/public/images/pricing/addons-pitr.svg @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/addons-support-light.svg b/apps/www/public/images/pricing/addons-support-light.svg new file mode 100644 index 00000000000..040e497a537 --- /dev/null +++ b/apps/www/public/images/pricing/addons-support-light.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/addons-support.svg b/apps/www/public/images/pricing/addons-support.svg new file mode 100644 index 00000000000..628bf43d9df --- /dev/null +++ b/apps/www/public/images/pricing/addons-support.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/public/images/pricing/pitr-upgrade-light.svg b/apps/www/public/images/pricing/pitr-upgrade-light.svg new file mode 100644 index 00000000000..57a36a937f1 --- /dev/null +++ b/apps/www/public/images/pricing/pitr-upgrade-light.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/pitr-upgrade.svg b/apps/www/public/images/pricing/pitr-upgrade.svg new file mode 100644 index 00000000000..238a81aaf80 --- /dev/null +++ b/apps/www/public/images/pricing/pitr-upgrade.svg @@ -0,0 +1,7 @@ + + + + + + + From 13f8aa5458094bf16fb66044c53791b809f849a7 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Thu, 19 Jan 2023 16:38:47 -0330 Subject: [PATCH 05/39] Update --- .../Pricing/ComputePricingModal.tsx | 35 ++++-- .../components/Pricing/PricingTableRow.tsx | 17 ++- apps/www/data/Pricing.json | 110 ++++++++++++------ apps/www/data/PricingAddOnTable.json | 60 ++-------- apps/www/pages/pricing/index.tsx | 38 +++--- .../images/pricing/compute-upgrade-green.svg | 9 ++ apps/www/public/images/pricing/spend-cap.svg | 1 + 7 files changed, 141 insertions(+), 129 deletions(-) create mode 100644 apps/www/public/images/pricing/compute-upgrade-green.svg create mode 100644 apps/www/public/images/pricing/spend-cap.svg diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index b56881abb0c..d88a622361a 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -1,14 +1,15 @@ import React, { Fragment, useMemo } from 'react' - +import { useRouter } from 'next/router' +import { useTheme } from 'common/Providers' import { IconCheckCircle, IconXCircle, Modal } from 'ui' import pricingAddOn from '~/data/PricingAddOnTable.json' - interface Props { showComputeModal: boolean setShowComputeModal: React.Dispatch> } export default function ComputePricingModal({ showComputeModal, setShowComputeModal }: Props) { + const { basePath } = useRouter() const columnNames = useMemo( () => pricingAddOn.database.rows.map((row) => @@ -36,13 +37,25 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo
-

Choose best compute setup for you

-

- Every project on the Supabase Platform comes with its own dedicated Postgres instance - running inside a virtual machine (VM). The following table describes the base instance - with additional compute add-ons available if you need extra performance when scaling - up Supabase. -

+
+
+
+ +
+
+
+

Choose best compute setup for you

+

+ Every project on the Supabase Platform comes with its own dedicated Postgres + instance running inside a virtual machine (VM). The following table describes the + base instance with additional compute add-ons available if you need extra + performance when scaling up Supabase. +

+
+
Pricing plan comparison
Feature by - Plans
- Free -
-
- Pro -
-
- Enterprise -
-
+

+ {tier.name} +

+
+
+

{tier.description}

+
+
- Pricing - -
- $0 -

/project/month

+ {tiers.map((tier) => ( +
+
+
+ {tier.priceMonthly && ( + <> + + ${tier.priceMonthly} + +

per project per month

+ + )} -

Perfect for hobby projects and experiments

+ {tier.warning && ( +

+ + {tier.warning} + +

+ )} - - - - - -
-
-
- $25 -

/project/month + usage costs

- -

- Everything you need to scale your project into production -

- - - - - - -
-
-
- Contact Us -

for a quote

- -

- Designated support team, account manager and technical specialist -

- - - - - - -
-
@@ -57,7 +70,7 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo {pricingAddOn.database.rows.map((row, i) => ( - <> + {i === 0 && ( ))} - + ))}
@@ -86,7 +99,7 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo
diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index f546208082e..b8b5a314358 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -1,6 +1,6 @@ import { IconHelpCircle, IconInfo, IconX, IconXCircle, Modal } from 'ui' import ProductIcon from 'components/ProductIcon' -import React, { useState } from 'react' +import React, { Fragment, useState } from 'react' import ReactTooltip from 'react-tooltip' export const Check = () => ( @@ -70,17 +70,17 @@ export const PricingTableRowDesktop = (props: any) => { {category.features.map((feat: any, i: number) => { return ( - <> + {feat.title} - {feat.tooltip && !feat.tooltipPosition && ( + {feat.tooltips?.main && ( @@ -107,15 +107,14 @@ export const PricingTableRowDesktop = (props: any) => {
) : ( - {feat.tooltip && feat.tooltipPosition === tierName && ( + {feat.tooltips?.[tierName] && ( - + )} - {tierValue} )} @@ -126,7 +125,7 @@ export const PricingTableRowDesktop = (props: any) => { {i === category.features.length - 1 && (
)} - + ) })} diff --git a/apps/www/data/Pricing.json b/apps/www/data/Pricing.json index 860d7421130..4607d7c5dd6 100644 --- a/apps/www/data/Pricing.json +++ b/apps/www/data/Pricing.json @@ -5,7 +5,9 @@ "features": [ { "title": "Dedicated Postgres Database", - "tooltip": "A Postgres database with no restrictions? You get it. No pseudo limited users, you are the postgres root user. No caveats.", + "tooltips": { + "main": "A Postgres database with no restrictions? You get it. No pseudo limited users, you are the postgres root user. No caveats." + }, "tiers": { "free": true, "pro": true, @@ -24,20 +26,25 @@ }, { "title": "Database space", + "tooltips": { + "pro": "8 GB included, then $0.125 per GB" + }, "tiers": { - "free": "Up to 500 MB", - "pro": "8 GB included, then $0.125 per GB", + "free": "500 MB", + "pro": "8 GB", "team": "text", "enterprise": "Unlimited" } }, { "title": "Automatic backups", - "tooltip": "Backups are entire copies of your database that can be restored in the future.", - "tooltipPosition": "pro", + "tooltips": { + "main": "Backups are entire copies of your database that can be restored in the future.", + "pro": "7 days of backup (if > 1TB, contact for Enterprise pricing)" + }, "tiers": { "free": false, - "pro": "7 days of backup* (* if > 1TB, contact enterprise)", + "pro": "7 days", "team": "text", "enterprise": "Custom" } @@ -53,9 +60,11 @@ }, { "title": "Pausing", - "tooltip": "Projects that have no activity or API requests will be paused. They can be reactivated via the dashboard", + "tooltips": { + "main": "Projects that have no activity or API requests will be paused. They can be reactivated via the dashboard" + }, "tiers": { - "free": "Paused after 1 week inactivity", + "free": "After 1 inactive week", "pro": "Never", "team": "text", "enterprise": "Never" @@ -63,10 +72,13 @@ }, { "title": "Database egress", - "tooltip": "Good news, only download operations are counted towards the limit", + "tooltips": { + "main": "Good news, only download operations are counted towards the limit", + "pro": "50GB included per month, then $0.09 per GB" + }, "tiers": { - "free": "Up to 2GB", - "pro": "50GB included per month, then $0.09 per GB", + "free": "2GB", + "pro": "50GB", "team": "text", "enterprise": "Unlimited" } @@ -79,7 +91,7 @@ "features": [ { "title": "Total Users", - "tooltip": "The maximum number of users your project can have", + "tooltips": { "main": "The maximum number of users your project can have" }, "tiers": { "free": "Unlimited", "pro": "Unlimited", @@ -89,10 +101,13 @@ }, { "title": "MAUs", - "tooltip": "Monthly Active Users; a user that has made an API request in the last month.", + "tooltips": { + "main": "Monthly Active Users; a user that has made an API request in the last month.", + "pro": "100,000 included, then $0.00325 per MAU" + }, "tiers": { - "free": "Up to 50,000 MAUs", - "pro": "100,000 included, then $0.00325 per MAU", + "free": "50,000", + "pro": "100,000", "team": "text", "enterprise": "Unlimited" } @@ -153,7 +168,7 @@ }, { "title": "Supabase Auth emails", - "tooltip": "Rate limits do not apply to Custom SMTP", + "tooltips": { "main": "Rate limits do not apply to Custom SMTP" }, "tiers": { "free": "30 / hour", "pro": "100 / hour", @@ -175,22 +190,27 @@ "storage": { "title": "Storage", "icon": "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4", + "features": [ { "title": "Storage", + "tooltips": { "pro": "100 GB included, then $0.021 per GB" }, "tiers": { - "free": "Up to 1 GB", - "pro": "100 GB included, then $0.021 per GB", + "free": "1 GB", + "pro": "100 GB", "team": "text", "enterprise": "Unlimited" } }, { "title": "Storage egress", - "tooltip": "Good news, only download operations are counted towards the limit", + "tooltips": { + "main": "Good news, only download operations are counted towards the limit", + "pro": "200 GB included, then $0.09 per GB" + }, "tiers": { - "free": "Up to 2 GB", - "pro": "200 GB included, then $0.09 per GB", + "free": "2 GB", + "pro": "200 GB", "team": "text", "enterprise": "Unlimited" } @@ -205,19 +225,20 @@ }, { "title": "Max file upload size", - "tooltip": "You can change the upload size in the dashboard", + "tooltips": { "main": "You can change the upload size in the dashboard" }, "tiers": { - "free": "Up to 50MB", - "pro": "Up to 5GB", + "free": "50MB", + "pro": "5GB", "team": "text", "enterprise": "Unlimited" } }, { "title": "Asset transformations", + "tooltips": { "pro": "5$ per 1000 origin images after the first 100" }, "tiers": { "free": false, - "pro": "Unlimited transformations for 100 origin images, then 5$ per 1000 origin images", + "pro": "Unlimited for 100 origin images", "team": "text", "enterprise": "Unlimited" } @@ -230,9 +251,12 @@ "features": [ { "title": "Invocations", + "tooltips": { + "pro": "2 Million per month, then $2 per 1 million invocations" + }, "tiers": { - "free": "500K per month", - "pro": "2 Million per month, then $2 per 1 million invocations", + "free": "500K/month", + "pro": "2 Million/month", "team": "text", "enterprise": "Unlimited" } @@ -240,17 +264,20 @@ { "title": "Script size", "tiers": { - "free": "2 mb", - "pro": "10 mb", + "free": "2 MB", + "pro": "10 MB", "team": "text", "enterprise": "Unlimited" } }, { "title": "Number of functions", + "tooltips": { + "pro": "100, then $10 per additional 100 functions" + }, "tiers": { "free": "10", - "pro": "100, then $10 per additional 100 functions", + "pro": "100", "team": "text", "enterprise": "Unlimited" } @@ -272,17 +299,23 @@ }, { "title": "Concurrent Peak Connections", + "tooltips": { + "pro": "Up to 500, then $10 per 1000" + }, "tiers": { - "free": "Up to 200", - "pro": "Up to 500, then $10 per 1000", + "free": "200", + "pro": "500", "team": "text", "enterprise": "Unlimited concurrent connections and volume discount" } }, { "title": "Max Messages Per Month", + "tooltips": { + "free": "2 Million (including database)" + }, "tiers": { - "free": "2 Million (including database)", + "free": "2 Million", "pro": "5 Million", "team": "text", "enterprise": "Volume discounts on messages" @@ -291,8 +324,8 @@ { "title": "Max Message Size", "tiers": { - "free": "250 Kb", - "pro": "3 Mb", + "free": "250 KB", + "pro": "3 MB", "team": "text", "enterprise": "Custom" } @@ -419,12 +452,15 @@ }, { "title": "Custom Domains", - "tooltip": "Contact us to access this feature", + "tooltips": { + "main": "Contact us to access this feature", + "enterprise": "Volume discounts available." + }, "tiers": { "free": false, "pro": "$10 per domain per month per project add on", "team": "text", - "enterprise": "1 included, additional custom domains $10 per custom domain per month. Volume discounts available." + "enterprise": "1 included, additional $10/domain/month" } } ] diff --git a/apps/www/data/PricingAddOnTable.json b/apps/www/data/PricingAddOnTable.json index e20da275960..031f8ecbe74 100644 --- a/apps/www/data/PricingAddOnTable.json +++ b/apps/www/data/PricingAddOnTable.json @@ -16,11 +16,7 @@ { "key": "dedicated", "title": "Dedicated", "value": false }, { "key": "memory", "title": "Memory", "value": "1 GB" }, { "key": "maxDiskIO", "title": "Disk IO Bandwidth up to", "value": "2,606 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "87 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct", @@ -41,11 +37,7 @@ { "key": "dedicated", "title": "Dedicated", "value": false }, { "key": "memory", "title": "Memory", "value": "2 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "174 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -66,11 +58,7 @@ { "key": "dedicated", "title": "Dedicated", "value": false }, { "key": "memory", "title": "Memory", "value": "4 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "2,606 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "347 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -91,11 +79,7 @@ { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "8 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "630 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -116,11 +100,7 @@ { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "16 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "1,188 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -141,11 +121,7 @@ { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "32 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "2,375 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -166,11 +142,7 @@ { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "64 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "4,750 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "4,750 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -191,11 +163,7 @@ { "key": "dedicated", "title": "Dedicated", "value": true }, { "key": "memory", "title": "Memory", "value": "128 GB" }, { "key": "maxDiskIO", "title": "Maximum Disk IO Bandwidth", "value": "9,500 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "9,500 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -220,11 +188,7 @@ "title": "Maximum Disk IO Bandwidth", "value": "14,250 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "14,250 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", @@ -249,11 +213,7 @@ "title": "Maximum Disk IO Bandwidth", "value": "19,000 Mbps" }, - { - "key": "baseDiskIO", - "title": "Baseline Disk IO Bandwidth", - "value": "19,000 Mbps" - }, + { "key": "directConnections", "title": "Connections: Direct (recommended)", diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 89c21f0ffec..67aa7f80c60 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -145,18 +145,6 @@ export default function IndexPage() { rightCtaText: 'See Pricing breakdown', rightCtaLink: '#open-modal', }, - { - name: 'Dedicated Support', - heroImg: 'addons-support', - icon: 'support-upgrade', - price: 'Starts from $5', - description: - 'Your own team who can help you with your account and any technical issues you might come across.', - leftCtaText: 'Documentation', - leftCtaLink: 'http://.....', - rightCtaText: 'Contact Sales', - rightCtaLink: 'http://', - }, { name: 'Custom Domain', heroImg: 'addons-custom-domain-hero', @@ -263,6 +251,7 @@ export default function IndexPage() {
{tiers.map((tier) => (
-
+
{addons.map((addon) => ( -
+
-
+
Available for Pro plan

Flexible Spend Cap

-

+

Ensure you have the flexibility to scale your business without the restrictions of Pro usage limits. Turn off the usage cap to let your project scale and only pay for what - you use.{' '} + you use.

-
right
+
+ +
-
+ {/*
} pricing={pricingAddOn.database} @@ -475,7 +467,7 @@ export default function IndexPage() { icon={} pricing={pricingAddOn.support} /> -
+
*/}
@@ -660,8 +652,9 @@ export default function IndexPage() { {tiers.map((tier) => (

{tier.name} @@ -684,6 +677,7 @@ export default function IndexPage() {

{tier.description}

{tiers.map((tier) => ( - +
{tier.priceMonthly && ( diff --git a/apps/www/public/images/pricing/compute-upgrade-green.svg b/apps/www/public/images/pricing/compute-upgrade-green.svg new file mode 100644 index 00000000000..4f3520fd0d5 --- /dev/null +++ b/apps/www/public/images/pricing/compute-upgrade-green.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/apps/www/public/images/pricing/spend-cap.svg b/apps/www/public/images/pricing/spend-cap.svg new file mode 100644 index 00000000000..7078422fb38 --- /dev/null +++ b/apps/www/public/images/pricing/spend-cap.svg @@ -0,0 +1 @@ + \ No newline at end of file From 53ca3988e57a1c5dfc5ffc73232bb84ff5442311 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Fri, 20 Jan 2023 15:18:20 -0330 Subject: [PATCH 06/39] Update --- .../Pricing/ComputePricingModal.tsx | 5 +- .../components/Pricing/PricingTableRow.tsx | 12 +- apps/www/components/ProductIcon.tsx | 7 +- apps/www/data/Pricing.json | 94 +++--- apps/www/pages/pricing/index.tsx | 152 +++++----- .../images/pricing/compute-upgrade-green.svg | 14 +- .../public/images/pricing/spend-cap-light.svg | 271 ++++++++++++++++++ apps/www/styles/index.css | 2 +- 8 files changed, 416 insertions(+), 141 deletions(-) create mode 100644 apps/www/public/images/pricing/spend-cap-light.svg diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index d88a622361a..2c497a334b2 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -10,6 +10,7 @@ interface Props { export default function ComputePricingModal({ showComputeModal, setShowComputeModal }: Props) { const { basePath } = useRouter() + const { isDarkMode } = useTheme() const columnNames = useMemo( () => pricingAddOn.database.rows.map((row) => @@ -42,7 +43,9 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo
diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index b8b5a314358..925bd2c9454 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -5,7 +5,7 @@ import ReactTooltip from 'react-tooltip' export const Check = () => ( { style={{ borderTop: 'none' }} >
@@ -62,10 +62,10 @@ export const PricingTableRowDesktop = (props: any) => {

{category.title}

- - - - + + + + {category.features.map((feat: any, i: number) => { diff --git a/apps/www/components/ProductIcon.tsx b/apps/www/components/ProductIcon.tsx index fa2240071a4..894c7ea5117 100644 --- a/apps/www/components/ProductIcon.tsx +++ b/apps/www/components/ProductIcon.tsx @@ -9,11 +9,14 @@ function ProductIcon({ icon, color }: ProductIcon) { className={[ 'inline-flex h-8 w-8 items-center justify-center rounded-md', !color || color === 'black' ? 'bg-scale-1200 text-scale-100' : '', - color && color === 'green' ? 'bg-brand-800 text-brand-100' : '', + color && color === 'green' ? 'bg-brand-800 dark:bg-brand-600 text-brand-100' : '', ].join(' ')} > { return (
-

{tier}

+

+ {tier} +

{from && From} - - {showDollarSign && '$'} - {price} - + {showDollarSign ? ( + ${price} + ) : ( + {price} + )} +

{priceDescription}

{description}

@@ -248,12 +252,14 @@ export default function IndexPage() { lg:px-8 " > -
+
{tiers.map((tier) => (
{tier.name === 'Pro' && ( @@ -279,20 +285,22 @@ export default function IndexPage() { )}
-

{tier.description}

-
+ {tier.description} +

+ + {tier.name !== 'Enterprise' && ( +
- {tier.priceMonthly !== undefined ? ( + >
@@ -300,8 +308,7 @@ export default function IndexPage() { {tier.priceLabel}

- {typeof tier.priceMonthly !== 'string' && '$'} - {tier.priceMonthly} + ${tier.priceMonthly}

{tier.costUnit && (

{tier.costUnit}

@@ -315,31 +322,21 @@ export default function IndexPage() {
- ) : ( - Contact Us - )} -
+
+ )}
{tier.preface && ( -

{tier.preface}

+

{tier.preface}

)} {/*

Included with plan:

*/}
    {tier.features.map((feature) => (
  • @@ -388,7 +385,7 @@ export default function IndexPage() {

-
+
{addons.map((addon) => (
@@ -399,7 +396,7 @@ export default function IndexPage() { }.svg`} />
-
+

{addon.price}

{addon.description}

- -
+
Available for Pro plan -

Flexible Spend Cap

+

Cost control with spend caps

- Ensure you have the flexibility to scale your business without the restrictions of Pro - usage limits. Turn off the usage cap to let your project scale and only pay for what - you use. + The Pro tier has a usage quota included and a spend cap turned on by default. If you + need to go beyond the inclusive limits, simply switch off your spend cap to pay for + additional usage.

- +
@@ -637,10 +637,10 @@ export default function IndexPage() {
- + {tiers.map((tier) => (
Pricing plan comparison
Feature by @@ -652,7 +652,7 @@ export default function IndexPage() { {tiers.map((tier) => ( @@ -669,13 +669,13 @@ export default function IndexPage() {
@@ -698,7 +698,7 @@ export default function IndexPage() {
- {tier.priceMonthly && ( + {tier.name !== 'Enterprise' && ( <> ${tier.priceMonthly} diff --git a/apps/www/public/images/pricing/compute-upgrade-green.svg b/apps/www/public/images/pricing/compute-upgrade-green.svg index 4f3520fd0d5..e8b6258fb32 100644 --- a/apps/www/public/images/pricing/compute-upgrade-green.svg +++ b/apps/www/public/images/pricing/compute-upgrade-green.svg @@ -1,9 +1,7 @@ - - - - - - - - + + + + + + diff --git a/apps/www/public/images/pricing/spend-cap-light.svg b/apps/www/public/images/pricing/spend-cap-light.svg new file mode 100644 index 00000000000..dd604f1e5ce --- /dev/null +++ b/apps/www/public/images/pricing/spend-cap-light.svg @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/www/styles/index.css b/apps/www/styles/index.css index 585cc7cfb1e..c76b18851d6 100644 --- a/apps/www/styles/index.css +++ b/apps/www/styles/index.css @@ -674,7 +674,7 @@ launch week } .gradient-text-scale-100 { - background-image: -webkit-linear-gradient(45deg, #fff 0%, var(--colors-green4) 100%); + background-image: -webkit-linear-gradient(45deg, #fff 0%, var(--colors-green12) 100%); } .gradient-text-scale-500 { From 65b78c164e2f844cbdba79899258f5892b70f65e Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Fri, 20 Jan 2023 15:46:19 -0330 Subject: [PATCH 07/39] Update mobile header --- apps/www/pages/pricing/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index b52dfe77ffc..c103257e777 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -536,7 +536,7 @@ export default function IndexPage() { {/* Pro - Mobile */} Date: Fri, 20 Jan 2023 15:51:28 -0330 Subject: [PATCH 08/39] Update pricing.json --- apps/www/data/Pricing.json | 52 +++----------------------------------- 1 file changed, 4 insertions(+), 48 deletions(-) diff --git a/apps/www/data/Pricing.json b/apps/www/data/Pricing.json index 24d2e3e51da..3de5edaa2d8 100644 --- a/apps/www/data/Pricing.json +++ b/apps/www/data/Pricing.json @@ -11,7 +11,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -20,7 +19,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -32,7 +30,6 @@ "tiers": { "free": "500 MB", "pro": "8 GB", - "enterprise": "Unlimited" } }, @@ -45,16 +42,17 @@ "tiers": { "free": false, "pro": "7 days", - "enterprise": "Custom" } }, { "title": "Point in time recovery", + "tooltips": { + "main": "PITR cannot be applied retroactively, projects can only be rolled back to the point from which PITR has been applied." + }, "tiers": { "free": false, - "pro": false, - + "pro": "$100 per 7 day rollback period (if > 28 days, contact enterprise)", "enterprise": true } }, @@ -66,7 +64,6 @@ "tiers": { "free": "After 1 inactive week", "pro": "Never", - "enterprise": "Never" } }, @@ -79,7 +76,6 @@ "tiers": { "free": "2GB", "pro": "50GB", - "enterprise": "Unlimited" } } @@ -95,7 +91,6 @@ "tiers": { "free": "Unlimited", "pro": "Unlimited", - "enterprise": "Unlimited" } }, @@ -108,7 +103,6 @@ "tiers": { "free": "50,000", "pro": "100,000", - "enterprise": "Unlimited" } }, @@ -117,7 +111,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -126,7 +119,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -135,7 +127,6 @@ "tiers": { "free": false, "pro": true, - "enterprise": true } }, @@ -144,7 +135,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -153,7 +143,6 @@ "tiers": { "free": "1 hour", "pro": "7 days", - "enterprise": true } }, @@ -162,7 +151,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -172,7 +160,6 @@ "tiers": { "free": "30 / hour", "pro": "100 / hour", - "enterprise": "Contact Us" } }, @@ -181,7 +168,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": "Contact Us" } } @@ -198,7 +184,6 @@ "tiers": { "free": "1 GB", "pro": "100 GB", - "enterprise": "Unlimited" } }, @@ -211,7 +196,6 @@ "tiers": { "free": "2 GB", "pro": "200 GB", - "enterprise": "Unlimited" } }, @@ -229,7 +213,6 @@ "tiers": { "free": "50MB", "pro": "5GB", - "enterprise": "Unlimited" } }, @@ -239,7 +222,6 @@ "tiers": { "free": false, "pro": "Unlimited for 100 origin images", - "enterprise": "Unlimited" } } @@ -257,7 +239,6 @@ "tiers": { "free": "500K/month", "pro": "2 Million/month", - "enterprise": "Unlimited" } }, @@ -266,7 +247,6 @@ "tiers": { "free": "2 MB", "pro": "10 MB", - "enterprise": "Unlimited" } }, @@ -278,7 +258,6 @@ "tiers": { "free": "10", "pro": "100", - "enterprise": "Unlimited" } } @@ -293,7 +272,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -305,7 +283,6 @@ "tiers": { "free": "200", "pro": "500", - "enterprise": "Unlimited concurrent connections and volume discount" } }, @@ -317,7 +294,6 @@ "tiers": { "free": "2 Million", "pro": "5 Million", - "enterprise": "Volume discounts on messages" } }, @@ -326,7 +302,6 @@ "tiers": { "free": "250 KB", "pro": "3 MB", - "enterprise": "Custom" } } @@ -341,7 +316,6 @@ "tiers": { "free": "Unlimited", "pro": "Unlimited", - "enterprise": "Unlimited" } }, @@ -350,7 +324,6 @@ "tiers": { "free": "Coming soon", "pro": "Coming soon", - "enterprise": true } }, @@ -359,7 +332,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } } @@ -374,7 +346,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -383,7 +354,6 @@ "tiers": { "free": "1 day", "pro": "7 days", - "enterprise": "90 days" } }, @@ -392,7 +362,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": "Coming soon" } }, @@ -401,7 +370,6 @@ "tiers": { "free": false, "pro": true, - "enterprise": true } }, @@ -410,7 +378,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -419,7 +386,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": "Contact Us" } }, @@ -428,7 +394,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -437,7 +402,6 @@ "tiers": { "free": "Owner, Developer", "pro": "Owner, Developer", - "enterprise": "Additional owner(s), admin, read-only, billing admin, custom" } }, @@ -446,7 +410,6 @@ "tiers": { "free": false, "pro": true, - "enterprise": true } }, @@ -459,7 +422,6 @@ "tiers": { "free": false, "pro": "$10 per domain per month per project add on", - "enterprise": "1 included, additional $10/domain/month" } } @@ -474,7 +436,6 @@ "tiers": { "free": true, "pro": true, - "enterprise": true } }, @@ -483,7 +444,6 @@ "tiers": { "free": false, "pro": true, - "enterprise": true } }, @@ -492,7 +452,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -501,7 +460,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -518,7 +476,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } }, @@ -527,7 +484,6 @@ "tiers": { "free": false, "pro": false, - "enterprise": true } } From c2637879a00cdb4be78d332eded2a14c493ef47e Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 23 Jan 2023 11:36:36 -0330 Subject: [PATCH 09/39] Updates --- .../Pricing/ComputePricingModal.tsx | 2 +- .../components/Pricing/PricingTableRow.tsx | 2 +- apps/www/pages/pricing/index.tsx | 38 +++++++++---------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index 2c497a334b2..18605613266 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -39,7 +39,7 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo
-
+
( { return (
-

+

{tier}

@@ -228,7 +228,7 @@ export default function IndexPage() { }} /> -
+
@@ -258,7 +258,7 @@ export default function IndexPage() { key={`row-${tier.name}`} className={[ tier.name === 'Pro' - ? 'bg-brand-800 dark:bg-brand-900 border px-0.5 -mt-8 rounded-xl' + ? 'bg-brand-1100 dark:bg-brand-900 border px-0.5 -mt-8 rounded-xl' : '', ].join(' ')} > @@ -269,13 +269,16 @@ export default function IndexPage() { key={tier.name} className={[ 'flex flex-col overflow-hidden rounded-xl', - tier.name === 'Pro' ? '' : 'border h-full', + tier.name === 'Pro' ? '' : 'border h-full rounded-xl', ].join(' ')} >
-

+

{tier.name}

{tier.nameBadge && ( @@ -326,18 +329,17 @@ export default function IndexPage() { )}
{tier.preface && (

{tier.preface}

)} {/*

Included with plan:

*/} -
-
+

Easily customizable add-Ons

From acf7e288ef6fd19c30c5bd9e61492adf5225ec32 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 24 Jan 2023 12:00:48 -0330 Subject: [PATCH 13/39] Svg fix --- apps/www/components/Pricing/PricingTableRow.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index 0ef11772df2..90e8979b897 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -7,9 +7,9 @@ export const Check = () => ( ) @@ -32,9 +32,9 @@ const Minus = (props: any) => ( > Not included in {props.tier} @@ -52,9 +52,9 @@ const InfoIcon = () => ( > Info From 258b8380e40478dcbe5c79891268118b44fd7a2c Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 24 Jan 2023 12:56:55 -0330 Subject: [PATCH 14/39] update --- apps/www/components/Pricing/PricingTableRow.tsx | 2 +- apps/www/pages/pricing/index.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index 90e8979b897..799d9113597 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -71,7 +71,7 @@ export const PricingTableRowDesktop = (props: any) => { style={{ borderTop: 'none' }} >
diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index dba00ba6ba3..65845d775a0 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -453,7 +453,7 @@ export default function IndexPage() { Available for Pro plan

Cost control with spend caps

-

+

The Pro tier has a usage quota included and a spend cap turned on by default. If you need to go beyond the inclusive limits, simply switch off your spend cap to pay for additional usage. @@ -711,7 +711,7 @@ export default function IndexPage() { {tier.warning && (

- + {tier.warning}

From 4f6f4469c039e9d362e6609c3edd5f780ed6031b Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 24 Jan 2023 13:11:23 -0330 Subject: [PATCH 15/39] Style updates --- apps/www/pages/pricing/index.tsx | 2 +- apps/www/styles/index.css | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 65845d775a0..4984c6df414 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -258,7 +258,7 @@ export default function IndexPage() { key={`row-${tier.name}`} className={[ tier.name === 'Pro' - ? 'bg-brand-1100 dark:bg-brand-900 border px-0.5 -mt-8 rounded-xl' + ? 'bg-brand-1100 dark:bg-brand-900 border px-0.5 -mt-8 rounded-[14px]' : '', ].join(' ')} > diff --git a/apps/www/styles/index.css b/apps/www/styles/index.css index c76b18851d6..ebebd43fc00 100644 --- a/apps/www/styles/index.css +++ b/apps/www/styles/index.css @@ -665,6 +665,13 @@ launch week background-clip: text; -webkit-text-fill-color: transparent; } + +[class*='gradient-text-']::selection { + background-color: var(--colors-brand9); + background-clip: unset; + -webkit-text-fill-color: white; +} + @layer utilities { .gradient-text-brand-100 { background-image: linear-gradient(45deg, var(--colors-brand8) 0%, var(--colors-brand9) 100%); From 552bde0302ff5e8be175d260b4ef3e1ca74b86b2 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 30 Jan 2023 13:48:33 -0330 Subject: [PATCH 16/39] Add mobile plan switcher --- apps/www/pages/pricing/index.tsx | 327 +++++++++++---------- packages/ui/src/lib/theme/defaultTheme.ts | 328 +++++++++++----------- 2 files changed, 341 insertions(+), 314 deletions(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 4984c6df414..936a73aacbc 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -1,5 +1,5 @@ import { ServerIcon, SupportIcon } from '@heroicons/react/outline' -import { Accordion, Button, IconCheck } from 'ui' +import { Accordion, Button, IconCheck, Select } from 'ui' import Solutions from 'data/Solutions.json' import { NextSeo } from 'next-seo' import Link from 'next/link' @@ -21,6 +21,7 @@ export default function IndexPage() { const { basePath } = useRouter() const { isDarkMode } = useTheme() const [showComputeModal, setShowComputeModal] = useState(false) + const [activeMobileTier, setActiveMobileTier] = useState('Free') const meta_title = 'Pricing & fees | Supabase' const meta_description = @@ -170,7 +171,7 @@ export default function IndexPage() { }, ] - const MobileHeaders = ({ + const MobileHeader = ({ // title, description, priceDescription, @@ -187,7 +188,7 @@ export default function IndexPage() { from?: boolean }) => { return ( -
+

{tier}

@@ -391,7 +392,7 @@ export default function IndexPage() {

Easily customizable add-Ons

-

+

Level up your Supabase experience with add-ons.

@@ -476,7 +477,7 @@ export default function IndexPage() {

Compare Plans

-

+

Start with a hobby project, collaborate with a team, and scale to millions of users.

@@ -486,153 +487,179 @@ export default function IndexPage() {
{/* Free - Mobile */} +
+
+ + +
+
+ {activeMobileTier === 'Free' && ( + <> + + + + + + + + + + + )} - + {activeMobileTier === 'Pro' && ( + <> + + + + + + + + + + + )} - - - - - - - - - - {/* Pro - Mobile */} - - - - - - - - - - - {/* Enterprise - Mobile */} - - - - - - - - - - + {activeMobileTier === 'Enterprise' && ( + <> + + + + + + + + + + + )}
{/* */} diff --git a/packages/ui/src/lib/theme/defaultTheme.ts b/packages/ui/src/lib/theme/defaultTheme.ts index 1265d536a10..cbab5e23dbd 100644 --- a/packages/ui/src/lib/theme/defaultTheme.ts +++ b/packages/ui/src/lib/theme/defaultTheme.ts @@ -117,9 +117,9 @@ export default { flex flex-row gap-3 items-center - w-full - text-left - cursor-pointer + w-full + text-left + cursor-pointer outline-none focus-visible:ring-1 @@ -143,27 +143,27 @@ export default { group border border-scale-700 - + first:rounded-tl-md first:rounded-tr-md last:rounded-bl-md last:rounded-br-md `, trigger: ` flex flex-row items-center - px-6 py-4 - w-full - text-left - cursor-pointer - - font-medium - text-base - bg-transparent + px-6 py-4 + w-full + text-left + cursor-pointer + + font-medium + text-base + bg-transparent outline-none focus-visible:ring-1 focus-visible:z-50 ring-scale-1100 - + transition-colors hover:bg-scale-200 @@ -252,8 +252,8 @@ export default { alert: { base: ` - relative rounded border py-4 px-6 - flex space-x-4 items-start + relative rounded border py-4 px-6 + flex space-x-4 items-start `, header: 'block text-sm font-normal mb-1', description: `text-xs`, @@ -290,11 +290,11 @@ export default { }, }, close: ` - absolute - right-6 top-4 - p-0 m-0 + absolute + right-6 top-4 + p-0 m-0 text-scale-900 - cursor-pointer transition ease-in-out + cursor-pointer transition ease-in-out bg-transparent border-transparent focus:outline-none opacity-50 hover:opacity-100`, }, @@ -306,15 +306,15 @@ export default { card: { base: ` bg-white dark:bg-scaleDark-700 - - border - ${defaults.border.primary} - flex flex-col + border + ${defaults.border.primary} + + flex flex-col rounded-md shadow-lg overflow-hidden relative `, hoverable: 'transition hover:-translate-y-1 hover:shadow-2xl', - head: `px-8 py-6 flex justify-between + head: `px-8 py-6 flex justify-between border-b ${defaults.border.primary} `, content: 'p-8', @@ -328,20 +328,20 @@ export default { base: `w-full justify-between space-y-4`, underlined: { list: ` - flex items-center border-b + flex items-center border-b ${defaults.border.secondary} `, - base: ` - relative - cursor-pointer - text-scale-900 - flex - items-center + base: ` + relative + cursor-pointer + text-scale-900 + flex + items-center space-x-2 - text-center + text-center transition - focus:outline-none - focus-visible:ring + focus:outline-none + focus-visible:ring focus-visible:ring-scale-700 focus-visible:border-scale-900 `, @@ -355,18 +355,18 @@ export default { }, pills: { list: 'flex space-x-1', - base: ` - relative - cursor-pointer - flex - items-center + base: ` + relative + cursor-pointer + flex + items-center space-x-2 - text-center + text-center transition shadow-sm rounded - focus:outline-none - focus-visible:ring + focus:outline-none + focus-visible:ring focus-visible:ring-scale-700 focus-visible:border-scale-900 `, @@ -378,23 +378,23 @@ export default { active: ` bg-scale-1200 text-scale-200 - border-scale-1200 + border-scale-1200 `, }, 'rounded-pills': { list: 'flex flex-wrap gap-2', - base: ` - relative - cursor-pointer - flex - items-center + base: ` + relative + cursor-pointer + flex + items-center space-x-2 - text-center + text-center transition shadow-sm rounded-full - focus:outline-none - focus-visible:ring + focus:outline-none + focus-visible:ring focus-visible:ring-scale-700 focus-visible:border-scale-900 `, @@ -406,7 +406,7 @@ export default { active: ` bg-scale-1200 text-scale-200 - border-scale-1200 + border-scale-1200 `, }, block: 'w-full flex items-center justify-center', @@ -427,15 +427,15 @@ export default { button: { base: ` - relative - cursor-pointer - inline-flex items-center space-x-2 - text-center + relative + cursor-pointer + inline-flex items-center space-x-2 + text-center font-regular - transition ease-out duration-200 - rounded + transition ease-out duration-200 + rounded ${defaults['focus-visible']} - + `, label: `truncate`, container: 'inline-flex font-medium', @@ -449,7 +449,7 @@ export default { secondary: ` bg-scale-1200 text-scale-100 hover:text-scale-800 - focus-visible:text-scale-600 + focus-visible:text-scale-600 bordershadow-scale-1100 hover:bordershadow-scale-900 @@ -462,7 +462,7 @@ export default { dark:bordershadow-scale-700 hover:dark:bordershadow-scale-800 dark:bg-scale-500 dark:hover:bg-scale-600 focus-visible:outline-brand-600 - + `, alternative: ` text-brand-1100 @@ -473,14 +473,14 @@ export default { focus-visible:outline-brand-600 `, outline: ` - text-scale-1200 - bg-transparent + text-scale-1200 + bg-transparent bordershadow-scale-600 hover:bordershadow-scale-700 dark:bordershadow-scale-800 hover:dark:bordershadow-scale-900 focus-visible:outline-scale-700 `, dashed: ` - text-scale-1200 + text-scale-1200 border border-dashed border-scale-700 hover:border-scale-900 @@ -498,7 +498,7 @@ export default { focus-visible:outline-scale-700 `, text: ` - text-scale-1200 + text-scale-1200 hover:bg-scale-500 shadow-none focus-visible:outline-scale-700 @@ -538,13 +538,13 @@ export default { input: { base: ` - block - box-border - w-full - rounded-md - shadow-sm + block + box-border + w-full + rounded-md + shadow-sm transition-all - text-scale-1200 + text-scale-1200 border focus:shadow-md ${defaults.focus} @@ -559,7 +559,7 @@ export default { `, error: ` bg-red-100 - border border-red-700 + border border-red-700 focus:ring-red-500 placeholder:text-red-600 `, @@ -581,13 +581,13 @@ export default { select: { base: ` - block - box-border - w-full - rounded-md - shadow-sm + block + box-border + w-full + rounded-md + shadow-sm transition-all - text-scale-1200 + text-scale-1200 border focus:shadow-md ${defaults.focus} @@ -605,7 +605,7 @@ export default { `, error: ` bg-red-100 - border border-red-700 + border border-red-700 focus:ring-red-500 placeholder:text-red-600 `, @@ -618,7 +618,7 @@ export default { disabled: 'opacity-50', actions_container: 'absolute inset-y-0 right-0 pl-3 pr-1 mr-5 flex items-center', chevron_container: 'absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none', - chevron: 'h-5 w-5 text-scale-600', + chevron: 'h-5 w-5 text-scale-800', }, /* @@ -628,12 +628,12 @@ export default { inputNumber: { base: ` block - box-border - w-full - rounded-md - shadow-sm + box-border + w-full + rounded-md + shadow-sm transition-all - text-scale-1200 + text-scale-1200 border focus:shadow-md ${defaults.focus} @@ -651,7 +651,7 @@ export default { `, error: ` bg-red-100 - border border-red-700 + border border-red-700 focus:ring-red-500 placeholder:text-red-600 `, @@ -668,9 +668,9 @@ export default { /* * Checkbox * - * + * * This Checkbox requires a plugin in your config: - + ``` // tailwind.config.js module.exports = { @@ -681,17 +681,17 @@ export default { ], } ``` - * - * + * + * */ checkbox: { base: ` - bg-transparent + bg-transparent ${defaults.focus} focus:ring-scale-400 - text-brand-900 - border-scale-700 + text-brand-900 + border-scale-700 shadow-sm rounded cursor-pointer @@ -727,9 +727,9 @@ export default { /* * Radio * - * + * * This Radio requires a plugin in your config: - + ``` // tailwind.config.js module.exports = { @@ -740,8 +740,8 @@ export default { ], } ``` - * - * + * + * */ radio: { @@ -750,7 +750,7 @@ export default { ${defaults.focus} focus:ring-brand-400 border-scale-700 - + text-brand-900 shadow-sm cursor-pointer @@ -797,7 +797,7 @@ export default { `, active: ` bg-scale-300 dark:bg-scale-600 z-10 - border-scale-900 dark:border-scale-900 + border-scale-900 dark:border-scale-900 border-1 `, radio_offset: 'left-4', @@ -816,7 +816,7 @@ export default { transition rounded-md border - shadow-sm + shadow-sm `, size: { tiny: `px-5 py-3`, @@ -833,7 +833,7 @@ export default { `, active: ` bg-scale-300 dark:bg-scale-600 z-10 - border-scale-900 dark:border-scale-900 + border-scale-900 dark:border-scale-900 border-1 `, radio_offset: 'left-4', @@ -849,9 +849,9 @@ export default { }, group: `flex flex-row gap-3`, base: ` - transition + transition border - rounded-lg + rounded-lg grow items-center flex-wrap @@ -888,10 +888,10 @@ export default { }, group: `flex flex-row gap-3`, base: ` - transition - border border-scale-700 hover:border-scale-900 + transition + border border-scale-700 hover:border-scale-900 shadow-sm - rounded-lg + rounded-lg grow `, size: { @@ -909,7 +909,7 @@ export default { `, active: ` bg-scale-300 dark:bg-scale-600 z-10 - border-scale-900 dark:border-scale-900 + border-scale-900 dark:border-scale-900 border-1 `, radio_offset: 'left-4', @@ -969,21 +969,21 @@ export default { sidepanel: { base: ` bg-scale-100 dark:bg-scale-300 - flex flex-col - fixed - inset-y-0 - max-w-full + flex flex-col + fixed + inset-y-0 + max-w-full h-screen border-l border-overlay-border shadow-xl `, header: ` - space-y-1 py-4 px-4 bg-overlay-bg sm:px-6 + space-y-1 py-4 px-4 bg-overlay-bg sm:px-6 border-b border-overlay-border `, contents: ` - relative - flex-1 + relative + flex-1 overflow-y-auto `, content: ` @@ -1002,12 +1002,12 @@ export default { align: { left: ` left-0 - data-open:animate-panel-slide-left-out + data-open:animate-panel-slide-left-out data-closed:animate-panel-slide-left-in `, right: ` right-0 - data-open:animate-panel-slide-right-out + data-open:animate-panel-slide-right-out data-closed:animate-panel-slide-right-in `, }, @@ -1023,9 +1023,9 @@ export default { dark:bg-scale-100 h-full w-full left-0 - top-0 + top-0 opacity-75 - data-closed:animate-fade-out-overlay-bg + data-closed:animate-fade-out-overlay-bg data-open:animate-fade-in-overlay-bg `, // this is to reset the button @@ -1041,10 +1041,10 @@ export default { toggle: { base: ` - p-0 relative - inline-flex flex-shrink-0 - border-2 border-transparent - rounded-full + p-0 relative + inline-flex flex-shrink-0 + border-2 border-transparent + rounded-full cursor-pointer transition-colors ease-in-out duration-200 ${defaults.focus} @@ -1054,8 +1054,8 @@ export default { hover:bg-scale-700 `, active: ` - bg-brand-900 - hover:bg-brand-900 + bg-brand-900 + hover:bg-brand-900 `, handle_container: { tiny: 'h-4 w-7', @@ -1066,12 +1066,12 @@ export default { }, handle: { base: ` - inline-block h-5 w-5 - rounded-full + inline-block h-5 w-5 + rounded-full bg-scale-100 dark:bg-scale-900 - shadow ring-0 - transition + shadow ring-0 + transition ease-in-out duration-200 `, tiny: 'h-3 w-3', @@ -1159,7 +1159,7 @@ export default { }, error: { base: ` - text-red-900 + text-red-900 transition-all data-show:mt-2 data-show:animate-slide-down-normal @@ -1187,7 +1187,7 @@ export default { trigger: ` flex - border-none + border-none rounded bg-transparent p-0 outline-none @@ -1279,8 +1279,8 @@ export default { popover: { trigger: ` flex - border-none - + border-none + rounded bg-transparent p-0 @@ -1300,7 +1300,7 @@ export default { data-closed:animate-dropdown-content-hide min-w-fit - origin-popover + origin-popover data-open:animate-dropdown-content-show data-closed:animate-dropdown-content-hide `, @@ -1344,7 +1344,7 @@ export default { cursor-pointer flex space-x-3 items-center outline-none - focus-visible:ring-1 ring-scale-1200 focus-visible:z-10 + focus-visible:ring-1 ring-scale-1200 focus-visible:z-10 group `, content: { @@ -1415,7 +1415,7 @@ export default { }, group: { base: ` - flex space-x-3 + flex space-x-3 mb-2 font-normal `, @@ -1438,20 +1438,20 @@ export default { bg-scale-100 dark:bg-scale-300 my-4 border border-scale-300 dark:border-scale-500 - rounded-md - shadow-xl - data-open:animate-overlay-show - data-closed:animate-overlay-hide - + rounded-md + shadow-xl + data-open:animate-overlay-show + data-closed:animate-overlay-hide + `, header: ` bg-scale-200 dark:bg-scale-400 - space-y-1 py-3 px-4 sm:px-5 + space-y-1 py-3 px-4 sm:px-5 border-b border-scale-300 dark:border-scale-500 `, footer: ` flex justify-end gap-2 - py-3 px-5 + py-3 px-5 border-t border-scale-300 dark:border-scale-500 `, size: { @@ -1469,9 +1469,9 @@ export default { dark:bg-scale-100 h-full w-full left-0 - top-0 + top-0 opacity-75 - data-closed:animate-fade-out-overlay-bg + data-closed:animate-fade-out-overlay-bg data-open:animate-fade-in-overlay-bg `, scroll_overlay: ` @@ -1480,7 +1480,7 @@ export default { grid place-items-center overflow-y-auto - data-open:animate-overlay-show data-closed:animate-overlay-hide + data-open:animate-overlay-show data-closed:animate-overlay-hide `, separator: ` w-full @@ -1495,12 +1495,12 @@ export default { listbox: { base: ` - block - box-border - w-full - rounded-md - shadow-sm - text-scale-1200 + block + box-border + w-full + rounded-md + shadow-sm + text-scale-1200 border focus:shadow-md ${defaults.focus} @@ -1524,24 +1524,24 @@ export default { `, error: ` bg-red-100 - border border-red-700 + border border-red-700 focus:ring-red-500 placeholder:text-red-600 `, }, options_container_animate: ` transition - data-open:animate-slide-down + data-open:animate-slide-down data-open:opacity-1 data-closed:animate-slide-up data-closed:opacity-0 `, options_container: ` - bg-scale-100 dark:bg-scale-300 - shadow-lg - border border-solid - border-gray-100 dark:border-gray-600 max-h-60 - rounded-md py-1 text-base + bg-scale-100 dark:bg-scale-300 + shadow-lg + border border-solid + border-gray-100 dark:border-gray-600 max-h-60 + rounded-md py-1 text-base sm:text-sm z-10 overflow-hidden overflow-y-scroll origin-dropdown @@ -1561,7 +1561,7 @@ export default { chevron: 'h-5 w-5 text-scale-600', option: ` w-listbox - transition cursor-pointer select-none relative py-2 pl-3 pr-9 + transition cursor-pointer select-none relative py-2 pl-3 pr-9 text-scale-900 text-sm hover:bg-scale-300 dark:hover:bg-scale-500 @@ -1587,9 +1587,9 @@ export default { inputErrorIcon: { base: ` - flex items-center - right-3 pr-2 pl-2 - inset-y-0 + flex items-center + right-3 pr-2 pl-2 + inset-y-0 pointer-events-none text-red-900 `, @@ -1597,8 +1597,8 @@ export default { inputIconContainer: { base: ` - absolute inset-y-0 - left-0 pl-3 flex + absolute inset-y-0 + left-0 pl-3 flex items-center pointer-events-none text-scale-1100 `, From 8a7a50ae8b873e744bff681de43f1131b1051154 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 30 Jan 2023 13:58:26 -0330 Subject: [PATCH 17/39] Updates --- apps/www/pages/pricing/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 936a73aacbc..e369db9896a 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -230,7 +230,7 @@ export default function IndexPage() { />
-
+

From 46fae5e677abb9a7ef6cd8f82a6eaaf2d4c7d0e1 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 30 Jan 2023 17:16:10 -0330 Subject: [PATCH 18/39] Add link to feature req --- apps/docs/public/sitemap.xml | 350 ++++++++++++++++++++----------- apps/www/pages/pricing/index.tsx | 17 +- 2 files changed, 238 insertions(+), 129 deletions(-) diff --git a/apps/docs/public/sitemap.xml b/apps/docs/public/sitemap.xml index 2e86001d252..43126c6257b 100644 --- a/apps/docs/public/sitemap.xml +++ b/apps/docs/public/sitemap.xml @@ -6,12 +6,6 @@ 0.5 - - https://supabase.com/docs/getting-started - weekly - 0.5 - - https://supabase.com/docs/index weekly @@ -30,6 +24,12 @@ 0.5 + + https://supabase.com/docs/guides/cli + weekly + 0.5 + + https://supabase.com/docs/guides/database weekly @@ -90,12 +90,6 @@ 0.5 - - https://supabase.com/docs/guides/tutorials - weekly - 0.5 - - https://supabase.com/docs/handbook/contributing weekly @@ -108,24 +102,12 @@ 0.5 - - https://supabase.com/docs/new/auth - weekly - 0.5 - - https://supabase.com/docs/reference/index weekly 0.5 - - https://supabase.com/docs/tutorials/nextjs - weekly - 0.5 - - https://supabase.com/docs/guides/api/generating-types weekly @@ -204,6 +186,18 @@ 0.5 + + https://supabase.com/docs/guides/cli/local-development + weekly + 0.5 + + + + https://supabase.com/docs/guides/cli/managing-environments + weekly + 0.5 + + https://supabase.com/docs/guides/database/arrays weekly @@ -300,24 +294,54 @@ 0.5 - - https://supabase.com/docs/guides/functions/best-practices - weekly - 0.5 - - https://supabase.com/docs/guides/functions/cicd-workflow weekly 0.5 + + https://supabase.com/docs/guides/functions/cors + weekly + 0.5 + + + + https://supabase.com/docs/guides/functions/debugging + weekly + 0.5 + + + + https://supabase.com/docs/guides/functions/import-maps + weekly + 0.5 + + + + https://supabase.com/docs/guides/functions/local-development + weekly + 0.5 + + https://supabase.com/docs/guides/functions/quickstart weekly 0.5 + + https://supabase.com/docs/guides/functions/schedule-functions + weekly + 0.5 + + + + https://supabase.com/docs/guides/functions/secrets + weekly + 0.5 + + https://supabase.com/docs/guides/getting-started/architecture weekly @@ -390,6 +414,12 @@ 0.5 + + https://supabase.com/docs/guides/integrations/illa + weekly + 0.5 + + https://supabase.com/docs/guides/integrations/integrations weekly @@ -414,6 +444,12 @@ 0.5 + + https://supabase.com/docs/guides/integrations/picket + weekly + 0.5 + + https://supabase.com/docs/guides/integrations/plasmic weekly @@ -510,6 +546,12 @@ 0.5 + + https://supabase.com/docs/guides/platform/http-status-codes + weekly + 0.5 + + https://supabase.com/docs/guides/platform/logs weekly @@ -552,6 +594,12 @@ 0.5 + + https://supabase.com/docs/guides/platform/troubleshooting + weekly + 0.5 + + https://supabase.com/docs/guides/realtime/postgres-changes weekly @@ -577,7 +625,7 @@ - https://supabase.com/docs/guides/resources/supabase-cli + https://supabase.com/docs/guides/self-hosting/docker weekly 0.5 @@ -612,12 +660,6 @@ 0.5 - - https://supabase.com/docs/guides/self-hosting/docker - weekly - 0.5 - - https://supabase.com/docs/learn/auth-deep-dive/auth-deep-dive-jwts weekly @@ -648,6 +690,24 @@ 0.5 + + https://supabase.com/docs/guides/auth/phone-login/messagebird + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/phone-login/twilio + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/phone-login/vonage + weekly + 0.5 + + https://supabase.com/docs/guides/auth/auth-helpers/auth-ui weekly @@ -678,24 +738,6 @@ 0.5 - - https://supabase.com/docs/guides/auth/phone-login/messagebird - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/phone-login/twilio - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/phone-login/vonage - weekly - 0.5 - - https://supabase.com/docs/guides/auth/social-login/auth-apple weekly @@ -799,43 +841,97 @@ - https://supabase.com/docs/guides/database/extensions/http + https://supabase.com/docs/guides/functions/examples/cloudflare-turnstile weekly 0.5 - https://supabase.com/docs/guides/database/extensions/pgcron + https://supabase.com/docs/guides/functions/examples/github-actions weekly 0.5 - https://supabase.com/docs/guides/database/extensions/pgnet + https://supabase.com/docs/guides/functions/examples/og-image weekly 0.5 - https://supabase.com/docs/guides/database/extensions/pgtap + https://supabase.com/docs/guides/functions/examples/storage-caching weekly 0.5 - https://supabase.com/docs/guides/database/extensions/plv8 + https://supabase.com/docs/guides/functions/examples/stripe-webhooks weekly 0.5 - https://supabase.com/docs/guides/database/extensions/postgis + https://supabase.com/docs/guides/functions/examples/telegram-bot weekly 0.5 - https://supabase.com/docs/guides/database/extensions/uuid-ossp + https://supabase.com/docs/guides/getting-started/quickstarts/flutter + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/nextjs + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/reactjs + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/solidjs + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/sveltekit + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/vue + weekly + 0.5 + + + + https://supabase.com/docs/guides/platform/sso/azure + weekly + 0.5 + + + + https://supabase.com/docs/guides/platform/sso/gsuite + weekly + 0.5 + + + + https://supabase.com/docs/guides/platform/sso/okta weekly 0.5 @@ -924,66 +1020,6 @@ 0.5 - - https://supabase.com/docs/guides/functions/examples/og-image - weekly - 0.5 - - - - https://supabase.com/docs/guides/getting-started/quickstarts/nextjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/getting-started/quickstarts/reactjs - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/sso/azure - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/sso/gsuite - weekly - 0.5 - - - - https://supabase.com/docs/guides/platform/sso/okta - weekly - 0.5 - - - - https://supabase.com/docs/guides/resources/supabase-cli/local-development - weekly - 0.5 - - - - https://supabase.com/docs/guides/resources/supabase-cli/managing-environments - weekly - 0.5 - - - - https://supabase.com/docs/guides/self-hosting/auth/config - weekly - 0.5 - - https://supabase.com/docs/guides/resources/migrating-to-supabase/firebase-auth weekly @@ -1008,6 +1044,54 @@ 0.5 + + https://supabase.com/docs/guides/database/extensions/http + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/pgcron + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/pgnet + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/pgtap + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/plv8 + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/postgis + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/uuid-ossp + weekly + 0.5 + + + + https://supabase.com/docs/guides/self-hosting/auth/config + weekly + 0.5 + + https://supabase.com/docs/guides/self-hosting/realtime/config weekly @@ -1443,7 +1527,7 @@ - https://supabase.com/docs/reference/javascript/auth-admin-invoke + https://supabase.com/docs/reference/javascript/functions-invoke weekly 0.5 @@ -1677,7 +1761,7 @@ - https://supabase.com/docs/reference/javascript/v1/auth-admin-invoke + https://supabase.com/docs/reference/javascript/v1/functions-invoke weekly 0.5 @@ -2018,6 +2102,12 @@ 0.5 + + https://supabase.com/docs/reference/dart/initializing + weekly + 0.5 + + https://supabase.com/docs/reference/dart/auth-signup weekly @@ -2085,7 +2175,7 @@ - https://supabase.com/docs/reference/dart/auth-admin-invoke + https://supabase.com/docs/reference/dart/functions-invoke weekly 0.5 @@ -2493,7 +2583,7 @@ - https://supabase.com/docs/reference/dart/v0/auth-admin-invoke + https://supabase.com/docs/reference/dart/v0/functions-invoke weekly 0.5 @@ -2895,7 +2985,7 @@ - https://supabase.com/docs/reference/dart/v0/auth-admin-invoke + https://supabase.com/docs/reference/dart/v0/functions-invoke weekly 0.5 @@ -3446,6 +3536,12 @@ 0.5 + + https://supabase.com/docs/reference/cli/supabase-functions-download + weekly + 0.5 + + https://supabase.com/docs/reference/cli/supabase-functions-deploy weekly diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index e369db9896a..4c2c0f14a75 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -83,7 +83,7 @@ export default function IndexPage() { scale: 'Additional fees apply for usage and storage beyond the limits above.', shutdown: '', preface: 'Everything below included in the base plan', - additional: 'Turn off your spend cap to Pay As You Grow ', + additional: '', cta: 'Get Started', }, // { @@ -446,9 +446,22 @@ export default function IndexPage() {

))}
+
+ Got something you'd like to see here? + + + + + +
-
+
Available for Pro plan From 27c29dcadc231ba02d07b3c40aeb05a1d058ca1c Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 31 Jan 2023 10:15:44 -0330 Subject: [PATCH 19/39] Fix prose section --- apps/www/components/Pricing/ComputePricingModal.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index 18605613266..4f1f31e385d 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -35,12 +35,12 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo
} > -
+
-
+
-
+

Choose best compute setup for you

Every project on the Supabase Platform comes with its own dedicated Postgres From 40fc6ecff33698f745deb6d936d7804aab174555 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 31 Jan 2023 15:07:29 -0330 Subject: [PATCH 20/39] New svg --- apps/www/public/images/pricing/compute-upgrade.svg | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/apps/www/public/images/pricing/compute-upgrade.svg b/apps/www/public/images/pricing/compute-upgrade.svg index c6241aa159e..6f27d68fbb7 100644 --- a/apps/www/public/images/pricing/compute-upgrade.svg +++ b/apps/www/public/images/pricing/compute-upgrade.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file From 3f6ef12f5f1938c0fc8a38206c3123ad147c1100 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 7 Feb 2023 13:40:48 -0330 Subject: [PATCH 21/39] Updates --- apps/www/data/PricingFAQ.json | 4 ++-- apps/www/pages/pricing/index.tsx | 41 +++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 5 deletions(-) diff --git a/apps/www/data/PricingFAQ.json b/apps/www/data/PricingFAQ.json index f6d897e8541..44fa8c58784 100644 --- a/apps/www/data/PricingFAQ.json +++ b/apps/www/data/PricingFAQ.json @@ -1,7 +1,7 @@ [ { "question": "Can I cap my usage so my bill doesn't run over?", - "answer": "Yes. Spend caps are on by default on the pro tier. You can turn spend caps off for usage beyond the tier limits to pay as you grow." + "answer": "Yes. Spend caps are on by default on the Pro tier. You can turn spend caps off for usage beyond the tier limits to pay as you grow." }, { "question": "I'm worried I could end up with a huge bill at the end of the month.", @@ -9,7 +9,7 @@ }, { "question": "When will I be billed?", - "answer": "Our Pro plan is charged up front, and billed on a monthly basis. Additional usage costs are also billed at the end of the month." + "answer": "Our Pro tier is charged up front, and billed on a monthly basis. Additional usage costs are also billed at the end of the month." }, { "question": "Are you going to change your pricing in the future?", diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 4c2c0f14a75..e3cadbf6723 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -855,17 +855,52 @@ export default function IndexPage() { Can't find the answer to your question, ask someone in the community either on our Discord or GitHub.

-
+
- - From 4e6036e44b75a248b7d4aa505c00ff71980fda12 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 7 Feb 2023 16:07:03 -0330 Subject: [PATCH 22/39] Style nudges --- .../www/components/Pricing/PricingTableRow.tsx | 8 ++++---- apps/www/pages/pricing/index.tsx | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index 799d9113597..fb44f3a0baa 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -1,6 +1,6 @@ -import { IconHelpCircle, IconInfo, IconX, IconXCircle, Modal } from 'ui' +import { IconHelpCircle } from 'ui' import ProductIcon from 'components/ProductIcon' -import React, { Fragment, useState } from 'react' +import React, { Fragment } from 'react' import ReactTooltip from 'react-tooltip' export const Check = () => ( @@ -145,7 +145,7 @@ export const PricingTableRowDesktop = (props: any) => { ) })} - + ) } @@ -200,7 +200,7 @@ export const PricingTableRowMobile = (props: any) => { })}
- + ) } diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index e3cadbf6723..2b106595f57 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -119,7 +119,7 @@ export default function IndexPage() { href: 'https://forms.supabase.com/enterprise', description: 'For large-scale applications managing serious workloads.', features: [ - `Point in time recovery`, + `Point in Time Recovery`, `Designated Support manager & SLAs`, `Enterprise OAuth providers`, `SSO/ SAML`, @@ -140,7 +140,7 @@ export default function IndexPage() { heroImg: 'addons-compute-hero', icon: 'compute-upgrade', price: 'Starts from $5', - description: 'Increase the captability of your database only for what you need.', + description: 'Increase the capability of your database only for what you need.', leftCtaText: 'Documentation', leftCtaLink: 'http://.....', rightCtaText: 'See Pricing breakdown', @@ -159,7 +159,7 @@ export default function IndexPage() { rightCtaLink: 'http://', }, { - name: 'Point in time recovery', + name: 'Point in Time Recovery', heroImg: 'addons-pitr-hero', icon: 'pitr-upgrade', price: 'Starts from $5', @@ -367,7 +367,7 @@ export default function IndexPage() { )}
- @@ -391,7 +391,7 @@ export default function IndexPage() {
-

Easily customizable add-Ons

+

Easily customizable add-ons

Level up your Supabase experience with add-ons.

@@ -762,7 +762,7 @@ export default function IndexPage() { @@ -825,7 +825,7 @@ export default function IndexPage() { - @@ -835,7 +835,7 @@ export default function IndexPage() { - From 1f3fe887e92e9f162fcf07649705cac5348b74fe Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 11:48:11 -0330 Subject: [PATCH 23/39] Nudges and new icons --- .../Pricing/ComputePricingModal.tsx | 37 +++++++++++++++---- apps/www/pages/pricing/index.tsx | 6 +-- .../images/pricing/compute-upgrade-light.svg | 10 +---- .../public/images/pricing/compute-upgrade.svg | 2 +- .../pricing/custom-domain-upgrade-light.svg | 10 +---- .../images/pricing/custom-domain-upgrade.svg | 10 +---- .../images/pricing/pitr-upgrade-light.svg | 10 +---- .../public/images/pricing/pitr-upgrade.svg | 8 +--- 8 files changed, 40 insertions(+), 53 deletions(-) diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index 4f1f31e385d..feae59969a0 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -26,10 +26,10 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo //onCancel={() => setVideoVisible(false)} hideFooter header={ -
+
Compute pricing setShowComputeModal(false)} />
@@ -38,7 +38,7 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo
-
+
{row.columns.map((column) => ( - + {column.key === 'dedicated' ? ( ( {row.columns.map((column) => ( - - {column.title} - {column.value} + + + {column.title} + + + {column.key === 'dedicated' ? ( + + ) : ( + column.value + )} + ))} diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 2b106595f57..3eae46fc952 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -233,9 +233,7 @@ export default function IndexPage() {
-

- Pricing -

+

Pricing

Predictable pricing, no surprises

Start building for free, collaborate with a team, then scale to millions of users @@ -461,7 +459,7 @@ export default function IndexPage() {

-
+
Available for Pro plan diff --git a/apps/www/public/images/pricing/compute-upgrade-light.svg b/apps/www/public/images/pricing/compute-upgrade-light.svg index 8f23ffadd2f..d46f5829371 100644 --- a/apps/www/public/images/pricing/compute-upgrade-light.svg +++ b/apps/www/public/images/pricing/compute-upgrade-light.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/apps/www/public/images/pricing/compute-upgrade.svg b/apps/www/public/images/pricing/compute-upgrade.svg index 6f27d68fbb7..292b81d4403 100644 --- a/apps/www/public/images/pricing/compute-upgrade.svg +++ b/apps/www/public/images/pricing/compute-upgrade.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/www/public/images/pricing/custom-domain-upgrade-light.svg b/apps/www/public/images/pricing/custom-domain-upgrade-light.svg index 6d08ae8eedd..cad9b89e185 100644 --- a/apps/www/public/images/pricing/custom-domain-upgrade-light.svg +++ b/apps/www/public/images/pricing/custom-domain-upgrade-light.svg @@ -1,9 +1,3 @@ - - - - - - - - + + diff --git a/apps/www/public/images/pricing/custom-domain-upgrade.svg b/apps/www/public/images/pricing/custom-domain-upgrade.svg index 0d608d5d91d..1f635380026 100644 --- a/apps/www/public/images/pricing/custom-domain-upgrade.svg +++ b/apps/www/public/images/pricing/custom-domain-upgrade.svg @@ -1,9 +1,3 @@ - - - - - - - - + + diff --git a/apps/www/public/images/pricing/pitr-upgrade-light.svg b/apps/www/public/images/pricing/pitr-upgrade-light.svg index 57a36a937f1..7813f479d93 100644 --- a/apps/www/public/images/pricing/pitr-upgrade-light.svg +++ b/apps/www/public/images/pricing/pitr-upgrade-light.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/apps/www/public/images/pricing/pitr-upgrade.svg b/apps/www/public/images/pricing/pitr-upgrade.svg index 238a81aaf80..05d5238cbce 100644 --- a/apps/www/public/images/pricing/pitr-upgrade.svg +++ b/apps/www/public/images/pricing/pitr-upgrade.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file From b54151e5c13ecf58d4a3f441752b0a232e8e2527 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 12:06:54 -0330 Subject: [PATCH 24/39] Unradius the border radius --- apps/www/pages/pricing/index.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 3eae46fc952..1f326d09148 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -257,7 +257,7 @@ export default function IndexPage() { key={`row-${tier.name}`} className={[ tier.name === 'Pro' - ? 'bg-brand-1100 dark:bg-brand-900 border px-0.5 -mt-8 rounded-[14px]' + ? 'bg-brand-1100 dark:bg-brand-900 border px-0.5 -mt-8 rounded-[6px]' : '', ].join(' ')} > @@ -267,11 +267,15 @@ export default function IndexPage() {
-
+

{tier.preface && ( From 96875301ad5a1fcdf8f508126d92d59c15a6330d Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 12:32:59 -0330 Subject: [PATCH 25/39] Update modal --- apps/www/components/Pricing/ComputePricingModal.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index feae59969a0..e7753983ce4 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -50,8 +50,8 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo

-

Choose best compute setup for you

-

+

Choose best compute setup for you

+

Every project on the Supabase Platform comes with its own dedicated Postgres instance running inside a virtual machine (VM). The following table describes the base instance with additional compute add-ons available if you need extra @@ -76,7 +76,7 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo {i === 0 && ( - + Included in Free and Pro tiers From 2142cf4517cf1dde825779d698da4778d126956a Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 14:20:20 -0330 Subject: [PATCH 26/39] Updates --- apps/www/pages/pricing/index.tsx | 56 ++++++++++++++++---------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 1f326d09148..393eadced5d 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -128,6 +128,8 @@ export default function IndexPage() { `On-premise support`, `24×7×365 premium enterprise support`, ], + priceLabel: 'Custom quotas', + priceMonthly: 'Exclusive pricing', scale: '', shutdown: '', cta: 'Contact Us', @@ -268,7 +270,7 @@ export default function IndexPage() { key={tier.name} className={[ 'flex flex-col overflow-hidden', - tier.name === 'Pro' ? '' : 'border h-full hallo rounded-xl', + tier.name === 'Pro' ? '' : 'border h-full rounded-xl', ].join(' ')} >

{tier.name} @@ -295,9 +297,8 @@ export default function IndexPage() { {tier.description}

- {tier.name !== 'Enterprise' && ( -
-
-
-
-

- {tier.priceLabel} -

-

- ${tier.priceMonthly} -

- {tier.costUnit && ( -

{tier.costUnit}

- )} + > +
+
+
+

+ {tier.priceLabel} +

+

+ {tier.name !== 'Enterprise' && '$'} {tier.priceMonthly} +

+ {tier.costUnit && ( +

{tier.costUnit}

+ )} - {tier.warning && ( -

- - {tier.warning} - -

- )} -
+ {tier.warning && ( +

+ + {tier.warning} + +

+ )}
- )} +
-

+

{tier.name}

Date: Tue, 14 Feb 2023 14:28:32 -0330 Subject: [PATCH 27/39] Fix border radius --- apps/www/pages/pricing/index.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 393eadced5d..9234232e91b 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -270,11 +270,11 @@ export default function IndexPage() { key={tier.name} className={[ 'flex flex-col overflow-hidden', - tier.name === 'Pro' ? '' : 'border h-full rounded-xl', + tier.name === 'Pro' ? '' : 'border h-full rounded-[4px]', ].join(' ')} >
@@ -337,7 +337,7 @@ export default function IndexPage() {
{addons.map((addon) => ( -
+
Date: Tue, 14 Feb 2023 14:29:04 -0330 Subject: [PATCH 28/39] Radius nudge --- apps/www/pages/pricing/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 9234232e91b..d780e03b0e9 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -401,7 +401,7 @@ export default function IndexPage() {
{addons.map((addon) => ( -
+
Date: Tue, 14 Feb 2023 15:35:51 -0330 Subject: [PATCH 29/39] Copy to enterprise grid --- apps/www/pages/pricing/index.tsx | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index d780e03b0e9..7b6ada1ee13 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -82,7 +82,7 @@ export default function IndexPage() { ], scale: 'Additional fees apply for usage and storage beyond the limits above.', shutdown: '', - preface: 'Everything below included in the base plan', + preface: 'Everything in the Free plan, plus', additional: '', cta: 'Get Started', }, @@ -127,9 +127,13 @@ export default function IndexPage() { `Custom contracts & invoicing`, `On-premise support`, `24×7×365 premium enterprise support`, + `Custom Security questionnaires`, + `Private Slack channel`, + `Uptime SLA`, ], priceLabel: 'Custom quotas', priceMonthly: 'Exclusive pricing', + preface: 'The following features will apply to all projects within the organization', scale: '', shutdown: '', cta: 'Contact Us', @@ -308,6 +312,7 @@ export default function IndexPage() { dark:border-scale-500 pt-4 pb-8 + min-h-[175px] " >
@@ -316,8 +321,13 @@ export default function IndexPage() {

{tier.priceLabel}

-

- {tier.name !== 'Enterprise' && '$'} {tier.priceMonthly} +

+ {tier.name !== 'Enterprise' && '$'} + {tier.priceMonthly}

{tier.costUnit && (

{tier.costUnit}

@@ -338,7 +348,6 @@ export default function IndexPage() {
From bd0618372588d1c4a03473c344419d030f75111c Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 16:53:14 -0330 Subject: [PATCH 30/39] Move icons to own file --- .../Pricing/ComputePricingModal.tsx | 16 ++--- apps/www/components/Pricing/PricingIcons.tsx | 57 +++++++++++++++ .../components/Pricing/PricingTableRow.tsx | 69 ++----------------- apps/www/pages/pricing/index.tsx | 3 - 4 files changed, 70 insertions(+), 75 deletions(-) create mode 100644 apps/www/components/Pricing/PricingIcons.tsx diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index e7753983ce4..f3e7dde3782 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -3,6 +3,7 @@ import { useRouter } from 'next/router' import { useTheme } from 'common/Providers' import { IconCheckCircle, IconXCircle, Modal } from 'ui' import pricingAddOn from '~/data/PricingAddOnTable.json' +import { IconPricingIncludedCheck, IconPricingMinus } from './PricingIcons' interface Props { showComputeModal: boolean setShowComputeModal: React.Dispatch> @@ -89,16 +90,13 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo ].join(' ')} > {row.columns.map((column) => ( - + {column.key === 'dedicated' ? ( - + column.value ? ( + + ) : ( + + ) ) : ( column.value )} diff --git a/apps/www/components/Pricing/PricingIcons.tsx b/apps/www/components/Pricing/PricingIcons.tsx new file mode 100644 index 00000000000..5dd4c804921 --- /dev/null +++ b/apps/www/components/Pricing/PricingIcons.tsx @@ -0,0 +1,57 @@ +export const Check = () => ( + + + +) + +export const IconPricingIncludedCheck = (props: any) => ( + + + Included in {props.tier} + +) + +export const IconPricingMinus = (props: any) => ( + <> + + + + Not included in {props.tier} + +) + +export const IconPricingInfo = () => ( + <> + + + + Info + +) diff --git a/apps/www/components/Pricing/PricingTableRow.tsx b/apps/www/components/Pricing/PricingTableRow.tsx index fb44f3a0baa..3aaacc55236 100644 --- a/apps/www/components/Pricing/PricingTableRow.tsx +++ b/apps/www/components/Pricing/PricingTableRow.tsx @@ -2,64 +2,7 @@ import { IconHelpCircle } from 'ui' import ProductIcon from 'components/ProductIcon' import React, { Fragment } from 'react' import ReactTooltip from 'react-tooltip' - -export const Check = () => ( - - - -) - -const IncludedCheck = (props: any) => ( - - - Included in {props.tier} - -) - -const Minus = (props: any) => ( - <> - - - - Not included in {props.tier} - -) - -const InfoIcon = () => ( - <> - - - - Info - -) +import { IconPricingIncludedCheck, IconPricingInfo, IconPricingMinus } from './PricingIcons' export const PricingTableRowDesktop = (props: any) => { const category = props.category @@ -117,10 +60,10 @@ export const PricingTableRowDesktop = (props: any) => { ].join(' ')} > {typeof tierValue === 'boolean' && tierValue === true ? ( - + ) : typeof tierValue === 'boolean' && tierValue === false ? (
- +
) : ( @@ -129,7 +72,7 @@ export const PricingTableRowDesktop = (props: any) => { className="shrink-0 hover:text-scale-300 cursor-pointer transition-colors" data-tip={feat.tooltips[tierName]} > - + )} {tierValue} @@ -185,11 +128,11 @@ export const PricingTableRowMobile = (props: any) => { {typeof feat.tiers[tier] === 'boolean' && feat.tiers[tier] === true ? (
- +
) : typeof feat.tiers[tier] === 'boolean' && feat.tiers[tier] === false ? (
- +
) : ( {feat.tiers[tier]} diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 7b6ada1ee13..7aa8120534a 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -1,4 +1,3 @@ -import { ServerIcon, SupportIcon } from '@heroicons/react/outline' import { Accordion, Button, IconCheck, Select } from 'ui' import Solutions from 'data/Solutions.json' import { NextSeo } from 'next-seo' @@ -8,10 +7,8 @@ import React, { useState } from 'react' import ReactMarkdown from 'react-markdown' import CTABanner from '~/components/CTABanner' import DefaultLayout from '~/components/Layouts/Default' -import PricingAddOnTable from '~/components/Pricing/PricingAddOnTable' import { PricingTableRowDesktop, PricingTableRowMobile } from '~/components/Pricing/PricingTableRow' import pricing from '~/data/Pricing.json' -import pricingAddOn from '~/data/PricingAddOnTable.json' import pricingFaq from '~/data/PricingFAQ.json' import { useTheme } from 'common/Providers' import ComputePricingModal from '~/components/Pricing/ComputePricingModal' From c4dc73bd793f3fefa90af1c4efa8e9a2f4fe4e6d Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 17:00:16 -0330 Subject: [PATCH 31/39] Nudges --- apps/www/data/Pricing.json | 2 +- apps/www/pages/pricing/index.tsx | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/www/data/Pricing.json b/apps/www/data/Pricing.json index a428ab90a62..962f096bd81 100644 --- a/apps/www/data/Pricing.json +++ b/apps/www/data/Pricing.json @@ -293,6 +293,7 @@ "title": "Messages Per Month", "tooltips": { "main": "Billing is based on the total sum of Realtime messages throughout your billing period.", + "pro": "Then $2.50 per million", "free": "2 Million (including database)" }, "tiers": { @@ -420,7 +421,6 @@ { "title": "Custom Domains", "tooltips": { - "main": "Contact us to access this feature", "enterprise": "Volume discounts available." }, "tiers": { diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 7aa8120534a..a7304d51223 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -116,7 +116,6 @@ export default function IndexPage() { href: 'https://forms.supabase.com/enterprise', description: 'For large-scale applications managing serious workloads.', features: [ - `Point in Time Recovery`, `Designated Support manager & SLAs`, `Enterprise OAuth providers`, `SSO/ SAML`, @@ -145,7 +144,7 @@ export default function IndexPage() { price: 'Starts from $5', description: 'Increase the capability of your database only for what you need.', leftCtaText: 'Documentation', - leftCtaLink: 'http://.....', + leftCtaLink: 'https://supabase.com/docs/guides/platform/compute-add-ons', rightCtaText: 'See Pricing breakdown', rightCtaLink: '#open-modal', }, @@ -157,7 +156,7 @@ export default function IndexPage() { description: 'Use your own domain for your Supabase project to present a more polished product to your users.', leftCtaText: 'Documentation', - leftCtaLink: 'http://.....', + leftCtaLink: 'https://supabase.com/docs/guides/platform/custom-domains', rightCtaText: 'See more', rightCtaLink: 'http://', }, @@ -168,7 +167,7 @@ export default function IndexPage() { price: 'Starts from $5', description: 'Roll back to any specific point in time and ensure that data is not lost.', leftCtaText: 'Documentation', - leftCtaLink: 'http://.....', + leftCtaLink: 'https://supabase.com/docs/guides/platform/backups', rightCtaText: 'See Pricing breakdown', rightCtaLink: 'http://', }, From 93635eb5d0b2157b51607977115cffe29e390218 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 17:03:32 -0330 Subject: [PATCH 32/39] Add missing icon --- apps/www/components/Pricing/PricingAddOnTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/www/components/Pricing/PricingAddOnTable.tsx b/apps/www/components/Pricing/PricingAddOnTable.tsx index dbd7ccf7562..41b9f96698b 100644 --- a/apps/www/components/Pricing/PricingAddOnTable.tsx +++ b/apps/www/components/Pricing/PricingAddOnTable.tsx @@ -1,7 +1,7 @@ import { Collapsible, IconChevronUp } from 'ui' import classNames from 'classnames' import { Fragment, useMemo, useState } from 'react' -import { Check } from './PricingTableRow' +import { Check } from './PricingIcons' interface PricingAddOnTableProps { pricing: { From bef8469f080773dcd9c8aab09dba244d7f810f77 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 17:14:33 -0330 Subject: [PATCH 33/39] Fix line break --- apps/www/pages/pricing/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index a7304d51223..57c5672024a 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -631,8 +631,8 @@ export default function IndexPage() { <> Date: Tue, 14 Feb 2023 17:16:11 -0330 Subject: [PATCH 34/39] Font weight --- apps/www/pages/pricing/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 57c5672024a..552d75b07db 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -281,7 +281,7 @@ export default function IndexPage() {

{tier.name} From 89b6edf5aeaceb357121b2ceff8cc67302181c12 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 17:23:49 -0330 Subject: [PATCH 35/39] Add disk io back --- .../Pricing/ComputePricingModal.tsx | 2 + apps/www/data/PricingAddOnTable.json | 60 +++++++++++++++---- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index f3e7dde3782..7d0244336ce 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -4,6 +4,7 @@ import { useTheme } from 'common/Providers' import { IconCheckCircle, IconXCircle, Modal } from 'ui' import pricingAddOn from '~/data/PricingAddOnTable.json' import { IconPricingIncludedCheck, IconPricingMinus } from './PricingIcons' + interface Props { showComputeModal: boolean setShowComputeModal: React.Dispatch> @@ -19,6 +20,7 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo )[0], [] ) + console.log('pricingAddOn:', pricingAddOn) return ( Date: Tue, 14 Feb 2023 17:27:26 -0330 Subject: [PATCH 36/39] Nudges --- apps/www/data/Pricing.json | 2 +- apps/www/pages/pricing/index.tsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/www/data/Pricing.json b/apps/www/data/Pricing.json index 962f096bd81..f785267f201 100644 --- a/apps/www/data/Pricing.json +++ b/apps/www/data/Pricing.json @@ -217,7 +217,7 @@ "title": "Asset transformations", "tooltips": { "main": "Distinct count of all images that were transformed in the billing period, ignoring any transformations.", - "pro": "5$ per 1000 origin images after the first 100" + "pro": "$5 per 1000 origin images after the first 100" }, "tiers": { "free": false, diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 552d75b07db..11117536fe0 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -399,7 +399,7 @@ export default function IndexPage() {

Easily customizable add-ons

-

+

Level up your Supabase experience with add-ons.

@@ -497,7 +497,7 @@ export default function IndexPage() {

Compare Plans

-

+

Start with a hobby project, collaborate with a team, and scale to millions of users.

@@ -772,7 +772,7 @@ export default function IndexPage() { type={tier.name === 'Enterprise' ? 'default' : 'primary'} block > - Get Started + {tier.cta} From a4ef0f299704525a58792713d2009ee32c884151 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 21:08:37 -0330 Subject: [PATCH 37/39] Tooltips --- apps/www/data/Pricing.json | 8 ++++---- apps/www/pages/pricing/index.tsx | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/www/data/Pricing.json b/apps/www/data/Pricing.json index f785267f201..395c309cb9f 100644 --- a/apps/www/data/Pricing.json +++ b/apps/www/data/Pricing.json @@ -50,7 +50,7 @@ "title": "Point in time recovery", "tooltips": { "main": "PITR cannot be applied retroactively, projects can only be rolled back to the point from which PITR has been applied.", - "pro": "If > 28 day rollback period, contact enterprise" + "pro": "$100 per 7 days. If > 28 day rollback period, contact enterprise" }, "tiers": { "free": false, @@ -217,7 +217,7 @@ "title": "Asset transformations", "tooltips": { "main": "Distinct count of all images that were transformed in the billing period, ignoring any transformations.", - "pro": "$5 per 1000 origin images after the first 100" + "pro": "Unlimited for 100 origin images. $5 per 1000 origin images after the first 100" }, "tiers": { "free": false, @@ -293,8 +293,8 @@ "title": "Messages Per Month", "tooltips": { "main": "Billing is based on the total sum of Realtime messages throughout your billing period.", - "pro": "Then $2.50 per million", - "free": "2 Million (including database)" + "free": "2 Million (including database)", + "pro": "5 Million, then $2.50 per million" }, "tiers": { "free": "2 Million", diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 11117536fe0..e407fcbf8d4 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -40,7 +40,7 @@ export default function IndexPage() { priceMonthly: 0, warning: 'Limit of 2 free projects', description: 'Perfect for passion projects & simple websites.', - preface: 'Get started with...', + preface: 'Get started with:', features: [ 'Up to 500MB database & 1GB file storage', 'Up to 2GB bandwidth', @@ -79,7 +79,7 @@ export default function IndexPage() { ], scale: 'Additional fees apply for usage and storage beyond the limits above.', shutdown: '', - preface: 'Everything in the Free plan, plus', + preface: 'Everything in the Free plan, plus:', additional: '', cta: 'Get Started', }, @@ -129,7 +129,7 @@ export default function IndexPage() { ], priceLabel: 'Custom quotas', priceMonthly: 'Exclusive pricing', - preface: 'The following features will apply to all projects within the organization', + preface: 'These apply to all projects within the organization:', scale: '', shutdown: '', cta: 'Contact Us', From 4f5f623da3ce2127b645d2e45df3f747882909a7 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 14 Feb 2023 21:17:46 -0330 Subject: [PATCH 38/39] Pricing for enterprise --- .../Pricing/ComputePricingModal.tsx | 1 - apps/www/pages/pricing/index.tsx | 21 +++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/apps/www/components/Pricing/ComputePricingModal.tsx b/apps/www/components/Pricing/ComputePricingModal.tsx index 7d0244336ce..526590addf1 100644 --- a/apps/www/components/Pricing/ComputePricingModal.tsx +++ b/apps/www/components/Pricing/ComputePricingModal.tsx @@ -20,7 +20,6 @@ export default function ComputePricingModal({ showComputeModal, setShowComputeMo )[0], [] ) - console.log('pricingAddOn:', pricingAddOn) return (
- {tier.name !== 'Enterprise' && ( - <> - - ${tier.priceMonthly} - -

per project per month

- - )} + <> + + {tier.name !== 'Enterprise' && '$'} + {tier.priceMonthly} + +

per project per month

+ {tier.warning && (

@@ -765,7 +768,7 @@ export default function IndexPage() { )}