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 key
  • WORKOS_CLIENT_ID — Your WorkOS client ID
  • WORKOS_COOKIE_PASSWORD — A random 32+ character string for session encryption

Convex (Database)

  • NEXT_PUBLIC_CONVEX_URL — Your Convex deployment URL
  • CONVEX_DEPLOY_KEY — Deployment key for CI/CD

Stripe (Payments)

  • STRIPE_SECRET_KEY — Your Stripe secret key
  • STRIPE_WEBHOOK_SECRET — Webhook signing secret
  • NEXT_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.