Skip to content

a sveltekit saas skeleton · MIT · fork it

Every product
has the same
bones.
Ours ship built.

Auth, billing, settings, email — the anatomy under every SaaS, assembled and load-bearing. You grow the living part on top.

14 auth routes · 26 screens · 2 locales · 0 superforms

The account is an organ system.

dashboard · billing · notifications · settings

fig. 01 — specimen, live demo skeleton.app
The Skeleton dashboard: plan and notification registers above the reserved slot
plan
the register line — a figure resting on a drawn rule, denominator in the machine voice
unread
notifications wired through entitlements, quiet hours server-side
the slot
reserved for the fork. this part is yours; everything around it is done

Money shows its work.

stripe · proration to the day · dunning

fig. 02 — specimen, live demo skeleton.app
The billing page: the change-plan receipt printing its arithmetic, invoices below
receipt
plan changes print their arithmetic before you commit — credit, charge, due today on one rule
invoices
every receipt kept, chips for state, one click to the pdf
dunning
failed payment becomes a red panel with one recovery action, not an email mystery

Contents of the box.

  • 01
    auth sessions · 2fa + recovery · oauth · lockout · email verify
    built
  • 02
    billing plans · proration · invoices · dunning · portal
    built
  • 03
    email queue · retries · templates · mailer that survives restarts
    built
  • 04
    notifications in-app · email · push · quiet hours · entitlements
    built
  • 05
    i18n en + cs shipped · locale spine in the cms
    built
  • 06
    your product the reserved slot — dashboards, models, the thing itself
    yours

Stop rebuilding the
same skeleton.
Fork this one.

git clone skeleton

MIT · pnpm i · 5 minutes to first run