LaunchApp
Update1 min read

Dual payments: Stripe and Polar.sh in every template

All LaunchApp templates now ship with both Stripe and Polar.sh wired up out of the box. Webhooks, idempotency keys, and receipt pages included.

We've added Polar.sh alongside Stripe in all LaunchApp templates. Teams can now choose their payment provider at deployment time — no code changes required.

Why two providers?

Stripe is the gold standard for payment infrastructure. Polar.sh is a newer option purpose-built for SaaS and indie hackers — it handles EU VAT, has simpler pricing, and integrates more naturally with open-source projects on GitHub.

Different teams have different preferences and requirements. By shipping both, we let teams choose based on their specific needs without having to graft one onto a template that wasn't designed for it.

What's wired up

Both providers come with:

  • Checkout session creation
  • Webhook handling with idempotency
  • Receipt and confirmation pages
  • Error recovery flows

The checkout UI is provider-agnostic — the same component calls the appropriate API based on environment variables.

Choosing your provider

Set the POLAR_ENABLED environment variable to switch between providers. When Polar is enabled, checkout uses Polar's hosted page. When disabled (the default), it uses Stripe. Everything else stays the same.

Want to follow along? Browse all posts or follow @launchappdev on X.