Saavo documentation

Turn the template into a paid product, from environment setup to deployment.

Saavo is a SaaS template with authentication, billing, permissions, accounts, support tickets, analytics, and an admin dashboard already implemented. Most setup involves editing config/, filling in .env, and replacing the copy, without having to build sign-in and payments from scratch.

The documentation follows the sequence of preparing your environment, running the template, developing features, and deploying the application. For field definitions, troubleshooting, or project updates, go directly to the reference, troubleshooting, or upgrade and maintenance chapters.

Find the right guide

Your goalChapter
Register accounts, install development tools, and prepare third-party servicesPrerequisites
Run the unmodified template locally and deploy it to workers.devQuickstart
Build a real product from the default templateBuild a product
Find out how to enable or integrate a featureFeatures
Find an implementation for a specific requirementDevelopment recipes
Configure production resources and a custom domain, then verify the deploymentDeployment

Start with configuration

The documentation identifies which tasks only require configuration changes and which require code. The sample product catalog uses the boolean starter_download entitlement. The underlying system supports quotas, Credits, and one-time purchases, but the default plans do not enable them.

What the template includes

  • Email and password sign-up and sign-in, email verification, password recovery, 2FA, and Google / GitHub sign-in
  • Stripe Checkout, subscriptions, the billing portal, webhooks, and role and entitlement grants after a purchase
  • Admin dashboard: users, subscriptions, one-time purchases, tickets, affiliates, notifications, analytics, logs, and OAuth clients
  • User-facing features: accounts, tickets, notifications, the affiliate program, legal pages, and documentation
  • D1, KV, R2, Queues, Durable Objects, and Cron on Cloudflare Workers

The brand name, plans, legal pages, domain names, and Cloudflare resource IDs are examples. You must replace them with your own before launch.