PayKit

Minimal Stripe checkout starter — just auth and payments, nothing extra

PayKit screenshot

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.

Reviewed by Gio Rodriguez Editor, SvelteStarters

Tech Stack

Auth better-auth
Database sqlite
Payments stripe
Styling tailwind
Deploy vercel
Deploy cloudflare-pages
Deploy netlify

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

Similar starters