Configuration
ShiftKit is configured primarily through src/config/site.ts and environment variables.
site.ts
The siteConfig object drives all landing page content, navigation, and metadata:
- name — Your product name (appears in header, footer, meta tags)
- tagline — Hero headline text
- description — Meta description and hero subtext
- features — Array of feature cards with icon, title, and description
- pricing — Pricing tiers with labels, prices, and feature lists
- faq — FAQ items for the landing page
Environment Variables
Create a .env.local file from env.example. Required variables:
WorkOS (Authentication)
WORKOS_API_KEY— Your WorkOS API keyWORKOS_CLIENT_ID— Your WorkOS client IDWORKOS_COOKIE_PASSWORD— A random 32+ character string for session encryption
Convex (Database)
NEXT_PUBLIC_CONVEX_URL— Your Convex deployment URLCONVEX_DEPLOY_KEY— Deployment key for CI/CD
Stripe (Payments)
STRIPE_SECRET_KEY— Your Stripe secret keySTRIPE_WEBHOOK_SECRET— Webhook signing secretNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY— Your Stripe publishable key
Customization
Adding new pages
Create files under src/app/ using Next.js App Router conventions. ShiftKit uses route groups — (landing) for public pages and demo for the interactive demo.
Extending the schema
Add new tables in convex/schema.ts and create corresponding queries/mutations. Follow the existing users and subscriptions patterns for RLS integration.