Payments
Stripe integration for paid submissions and sponsorships.
Overview
DirectoryKit integrates with Stripe for payment processing. There are two payment systems:
- Submission plans — One-time payment for premium project listings
- Promotions & Sponsors — Paid placements and sponsorships
Submission plans
Configured in config/plans.config.ts. Default setup includes:
- Free — Basic listing with 1 screenshot
- Premium ($19, one-time) — Featured listing with priority review
Webhook handler
Stripe events are processed at app/api/webhooks/stripe/route.ts. The webhook handles:
checkout.session.completed— Activates paid planspayment_intent.succeeded— Confirms payments
Configuration
Set these environment variables:
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_...
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...Alternative providers
config/payments.config.ts also supports:
- Lemon Squeezy
- Paddle
- None (free-only mode)