finds.dev← search

// the find

getpaykit/paykit

★ 987 · TypeScript · MIT · updated Jun 2026

The billing framework for TypeScript. Products in code, handles Stripe, webhooks, and usage state, runs in your app.

PayKit is an embedded billing framework for TypeScript that keeps subscription state in your own database rather than delegating it to a hosted platform. You define plans and features in code, and it handles the Stripe webhook lifecycle, entitlement checks, and usage metering. Aimed at SaaS builders who want billing logic colocated with their app without paying Stripe's platform tax or losing data ownership to something like Autumn.

The plan/feature DSL is genuinely clean — defining a metered feature and attaching it to a plan in ~10 lines of typed code is better than wiring up Stripe products manually or through a dashboard. Keeping billing state in your own Postgres means you can JOIN it with your app data, write migrations alongside your schema, and not get rate-limited by a third-party entitlement API on every request. The multi-provider topic list (Stripe, Polar, Creem) suggests the abstraction layer is real and not just Stripe with a wrapper. The `npx paykitjs init` CLI scaffolding lowers the activation energy significantly.

Under 1000 stars and 41 forks on a billing library is a real risk signal — billing is exactly the domain where you need battle-tested edge case coverage, and there's not enough production mileage here to trust it blindly. The demo app leans heavily on Autumn (a competing hosted service) in its component names and API routes, which is confusing and suggests the author may be building both and cross-promoting. No visible test suite in the directory tree for the core `paykitjs` package — for a library that touches money, that's a red flag. Migration strategy for existing Stripe customers with active subscriptions is not addressed in the README at all.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →