Setup status
Needs configurationSendworth reads its configuration from environment variables. Add the values below in your project settings, then run the SQL schema. This page reflects the live status.
Supabase (Auth + Database)
Powers login, dashboards, and stores submissions.
Supabase service role
Used by the public API and the daily domain sync.
LLM provider
OpenAI-compatible key for the AI content classifier.
Resend (contact form email)
Delivers non-spam contact inquiries to your inbox.
Stripe (payment processing)
Powers plan upgrades and manages subscriptions.
Upstash Redis (cache + rate limit)
Speeds up repeat checks and throttles abusive traffic.
1. Environment variables
Add these in Project Settings, then redeploy or restart.
bash
# Supabase (from your project settings > API)
NEXT_PUBLIC_SUPABASE_URL=your-project-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
# OpenAI-compatible LLM provider (swap for any provider)
AI_BASE_URL=https://api.openai.com/v1
AI_API_KEY=your-provider-key
AI_MODEL=gpt-4o-mini
# Resend (contact form notifications)
RESEND_API_KEY=your-resend-key
CONTACT_TO_EMAIL=bustosandrew28@gmail.com
# Until you verify a domain in Resend, keep the shared onboarding sender:
CONTACT_FROM_EMAIL=Sendworth <onboarding@resend.dev>
# Stripe (payment processing). Get keys from https://dashboard.stripe.com/apikeys
STRIPE_SECRET_KEY=sk_test_...
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...
# Price IDs from https://dashboard.stripe.com/products (create prices for each plan)
STRIPE_PRICE_PRO_MONTHLY=price_...
STRIPE_PRICE_PRO_YEARLY=price_...
STRIPE_PRICE_BUSINESS_MONTHLY=price_...
STRIPE_PRICE_BUSINESS_YEARLY=price_...
# Webhook secret (production only). From https://dashboard.stripe.com/webhooks
STRIPE_WEBHOOK_SECRET=whsec_...
# App
NEXT_PUBLIC_APP_URL=http://localhost:30002. Database schema
Provisions tables, RLS, and the new-user trigger.
sql
-- 1. Create the schema in your Supabase project
-- Paste scripts/001_init.sql into the Supabase SQL editor and run it.