Skip to content

Artificer-Innovations/BeakerStack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

255 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Beaker Stack

Ship your SaaS faster.

Test License: MIT Node Release Discussions

Beaker Stack is the foundation we wished existed for shipping real B2C SaaS: one product, two surfaces, one backend, one deploy pipeline. Web and mobile from a shared codebase, auth and billing past the demo, a three-environment pipeline that catches mistakes before production, and a structure that AI coding agents can modify without breaking things.

React + Vite on the web. React Native + Expo on mobile. Supabase underneath. Stripe when you take money.

Beaker Stack PR checks, setup wizard, and mobile app

beakerstack.com · Quick start · Releases

Why this shape

The wedge. A credible B2C app needs web, iOS, Android, auth, billing, entitlements, and a marketing site that ranks — not eventually, from day one. Most templates give you one slice. Stitching the rest is a four-to-six-week integration project before you write product code. Beaker Stack is that work already done, in a shape that still holds when you customize it.

One codebase, not three products that drift. The slow death of cross-platform apps is duplicated business logic: validation on web, different validation on mobile, billing hooks that only exist on one surface. Shared hooks, shared types, shared billing in packages/shared mean one bug, one fix, three platforms. That is not a reuse percentage; it is how you keep “one product” true after the fork.

Three environments because “works on my machine” is not a release strategy. B2C apps that take payments cannot ship migrations that break production, and stakeholders need to click a feature in a PR, not read a diff. Beaker Stack mirrors your branch model in Supabase — local Docker, shared PR preview DB, staging on develop, production on main — and deploys path-based web previews so the artifact under review is the running change.

The test pyramid (unit, integration, E2E, database) catches regressions across web and mobile in a single PR, before merge. Optional EAS Update channels align mobile to the same preview → staging → production flow.

Built for AI coding agents. Dozens of full-stack templates exist. Few say plainly: we designed this to be modified by AI coding agents, and here is how. Typed landing and billing configs fail loudly instead of silently rendering wrong copy. Schema-generated types tie the database to TypeScript so an agent cannot drift from RLS reality. Tests are colocated with a documented decision matrix so an agent knows where new coverage belongs. Monorepo boundaries scope changes. When an agent still ships something broken, PR previews and CI are the safety net — not hope.

Fork the template; update the packages. Every template fork diverges immediately — that is fine. Beaker Stack does two things about it. CalVer tags (2026.001, …) mark exact snapshot baselines so you know what you forked and can merge upstream deliberately (docs/UPGRADING.md). Reusable pieces ship as @beakerstack/* npm packages (semver, Changesets) so you can bump test helpers or billing without re-merging the whole monorepo. See docs/VERSIONING.md.

Template + npm packages

Distribution What it is
Template Fork or “Use this template”; CalVer tags + GitHub Releases
npm packages Optional @beakerstack/* for existing apps; semver via Changesets
Package Status Install
@beakerstack/test-utils Published on npm (0.0.1; workspace may show 0.0.0 until release PR merges) npm i -D @beakerstack/test-utils
@beakerstack/billing In template (npm planned) Workspace in fork today
@beakerstack/shared In template (npm planned) Workspace in fork today

What's in the repo

Reference inventory — the argument is above.

Area What you get Doc
Apps Web (Vite), mobile (Expo), shared packages/* ARCHITECTURE
Auth Email/password, Google OAuth, optional Apple; RLS-first profiles; schema-generated types OAUTH
Billing Stripe subscriptions (not one-off checkout-only), plan gates, customer portal, usage metering stripe-billing-setup
Marketing Config-driven landing; prerendered SEO home (canonical + Open Graph) landing README
CI/CD Path-based PR previews on AWS (S3/CloudFront), staging on develop, production on main, EAS channels pr-preview-setup
Setup npm run setup / setup:full (local + optional full cloud) QUICKSTART
Tests Unit, integration, Maestro E2E, pgTAP DB tests; colocated with decision matrix TESTING
Agents Typed configs, generated DB types, package boundaries, test placement rules — conventions in ARCHITECTURE + TESTING ARCHITECTURE, TESTING

Stack: React 18.2, Vite 5, Expo SDK ~50, React Native 0.73, Node 20 in CI.

Screenshots

Billing UI Environments pipeline Web + mobile
Billing plans UI Three-environment pipeline Web and mobile

Quick start

git clone https://github.com/<your-org>/<your-repo>.git
cd <your-repo>
npm install
npm run setup

The setup wizard handles Docker Supabase, .env.local, and type generation. Full cloud + CI: read docs/setup-prep-checklist.md before npm run setup:full, then QUICKSTART.md.

Node.js 20.19+ (>=20.19.0 in package.json; matches CI). Docker Desktop + Supabase CLI for local work.

Renaming the template

npm run rename -- --from "Beaker Stack" --to "Your Product" --dry-run

docs/renaming.md

Project structure

BeakerStack/
├── apps/web, apps/mobile
├── packages/shared, packages/billing, packages/test-utils
├── supabase/          # migrations, Edge Functions
├── tests/             # integration & E2E
├── scripts/           # setup, deploy, codegen
└── docs/

Documentation

Topic Doc
First run QUICKSTART.md
All guides docs/README.md
Development docs/DEVELOPMENT.md
Architecture docs/ARCHITECTURE.md
Versioning docs/VERSIONING.md
OAuth docs/OAUTH.md
Stripe billing docs/stripe-billing-setup.md
Testing docs/TESTING.md
Mobile native docs/guides/MOBILE.md
Contributing CONTRIBUTING.md
Security SECURITY.md

Development

Day-to-day commands: docs/DEVELOPMENT.md. Native rebuilds and EAS: docs/guides/MOBILE.md.

Releases

Template: CalVer tags (2026.001, …), notes from conventional commits — Releases. Packages: independent semver on npm.

Contributing

Bug fixes, docs, agent-friendly structure improvements, and shared packages welcome. For larger changes, open a Discussion first. Stack swaps (different auth, payments, or framework) belong in your fork — CONTRIBUTING.md.

License

MIT

Built with

Supabase, Stripe, React, React Native, Expo, Vite.

About

Ship your SaaS faster — opinionated Supabase template for web (React + Vite) and mobile (Expo), with billing, PR previews, and staged CI/CD.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors