apps in the monorepo
Start With a Working Authenticated File App
Skip the scaffolding. This template gives you auth, file storage, a product UI, and a landing page on day one.
Fits modern AI and app stacks
Cloudflare storage stack
built-in auth flow
CI and template docs included
Example Workflow
From template clone
to first deploy.
Create Your Repo
Use the template, install dependencies, and run the bootstrap script to create local env files.
Create Cloudflare Resources
Provision your own D1 database and R2 bucket, then replace the placeholder values in Wrangler.
Run the App
Start the React frontend, Hono backend, and Astro landing page from one pnpm workspace.
Ship Your Variant
Swap the branding, tune the schema and routes, and deploy a working authenticated file product.
Keep the useful
skip the leftover baggage.
The template is deliberately narrow: auth, products, files, deployment plumbing, and docs you can hand to the next repo owner.
Auth Included
Email verification, session cookies, and user-scoped API routes are already wired up.
Storage Included
Files live in R2 while metadata stays in D1, with per-product ownership checks in the backend.
Landing Included
A separate Astro site is included so you can market the app without mixing it into the product UI.
Frequently asked questions
What does this template include?
A pnpm workspace with a React app, Hono Worker API, Astro landing page, and a simple authenticated file workflow.
Does it ship with infrastructure?
No. The template includes placeholder Cloudflare bindings. You create your own D1 database, R2 bucket, and Pages project.
How does sign-in work?
Users request a verification code by email, then receive a cookie-backed session after entering the code.
Can I change the data model?
Yes. The current schema is intentionally small so you can extend products, files, and auth without removing unrelated history.
Do I need Mailgun to develop locally?
No. If Mailgun values are missing, the backend logs verification codes in development.
Can the landing page point to another domain?
Yes. Set `PUBLIC_APP_URL` in `landing/.env` and all primary CTAs will link to that app URL.
Build the custom part
after the basics already work.
Start from a clean monorepo with CI, setup docs, and a working auth plus file flow instead of rebuilding the same foundation again.
Open the App