diff --git a/apps/www/components/SOC2RequestForm.tsx b/apps/www/components/SOC2RequestForm.tsx
index 841e7e0e5b9..7563d00b593 100644
--- a/apps/www/components/SOC2RequestForm.tsx
+++ b/apps/www/components/SOC2RequestForm.tsx
@@ -1,7 +1,7 @@
import { Button, Form, Input, Select } from 'ui'
import { useState } from 'react'
import countries from '~/data/Countries.json'
-import supabase from '~/lib/supabase'
+import supabase from '~/lib/supabaseMisc'
const INITIAL_VALUES = {
companyName: '',
diff --git a/apps/www/data/support.tsx b/apps/www/data/support.tsx
new file mode 100644
index 00000000000..477cbfd0a8f
--- /dev/null
+++ b/apps/www/data/support.tsx
@@ -0,0 +1,91 @@
+import { IconGitHubSolid, IconDiscussions, IconDiscord, IconArrowUpRight } from 'ui'
+
+const data = {
+ meta_title: 'Help & Support | Supabase',
+ meta_description:
+ 'Find help and support for Supabase. Our Support team provide answers on all types of issues, including account information, billing, and refunds.',
+ hero: {
+ h1: 'Support',
+ title: 'Hello, how can we help?',
+ },
+ cards: [
+ {
+ title: 'Issues',
+ paragraph: "Found a bug? We'd love to hear about it in our GitHub issues.",
+ links: [
+ {
+ label: 'Open GitHub Issue',
+ link: '',
+ target: '_blank',
+ icon:
,
+ type: 'default',
+ },
+ ],
+ },
+ {
+ title: 'Feature requests',
+ paragraph: 'Want to suggest a new feature? Share it with us and the community.',
+ links: [
+ {
+ label: 'Request feature',
+ link: 'https://github.com/orgs/supabase/discussions/categories/feature-requests',
+ target: '_blank',
+ icon:
,
+ type: 'default',
+ },
+ ],
+ },
+ {
+ title: 'Ask the Community',
+ paragraph:
+ 'Join our GitHub discussions or our Discord server to browse for help and best practices.',
+ links: [
+ {
+ label: 'Ask a question',
+ link: 'https://github.com/supabase/supabase/discussions',
+ target: '_blank',
+ icon:
,
+ type: 'default',
+ },
+ {
+ label: 'Join Discord',
+ link: 'https://discord.supabase.com/',
+ target: '_blank',
+ icon:
,
+ type: 'secondary',
+ },
+ ],
+ className: 'col-span-full xl:col-span-1',
+ },
+ ],
+ banner: {
+ title: "Can't find what you're looking for?",
+ paragraph: (
+ <>
+
The Supabase Support Team is ready to help.
+
+ Response time for support tickets will vary depending on plan type and severity of the
+ issue.
+
+ >
+ ),
+ links: [
+ {
+ label: 'Contact Enterprise Sales',
+ link: 'https://forms.supabase.com/enterprise',
+ target: '_blank',
+ type: 'default',
+ },
+ {
+ label: 'Open Ticket',
+ link: 'https://supabase.com/dashboard/support/new',
+ target: '_blank',
+ icon:
,
+ className: '!text-light hover:!text-foreground',
+ type: 'text',
+ },
+ ],
+ },
+}
+
+export default data
diff --git a/apps/www/lib/supabase.ts b/apps/www/lib/supabase.ts
index 061606dbcfd..9eb2cf3fb03 100644
--- a/apps/www/lib/supabase.ts
+++ b/apps/www/lib/supabase.ts
@@ -2,8 +2,8 @@ import { createClient } from '@supabase/supabase-js'
import { Database } from './database.types'
const supabase = createClient
(
- process.env.NEXT_PUBLIC_MISC_USE_URL!,
- process.env.NEXT_PUBLIC_MISC_USE_ANON_KEY!
+ process.env.NEXT_PUBLIC_SUPABASE_URL!,
+ process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)
export type SupabaseClient = typeof supabase
diff --git a/apps/www/lib/supabaseMisc.ts b/apps/www/lib/supabaseMisc.ts
new file mode 100644
index 00000000000..061606dbcfd
--- /dev/null
+++ b/apps/www/lib/supabaseMisc.ts
@@ -0,0 +1,11 @@
+import { createClient } from '@supabase/supabase-js'
+import { Database } from './database.types'
+
+const supabase = createClient(
+ process.env.NEXT_PUBLIC_MISC_USE_URL!,
+ process.env.NEXT_PUBLIC_MISC_USE_ANON_KEY!
+)
+
+export type SupabaseClient = typeof supabase
+
+export default supabase
diff --git a/apps/www/package.json b/apps/www/package.json
index c456604b548..d28045b22d8 100644
--- a/apps/www/package.json
+++ b/apps/www/package.json
@@ -56,6 +56,7 @@
"shared-data": "*",
"swiper": "^6.5.0",
"three": "^0.136.0",
+ "typed.js": "^2.0.16",
"typescript": "^5.0.4",
"ui": "*",
"use-debounce": "^7.0.1",
diff --git a/apps/www/pages/_app.tsx b/apps/www/pages/_app.tsx
index 2272a329798..6ce18e58d20 100644
--- a/apps/www/pages/_app.tsx
+++ b/apps/www/pages/_app.tsx
@@ -8,13 +8,16 @@ import { AppProps } from 'next/app'
import Head from 'next/head'
import { useRouter } from 'next/router'
import { DefaultSeo } from 'next-seo'
-
+import { SessionContextProvider } from '@supabase/auth-helpers-react'
import { API_URL, APP_NAME, DEFAULT_META_DESCRIPTION } from 'lib/constants'
-import Meta from '~/components/Favicons'
import { post } from '~/lib/fetchWrapper'
+import supabase from '~/lib/supabase'
+import { CommandMenuProvider } from 'ui'
import PortalToast from 'ui/src/layout/PortalToast'
import { AuthProvider, ThemeProvider, useConsent, useTelemetryProps } from 'common'
+import Meta from '~/components/Favicons'
+
export default function App({ Component, pageProps }: AppProps) {
const router = useRouter()
const telemetryProps = useTelemetryProps()
@@ -89,18 +92,22 @@ export default function App({ Component, pageProps }: AppProps) {
cardType: 'summary_large_image',
}}
/>
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
>
)
}
diff --git a/apps/www/pages/legal/dpa.tsx b/apps/www/pages/legal/dpa.tsx
index ab3c2d0f4cc..004e69d82d3 100644
--- a/apps/www/pages/legal/dpa.tsx
+++ b/apps/www/pages/legal/dpa.tsx
@@ -3,7 +3,7 @@ import Link from 'next/link'
import { useState } from 'react'
import { Button, Form, IconDownload, Input } from 'ui'
-import supabase from '~/lib/supabase'
+import supabase from '~/lib/supabaseMisc'
import CTABanner from 'components/CTABanner/index'
import Layout from '~/components/Layouts/Default'
import SectionContainer from '~/components/Layouts/SectionContainer'
diff --git a/apps/www/pages/partners/[slug].tsx b/apps/www/pages/partners/[slug].tsx
index 2e7ad652ba5..2c8febf51bf 100644
--- a/apps/www/pages/partners/[slug].tsx
+++ b/apps/www/pages/partners/[slug].tsx
@@ -1,7 +1,6 @@
import { GetStaticPaths, GetStaticProps } from 'next'
import 'swiper/swiper.min.css'
-import supabase from '~/lib/supabase'
-import { Partner } from '~/types/partners'
+import supabase from '~/lib/supabaseMisc'
import Error404 from '../404'
function PartnerPage() {
diff --git a/apps/www/pages/partners/experts/[slug].tsx b/apps/www/pages/partners/experts/[slug].tsx
index af94fef4e3c..5f36d741ae2 100644
--- a/apps/www/pages/partners/experts/[slug].tsx
+++ b/apps/www/pages/partners/experts/[slug].tsx
@@ -9,7 +9,7 @@ import 'swiper/swiper.min.css'
import { IconChevronLeft, IconExternalLink } from 'ui'
import DefaultLayout from '~/components/Layouts/Default'
import SectionContainer from '~/components/Layouts/SectionContainer'
-import supabase from '~/lib/supabase'
+import supabase from '~/lib/supabaseMisc'
import { Partner } from '~/types/partners'
import Error404 from '../../404'
diff --git a/apps/www/pages/partners/experts/index.tsx b/apps/www/pages/partners/experts/index.tsx
index f66fe829101..008d2769e09 100644
--- a/apps/www/pages/partners/experts/index.tsx
+++ b/apps/www/pages/partners/experts/index.tsx
@@ -4,7 +4,7 @@ import DefaultLayout from '~/components/Layouts/Default'
import SectionContainer from '~/components/Layouts/SectionContainer'
import BecomeAPartner from '~/components/Partners/BecomeAPartner'
import PartnerLinkBox from '~/components/Partners/PartnerLinkBox'
-import supabase from '~/lib/supabase'
+import supabase from '~/lib/supabaseMisc'
import { Partner } from '~/types/partners'
import TileGrid from '../../../components/Partners/TileGrid'
@@ -56,7 +56,7 @@ function ExpertPartnersPage(props: Props) {
{meta_title}
-
{meta_description}
+
{meta_description}
@@ -120,15 +120,14 @@ function ExpertPartnersPage(props: Props) {
{partners.length ? (
) : (
-
No Partners Found
+
No Partners Found
)}
>
)
diff --git a/apps/www/pages/partners/integrations/[slug].tsx b/apps/www/pages/partners/integrations/[slug].tsx
index f41a92159b3..e1da3594914 100644
--- a/apps/www/pages/partners/integrations/[slug].tsx
+++ b/apps/www/pages/partners/integrations/[slug].tsx
@@ -15,7 +15,7 @@ import { Admonition, Button, ExpandableVideo, IconChevronLeft, IconExternalLink
import ImageModal from '~/components/ImageModal'
import DefaultLayout from '~/components/Layouts/Default'
import SectionContainer from '~/components/Layouts/SectionContainer'
-import supabase from '~/lib/supabase'
+import supabase from '~/lib/supabaseMisc'
import { Partner } from '~/types/partners'
import Error404 from '../../404'
diff --git a/apps/www/pages/partners/integrations/index.tsx b/apps/www/pages/partners/integrations/index.tsx
index ae18e2516a2..6c8d04481b3 100644
--- a/apps/www/pages/partners/integrations/index.tsx
+++ b/apps/www/pages/partners/integrations/index.tsx
@@ -7,7 +7,7 @@ import DefaultLayout from '~/components/Layouts/Default'
import SectionContainer from '~/components/Layouts/SectionContainer'
import BecomeAPartner from '~/components/Partners/BecomeAPartner'
import PartnerLinkBox from '~/components/Partners/PartnerLinkBox'
-import supabase from '~/lib/supabase'
+import supabase from '~/lib/supabaseMisc'
import { Partner } from '~/types/partners'
import TileGrid from '../../../components/Partners/TileGrid'
@@ -106,7 +106,7 @@ function IntegrationPartnersPage(props: Props) {