Products & Prices

Set up and manage your subscription products in Stripe.

Setup Steps

  1. Log into Stripe Dashboard
  2. Enable Test Mode (top-right toggle)
  3. Create products with exact names below
  4. Add metadata for each product
  5. Copy price IDs to your .env file

Required Product Names

# Free Plan
Name: prod_free
Description: Basic features for individuals
Price: $0/month
# Basic Plan
Name: prod_basic
Description: Essential features for small teams
Prices:
- Monthly: $10/month
- Yearly: $100/year (save ~17%)
# Pro Plan
Name: prod_pro
Description: Advanced features for growing businesses
Prices:
- Monthly: $25/month
- Yearly: $250/year (save ~17%)
# Enterprise Plan
Name: prod_enterprise
Description: Custom solutions for large organizations
Price: Contact Sales
# Lifetime Plans
Name: prod_lifetime_tier1
Description: One-time payment for Basic features forever
Price: $299 (one-time)
Name: prod_lifetime_tier2
Description: One-time payment for Pro features forever
Price: $699 (one-time)

Adding Product Metadata

Each product requires specific metadata in Stripe. Follow these steps:

Steps to Add Metadata

  1. Go to Products in Stripe Dashboard
  2. Select the product you want to edit
  3. Scroll to "Metadata" section
  4. Click "Add metadata"
  5. Add "features" as the key
  6. Add the features array as a JSON string, example:
["Basic dashboard", "Limited API calls", "Email support"]

Important

The features array must be a valid JSON string with double quotes. Make sure to use the exact product names as shown above.

Adding New Products

1. Add to Database

Run these queries in Supabase SQL editor:

-- Add new product
INSERT INTO products (id, active, name, description, metadata)
VALUES (
'prod_new_tier',
true,
'New Plan',
'Description here',
'{"features": ["Feature 1", "Feature 2"]}'
);
-- Add prices
INSERT INTO prices (id, product_id, active, description, unit_amount, currency, type, interval)
VALUES
('price_new_monthly', 'prod_new_tier', true, 'Monthly', 2000, 'usd', 'recurring', 'month'),
('price_new_yearly', 'prod_new_tier', true, 'Yearly', 20000, 'usd', 'recurring', 'year');

2. Create in Stripe

  1. Create product with exact name matching database
  2. Add monthly and yearly prices if needed
  3. Add features metadata as JSON array
  4. Update price IDs in database

Changing Prices

Important: Update Both Systems

Always update database first, then create new prices in Stripe. Never modify existing prices.

1. Update Database

  1. Open Supabase Table Editor
  2. Find price in 'prices' table
  3. Update unit_amount (in cents)

2. Update Stripe

  1. Create new price in Stripe Dashboard
  2. Archive old price
  3. Update stripe_price_id in database

Existing Subscriptions

Price changes don't affect existing subscriptions. Consider grandfathering or migration strategy.