From 6467a18963beca3951e5686f13d8f1dfc6f0e86a Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Tue, 23 Sep 2025 16:06:01 -0230 Subject: [PATCH] Add a featured section for the supasquad page (#38961) * Add a featured section for the supasquad page * Add priority badge --- .../components/Forms/ApplyToSupaSquadForm.tsx | 1 + apps/www/components/Supasquad/FeatureIcon.tsx | 4 ++ .../open-source/contributing/supasquad.tsx | 39 ++++++++++++++++++- .../open-source/contributing/supasquad.tsx | 7 +++- 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/apps/www/components/Forms/ApplyToSupaSquadForm.tsx b/apps/www/components/Forms/ApplyToSupaSquadForm.tsx index 498418badc..e57df832a6 100644 --- a/apps/www/components/Forms/ApplyToSupaSquadForm.tsx +++ b/apps/www/components/Forms/ApplyToSupaSquadForm.tsx @@ -75,6 +75,7 @@ const tracks: Track[] = [ const productAreasOfInterest: string[] = [ 'Auth', + 'AI Builders', 'Branching', 'Client libraries', 'Database / Postgres', diff --git a/apps/www/components/Supasquad/FeatureIcon.tsx b/apps/www/components/Supasquad/FeatureIcon.tsx index a312031c38..e873f0c67b 100644 --- a/apps/www/components/Supasquad/FeatureIcon.tsx +++ b/apps/www/components/Supasquad/FeatureIcon.tsx @@ -4,6 +4,7 @@ import { cn } from 'ui' import type { Feature } from '~/data/open-source/contributing/supasquad.utils' import { Award, + Bot, Zap, MessageSquare, DollarSign, @@ -13,10 +14,12 @@ import { LifeBuoy, Wrench, Shield, + Lock, } from 'lucide-react' const ICONS = { award: Award, + bot: Bot, zap: Zap, 'message-square': MessageSquare, 'dollar-sign': DollarSign, @@ -26,6 +29,7 @@ const ICONS = { 'life-buoy': LifeBuoy, wrench: Wrench, shield: Shield, + lock: Lock, } as const type IconName = keyof typeof ICONS diff --git a/apps/www/data/open-source/contributing/supasquad.tsx b/apps/www/data/open-source/contributing/supasquad.tsx index 7897c9dd98..41ce63e044 100644 --- a/apps/www/data/open-source/contributing/supasquad.tsx +++ b/apps/www/data/open-source/contributing/supasquad.tsx @@ -1,4 +1,4 @@ -import { Image } from 'ui' +import { Badge, Image } from 'ui' import { companyStats } from '~/data/company-stats' export const data = { @@ -147,6 +147,43 @@ export const data = { }, ], }, + featured: { + id: 'featured', + label: '', + heading: ( + <> +

Featured

+ We're especially looking for + + ), + subheading: + "These are the areas where we need the most help right now. If you have expertise in any of these domains, we'd love to hear from you!", + features: [ + { + id: 'ai-builders', + icon: 'bot', + heading: ( +
+ AI Builders High Priority +
+ ), + subheading: + "Help our users who are building with AI + Supabase. If you've vibed a bunch of projects but understand what's happening under the hood, we'd love to talke with you .", + }, + + { + id: 'realtime', + icon: 'zap', + heading: ( +
+ Realtime High Priority +
+ ), + subheading: + 'Help the team by writing docs, creating examples, and making sure our guides are up to date. Experience with React and friends is an extra bonus.', + }, + ], + }, benefits: { id: 'benefits', heading: Benefits for our members, diff --git a/apps/www/pages/open-source/contributing/supasquad.tsx b/apps/www/pages/open-source/contributing/supasquad.tsx index fd1da161f3..bd20b0a78c 100644 --- a/apps/www/pages/open-source/contributing/supasquad.tsx +++ b/apps/www/pages/open-source/contributing/supasquad.tsx @@ -6,9 +6,10 @@ import Layout from 'components/Layouts/Default' import ProductHeader from 'components/Sections/ProductHeader2' import { data as content } from 'data/open-source/contributing/supasquad' +import { Separator } from 'ui' -const Quotes = dynamic(() => import('components/Supasquad/Quotes')) const WhySupaSquad = dynamic(() => import('components/Supasquad/FeaturesSection')) +const FeaturedSection = dynamic(() => import('components/Supasquad/FeaturesSection')) const PerfectTiming = dynamic(() => import('components/Supasquad/PerfectTiming')) const Benefits = dynamic(() => import('components/Supasquad/FeaturesSection')) const ApplicationFormSection = dynamic(() => import('components/Supasquad/ApplicationFormSection')) @@ -32,7 +33,11 @@ const BeginnersPage: NextPage = () => { sectionContainerClassName="lg:gap-4" /> {/* */} + + + +