PayPal + Supabase licensing kit
Charge for your code the same day you write it.
Ship & Charge wires PayPal checkout, signature-verified webhooks and automatic license keys into any app. Clone it, set five environment variables, sell. No subscription, no revenue share, no vendor lock.
Battle-tested. Two live products run on this exact stack.
Honest demo. The buy button on this page runs on Ship & Charge itself.
Three steps, one afternoon
Connect
Create a PayPal REST app and a Supabase project. Paste five keys into the config. Sandbox mode lets you test-buy for free first.
Deploy
Run the schema, deploy two edge functions, point your buy button at one URL. The guide walks every click.
Get paid
Buyer pays, PayPal calls your webhook, signature gets verified, the license key appears on their success page and in your dashboard. Automatically.
What’s in the box
Checkout function
Creates a PayPal order and hands back the approve link. Product name, price and return URLs are environment variables.
Webhook handler
Verifies every event against PayPal’s signature API before trusting it. Duplicate deliveries are ignored by design.
License engine
Readable keys (XXXX-XXXX-XXXX-XXXX), stored in Postgres with row-level security. Anon visitors can read nothing.
Admin dashboard
Single-file dashboard: stats, search, revoke and restore. Ships with demo data so you can preview before connecting.
Sold by the stack it ships
Questions
Do I need a business PayPal account?
A personal account works for testing in sandbox. For live sales, PayPal requires a business account — it’s free to create.
Subscriptions or one-time only?
One-time payments today. The webhook pattern extends to subscription events; the guide marks the exact place to add them.
What do I need to run it?
A free Supabase project and a PayPal account. Everything else — schema, functions, dashboard — is in the download.
Which stack is it written in?
TypeScript edge functions (Deno), plain SQL, and a dependency-free single-file dashboard. No framework to learn.
Refunds?
30 days, processed through PayPal, no questions asked. The admin panel has a revoke button for exactly this.
One afternoon. One payment stack. Yours.
Instant delivery on your success page · 30-day refund