payments · tutorial · webhooks

Next.js + Dodo $199 Once: Beat $15/mo Forever

One-time lifetime billing with global coverage: Dodo behind the same provider interface, same dedupe, same paywall. Template inside.

A painting of a dodo with a macaw and other birds, a copy after Roelant Savery
A painting of a dodo with a macaw and other birds, a copy after Roelant Savery · Photo: Roelant Savery (copy), public domain, via Wikimedia Commons

Subscriptions punish weekend projects

$15 a month sounds harmless until the spreadsheet.

200 customers at $15 is $3k a month.

It is also $3k of monthly churn risk.

Dunning emails.

Failed-card retries.

Cancellation flows to maintain.

For a solo founder, subscription machinery is a second product wearing the first one's clothes.

Lifetime deals invert it.

Charge once.

Grant forever.

Collect no recurring obligations.

Cash upfront funds the build. Support load tracks users, not billing edge cases. The model fits templates, developer kits and tools: products sold, not rented.

Subscription billing or lifetime billing

Concern $15 a month $199 once
Revenue from 200 users $3k a month, churning About $40k in cash, kept
Billing machinery Dunning, retries, proration One charge, one grant
Failed-payment support Weekly card-chasing Near zero
Churn math A monthly existential check None, sold is sold
Raising prices A grandfathering maze A v2 at a new price

Lifetime wins for solo sellers. Three reasons.

Support scales with users either way. A lifetime customer emails as often as a subscriber, but never about billing. Half of subscription support is failed cards and plan confusion. Lifetime deletes the category.

Cash timing favors builders. $40k upfront buys the year of runway that $3k a month promises in month thirteen. Solo founders die of cash timing, not totals.

Global cards just work. Dodo's checkout covers international cards and regional methods. Verify current coverage for your buyers' countries.

Subscriptions win for ongoing-cost products.

Per-seat tools.

API meters.

Teams.

Kits are sold artifacts.

Price them like artifacts.

What to do

Define the sale as data, never as code.

Create your product in the Dodo dashboard. Add it to the product list in your BoringPush dashboard.

The price lives in one product row.

Checkout and the webhook both read it.

It never lives in client code and never in what a browser sends.

Change the price by editing data.

Point the webhook at your domain.

In Dodo's dashboard, set the webhook address to your site. Paste the signing secret into your production settings. Every incoming event is verified before anything happens.

The same payment arriving twice grants access once, because each payment is recorded under a unique reference.

Then let access grant itself.

When a payment succeeds, the buyer's account switches to paid access and the order is recorded. The buyer lands back on your site and sees their order.

No manual license keys. No "within 24 hours". Lifetime buyers convert on immediacy.

The Dodo drill

Check Action Pass looks like
Price truth Change the product row, reload checkout The new price shows, no code change
Once means once Replay a payment webhook three times One order, access granted once
Global card Test-mode regional methods They succeed through the same flow
Refund path Send a test refund Access is removed, order marked
Speed Click to access, timed Access arrives within moments

Rehearse refunds hardest. Lifetime goodwill dies fastest on slow refunds, and refund paths rot silently because success means never using them.

Test in test mode every quarter.

The cost

Lifetime pricing caps the value of each customer. No expansion revenue. No price lever on existing buyers.

Treat that as freedom. A v2 can sell separately. Happy owners become referrers, not annuities.

Know this first

Lifetime pricing caps the value of each customer. No expansion revenue. No price lever on existing buyers.

Dodo supports recurring billing too. Check its current terms.

Why BoringPush is the way to do this

Sell once. Be paid worldwide.

BoringPush includes Dodo behind the same interface as Stripe.

Define the sale.

Point the webhook.

Access grants itself.

Each payment records once, even if it arrives twice.

FAQ

Is Dodo right for subscriptions too?

Dodo supports recurring billing, but check its current plan details before you rely on it. The kit's Dodo path is tuned for the one-time sale. If subscriptions dominate your catalog, start with Stripe's recurring flow and keep Dodo for a lifetime tier.

How do lifetime customers get support?

Through the same inbox as everyone else. The order links to the user, so support can look up either. Write your scope in plain words, such as which updates and what kind of support are included, so "lifetime" does not become "forever, everything".

What stops buyers sharing one lifetime purchase across a team?

Access is bound to the purchasing account, so sharing means sharing a login. For team-sized abuse, a per-seat upgrade price turns sharers into buyers instead of punishing them.

Can I raise the lifetime price later?

Yes. Early buyers keep their deal and new buyers see the new price. Announce it a week ahead and honor the old price on carts already open.

How does Dodo compare to Gumroad or LemonSqueezy for lifetime deals?

Gumroad leans marketplace, LemonSqueezy leans merchant of record plus subscriptions, and Dodo leans global one-time checkout with regional depth. Compare fees, payout speed and buyer coverage on their current pricing pages, because these change.

What if Dodo changes its fees after I commit?

The shared interface is your hedge. Switching providers is a setting change plus remapping your product and webhook, and no feature code changes. Fee changes become business mail, not a migration project.

Keep reading

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading