{"repo":"auditmos/saas-on-cf","free":true,"listed":false,"github":"https://github.com/auditmos/saas-on-cf","clone":"git clone https://github.com/auditmos/saas-on-cf.git","description":"Multi-app SaaS monorepo — TanStack Start frontend + Hono API on Cloudflare Workers, Better Auth, Neon Postgres + Drizzle, shadcn/ui, service bindings.","language":"TypeScript","stars":14,"topics":["better-auth","saas-boilerplate","tanstack-start","cloudflare-workers","drizzle","hono","monorepo","neon","pnpm-workspace","service-bindings"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"SaaS-on-CF (Software as a Service on Cloudflare) AI agent index: llms.txt Modular web application template Using this Template 1. Click Use this template on GitHub (or gh repo create --template ). 2. pnpm install . Node is pinned in .node-version — fnm, nvm, nodenv, asdf and Cloudflare's build images all read it, and engines in the root package.json states the same range for pnpm. Run fnm use (or your manager's equivalent) first if your shell is on another major. 3. pnpm run init-project — prompts for a kebab-case project name, renames every wrangler.jsonc + root package.json , and fans out the .example templates into per-env files ( apps/data-service/.{dev,staging,production}.vars , apps/user-application/.env{,.staging,.production} , packages/data-ops/.env.{dev,staging,production} ). Idempotent — re-runnable, never overwrites filled-in files. The script's \"Next steps\" output lists every field that still needs a value. 4. Provision a Neon database and fill DATABASE HOST/USERNAME/PASSWORD in the env files created above. Set BETTER AUTH SECRET ( openssl rand -base64 32 ) in apps/user-application/.env and the matching VITE API TOKEN / DATA SERVICE API TOKEN / API TOKEN triple per environment. 5. Run pnpm run setup && pnpm run db:generate:dev && pnpm run db:migrate:dev . 6. Start dev in two terminals: pnpm run dev:data-service (port 8788) and pnpm run dev:user-application (port 3000). 7. (Optional, when you're done with the demo) delete the example client domain: packages/data-op","default_branch":null,"files":null,"tree":[],"storefront":"/r/auditmos","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/auditmos/saas-on-cf/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}