Install any skill in seconds. Free to start, no credit card required.
Get Started Free →hashgraph-online/framework-adapters
Guide for mounting official @dodopayments/* checkout, portal, and verified-webhook route handlers in supported web frameworks; use domain skills for payment and lifecycle logic.
Passed 19 of 22 test cases with the skill, and 7 of 22 without it.
and 16 more in the full report
12 fixed7 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 12 test cases the skill fixed. Same model, same prompt, with and without the skill.
I called `const handler = Checkout(config)` from `@dodopayments/fastify` and tried to pass `handler` directly to `fastify.get('/api/checkout', handler)`. Fastify threw a route registration error. How should the GET and POST routes be mounted from the returned adapter object?
| Checked | Without skill | With skill |
|---|---|---|
| Mounts GET route using getHandler from the object returned by Checkout. | Missed | Passed |
| Mounts POST route using postHandler from the object returned by Checkout. | Missed | Passed |
The instructions your model reads when the skill loads.
Use this skill when you need to integrate Dodo Payments into a web framework using the official adapter packages. Framework adapters handle route plumbing, environment configuration, and handler setup so you don't build checkout, portal, and webhook routes from scratch.
Dodo publishes @dodopayments/* packages that wrap the core SDK with framework-specific route handlers. Instead of writing your own HTTP handlers, you import the adapter's handlers and mount them directly in your routes.
Each adapter exposes three handler families:
Export names are not uniform across adapters. Most export Checkout / CustomerPortal / Webhooks, but two differ, and the return shapes differ as well. Check this table before writing imports:
| Adapter | Checkout export | Portal export | Handler shape |
|---|---|---|---|
nextjs, hono, astro, bun, remix, tanstack | Checkout | CustomerPortal | returns a request handler |
express | checkoutHandler (lowercase) | CustomerPortal | returns (req, res) |
fastify | Checkout | CustomerPortal | returns { getHandler, postHandler } |
sveltekit | Checkout | CustomerPortal | returns { GET, POST } / { GET } |
nuxt | checkoutHandler (auto-imported) | customerPortalHandler | no import statement |
convex | DodoPayments component | — | createDodoWebhookHandler |
The adapters handle raw body preservation for webhook verification, environment variable mapping, and framework-specific request/response shapes. Checkout payload design belongs to the checkout-integration skill; webhook business logic belongs to webhook-integration; portal behavior belongs to customer-management.
| Framework | Package | Install |
|---|---|---|
| Next.js | @dodopayments/nextjs | npm install @dodopayments/nextjs |
test cases passed, vs 7 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.