PayKit
Minimal Stripe checkout starter — just auth and payments, nothing extra
PayKit is a $49 SvelteKit 5 starter for ecommerce projects. Built with better-auth, sqlite, stripe, tailwind. 190 GitHub stars. Actively maintained.
PayKit takes a deliberately minimalist approach to the “SvelteKit + payments” problem. Where other starters pile on features until they resemble a framework, PayKit ships exactly two things: user authentication and Stripe Checkout. Nothing more.
Better Auth handles login with email/password and Google OAuth. The session management integrates cleanly with SvelteKit’s hooks system, protecting routes with a single line in your layout server load function. User data lives in a SQLite database — no Postgres setup, no connection strings, no managed database costs.
Stripe Checkout handles the payment flow. Rather than building a custom checkout form (and dealing with PCI compliance), PayKit redirects users to Stripe’s hosted checkout page, then handles the success/cancel callbacks and webhook events. Products and prices are defined in Stripe’s dashboard, not in code.
What stands out
The simplicity is the feature. The entire starter is under 20 files. There’s no abstraction layer between you and Stripe’s API — the webhook handler is a single SvelteKit endpoint that validates the signature, switches on event type, and updates the user’s purchase status in SQLite. You can read and understand the complete payment flow in 30 minutes.
This makes PayKit ideal for the “sell one thing” use case: an ebook, a course, a template pack, a premium feature unlock. You don’t need subscription management, usage tracking, or team billing. You need a buy button that works.
The deployment story is refreshingly simple. SQLite means no external database. Better Auth stores sessions in the same SQLite file. Deploy to any platform that supports Node.js and you’re done.
Where it could improve
SQLite is great for simplicity but limits your scaling options. If your digital product takes off and you need multiple server instances, SQLite’s single-file nature becomes a bottleneck. A migration path to Postgres (or at least documentation on how to switch) would add confidence.
No subscription support. If you later decide to offer a recurring membership alongside your one-time product, you’ll either retrofit PayKit or switch to a more comprehensive starter. The Stripe integration handles Checkout Session events but not subscription lifecycle events (renewals, cancellations, payment failures).
The customer portal is absent. After purchase, users can see their purchase status in the app, but there’s no Stripe Customer Portal integration for managing payment methods or downloading invoices. For a $49 starter, adding the portal redirect (a few lines of code) feels like it should be included.
Tech Stack
Strengths
- Laser-focused — auth and payments with minimal abstraction layers
- Stripe Checkout handles the payment UI, reducing PCI compliance burden
- Better Auth keeps the auth layer lightweight and modern
- Under 20 files total — you can read the entire codebase in an hour
Weaknesses
- No database ORM — uses raw SQLite, which limits scalability
- No subscription management — checkout only, no customer portal
- Better Auth is newer and has a smaller community than Lucia
Best for
Creators selling digital products, courses, or one-time purchases who want the simplest possible payment integration
Not ideal for
SaaS products with recurring billing, team plans, or complex pricing tiers