Codapult
DocsBlogPricingPluginsDemo
Get Codapult
Logo

Build your SaaS with AI. Keep the architecture under control.

Get Codapult

Product

  • Pricing
  • Architecture
  • Modules
  • AI platform
  • Plugins

Developers

  • MCP
  • CLI
  • Documentation
  • Launch your SaaS
  • Build a B2B SaaS

Resources

  • Blog
  • FAQ

Connect

  • Contact
  • GitHub

Compare

  • SaaS template comparison
  • Codapult vs Supastarter
  • Codapult vs Makerkit
  • Codapult vs ShipFast
  • Codapult vs SaaSBold
  • Codapult vs Gravity
  • Codapult vs Nextbase
  • Codapult vs BuilderKit

Featured on

Codapult on LaunchNestCodapult on LaunchNestbetterlaunch.cobetterlaunch.coFeatured on LaunchBuffFeatured on LaunchBuffCodapult on PeerPushCodapult on PeerPushFeatured on LaunchItFeatured on LaunchIt
© 2026 Codapult·All rights reserved·Privacy Policy·Terms of Service
Full source code · One-time purchase · Self-host anywhere
All articles

Getting Started

  • Introduction
  • Quick Start
  • Your First 30 Minutes
  • Project Structure
  • License and Permitted Use
  • Starter Profiles and Recipes
  • Product Recipes

Configuration

  • Environment Variables
  • App Configuration
  • Which Modules Should I Enable?
  • Provider Matrix
  • Capability Coverage

Database

  • Database and Provider Guide
  • Database
  • Migrations

Authentication

  • Authentication
  • OAuth Providers
  • Two-Factor & Passwordless
  • Enterprise SSO (SAML)

Ai

  • AI Runtime Architecture and Evals
  • AI Features
  • Streaming Chat
  • RAG and Semantic Search
  • Quotas and Memory

Teams

  • Teams & Organizations
  • Permissions & RBAC
  • SCIM Provisioning

Security

  • Data Retention Policy
  • Security

Deployment

  • Enterprise E2E Evidence
  • Enterprise Production Readiness
  • Deployment, Backup, and Restore Runbook
  • Deployment
  • Troubleshooting

Payments

  • Payments & Billing
  • Stripe Setup
  • LemonSqueezy Setup
  • Polar Setup
  • Payment Webhooks

Api

  • API Layer
  • tRPC
  • GraphQL

Email

  • Email
  • Email Templates

Infrastructure

  • Infrastructure
  • Self-Hosting
  • File Storage
  • Docker
  • Background Jobs
  • Terraform & Pulumi
  • Kubernetes

Ui

  • UI & Theming

I18n

  • Internationalization

Content Management

  • Content Management

Admin

  • Admin Panel

Monitoring

  • Analytics & Monitoring

Modules

  • Module Architecture
  • Waitlist
  • Audit Log
  • White-Labeling
  • Workflow Automation
  • A/B Testing
  • Welcome Page
  • Referrals
  • GDPR Export and Deletion
  • Promotions
  • Outgoing Webhooks

Plugins

  • Plugin System
  • CRM Plugin
  • Helpdesk Plugin
  • Email Marketing Plugin

Upgrading

  • Upgrading Codapult

Developer Tools

  • AI Agents & IDEs
  • MCP Server
  • Testing
  • Build Your First Feature with Codapult MCP
  • How Guard Blocks an Architectural Regression
Payments

LemonSqueezy Setup

Configure LemonSqueezy as an alternative payment provider with automatic tax handling.

LemonSqueezy is a Merchant of Record — it handles VAT, sales tax, and compliance globally, so you don't have to.

Setup

PAYMENT_PROVIDER="lemonsqueezy"
LEMONSQUEEZY_API_KEY="your-api-key"
LEMONSQUEEZY_STORE_ID="your-store-id"
LEMONSQUEEZY_WEBHOOK_SECRET="your-webhook-secret"

Get your credentials from the LemonSqueezy Dashboard.

Differences from Stripe

FeatureStripeLemonSqueezy
Tax handlingYou handle (or use Stripe Tax)Automatic (MoR)
Multi-line checkoutYes (base plan + add-ons)Single product per checkout
Customer portalStripe-hosted portalLemonSqueezy-hosted portal
Connect / marketplaceYes (Stripe Connect)Not supported
Webhook eventsStripe event namesLemonSqueezy event names

Codapult's adapter normalizes both providers behind the same interface, so your application code stays the same.

Webhook Setup

The LemonSqueezy webhook endpoint is POST /api/webhooks/lemonsqueezy.

  1. Go to LemonSqueezy → Settings → Webhooks
  2. Add endpoint: https://your-app.com/api/webhooks/lemonsqueezy
  3. Set the signing secret
  4. Select subscription and order events

Product Configuration

Create your products and variants in the LemonSqueezy dashboard, then map them to plan IDs in src/lib/payments/plans.ts. The adapter uses the LemonSqueezy variant ID to match plans during checkout and webhook processing.

Environment Variables

VariableRequiredDescription
LEMONSQUEEZY_API_KEYYesLemonSqueezy API key
LEMONSQUEEZY_STORE_IDYesYour LemonSqueezy store ID
LEMONSQUEEZY_WEBHOOK_SECRETYesWebhook signing secret

For the full LemonSqueezy documentation, see docs.lemonsqueezy.com.

Stripe SetupPolar Setup