~/VibeHandbook
$39

Payments

polar.sh

Polar

What it is

Picture a shop of record that handles the receipt and the taxes for you, so you just supply the product. That is an "MoR ()": the company that is legally the one selling to your customer. Polar is a developer-first MoR platform for selling digital products, subscriptions, and usage-based billing. Like other MoR services, Polar is the legal seller, so it collects and pays sales tax and VAT (Value Added Tax, a sales tax used in many countries) for you. Its angle is the developer experience: a clean, modern (Application Programming Interface, a way for programs to talk to each other), good SDKs (Software Development Kits, ready-made code bundles that make a service easy to wire in), and tight integration with the tools indie developers and open-source maintainers already use, including built-in support for things like license keys, digital downloads, and metered usage.

Strengths

  • Merchant of record: global tax compliance handled for you, like Lemon Squeezy and Paddle.
  • Developer-focused API and SDKs (ready-made code bundles) designed to be quick to integrate.
  • First-class support for subscriptions, one-time sales, and usage-based billing.
  • Popular with open-source and indie developers; built-in benefits like license keys and downloads.
  • Modern dashboard and good tooling for fulfillment.

Trade-offs

  • Newer and smaller than Stripe or Paddle, so the ecosystem is still growing.
  • MoR fees apply on top of processing — the price of not handling tax yourself.
  • Fewer third-party integrations and less battle-tested at very large scale.
  • Like all MoR platforms, it's tuned for digital goods, not physical inventory.

Best for

Indie developers, open-source maintainers, and small SaaS teams who want a modern, code-friendly way to charge for products or usage while letting the platform handle worldwide tax — especially if they value a clean API and a fast integration.

Vibe coding fit

Polar is a strong vibe-coding pick because it's built for developers, so the API maps cleanly onto what an expects. Have the agent create a checkout for your product, then a webhook handler that grants access on a completed order or active subscription. A webhook is an automatic message Polar sends your app when an event happens (an order, a cancellation), so your app reacts on its own. Because Polar is the merchant of record, instruct the agent to skip tax logic entirely and focus on syncing who is allowed in. Verify webhook signatures, and handle events idempotently — that is, make sure the same event arriving twice doesn't grant access twice.

// Polar webhook handler (server-side)
export async function onPolarEvent(event) {
  if (event.type === "order.created" || event.type === "subscription.active") {
    await grantAccess(event.data.customer.id);
  }
  if (event.type === "subscription.canceled") {
    await revokeAccess(event.data.customer.id);
  }
}