Labsco
vercel-labs logo

Launch a Subscription Store

โ˜… 9

by vercel-labs ยท part of vercel-labs/academy-skills

๐Ÿงฉ One of 7 skills in the vercel-labs/academy-skills package โ€” works on its own, and pairs well with its siblings.

This is the playbook your agent receives when the skill activates โ€” you don't need to read it to use the skill, but it's here to audit before installing.

Launch a Subscription Store

Companion skill for the Launch a Subscription Store course. Build a production-ready subscription storefront with Next.js 16, Supabase Auth, and Stripe.

Commands

/subscription-store learn

Start the guided learning loop. 17 lessons covering authentication, payments, and access control.

/subscription-store new

Scaffold a new subscription store project:

  1. Deploy starter repo to Vercel (one-click)
  2. Clone locally and install dependencies
  3. Create Supabase project and configure env vars
  4. Set up Stripe account and API keys
  5. Verify dev server runs with working home page

/subscription-store submit

Evaluate your current implementation against the active lesson's outcomes.

Content source

https://vercel.com/academy/subscription-store.md           โ†’ course overview
https://vercel.com/academy/subscription-store/<lesson>.md   โ†’ lesson content

Core concepts

Authentication (Supabase Auth)

  • Browser and server Supabase clients via @supabase/ssr
  • Sign-up/sign-in with Server Actions and error handling
  • Session management via proxy.ts pattern (replaces legacy middleware)

Payments (Stripe)

  • Stripe SDK setup for server and client
  • Checkout flow via Server Action โ†’ Stripe hosted checkout
  • Subscription management via Stripe Customer Portal

Access control

  • Server-side subscription checks in Server Components
  • Client-side UI states responding to subscription status
  • Protected API routes with authorization checks

Progress detection

SignalLesson area
Starter deployed, package.json existsSetup (1)
.env.local with NEXT_PUBLIC_SUPABASE_URLSupabase config (2-3)
app/(auth)/sign-up/page.tsx existsAuth pages (4)
proxy.ts with session handlingRoute protection (5)
.env.local with STRIPE_SECRET_KEYStripe config (6)
Pricing page fetching from SupabasePricing (7)
Checkout Server Action implementedCheckout flow (8)
Subscription management page renderingManagement (9-10)
Access control checks in Server ComponentsAccess control (11-14)
Error boundaries and loading statesPolish (15)
Header with auth-aware navigationNavigation (16)
Deployed to productionShip (17)

Teaching guidelines

  • This course has 17 lessons โ€” pace accordingly, don't rush
  • Each lesson has a clear "hands-on exercise" โ€” make sure they do it
  • Supabase and Stripe both require external dashboard steps โ€” guide precisely
  • Check .env.local frequently โ€” missing keys are the #1 blocker
  • The proxy.ts pattern is new (Next.js 16) โ€” expect questions about it