From 49c0ed31f16215641dcf0b2acfa1426ef155f21d Mon Sep 17 00:00:00 2001 From: Deeman Date: Wed, 11 Feb 2026 21:25:00 +0100 Subject: [PATCH] add .claude --- README.md | 92 ------------------------------------------- padelnomics/README.md | 4 -- 2 files changed, 96 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index c577f50..0000000 --- a/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# Forge - Minimal SaaS Boilerplate - -A data-oriented, no-nonsense SaaS boilerplate following Casey Muratori's principles: solve the problem at hand, avoid premature abstraction, readable over "clean". - -## Stack - -- **Framework**: Quart (async Flask) + Pico CSS -- **Database**: SQLite + WAL mode + Litestream replication -- **Auth**: Magic link (passwordless) -- **Billing**: Stripe (+ optional Paddle) -- **Background jobs**: SQLite-based queue (no Redis) -- **Deployment**: Docker + Caddy + Hetzner/any VPS - -## Usage - -### Generate a new project - -```bash -# Install copier -pip install copier - -# Generate project -copier copy gh:yourusername/forge my-saas - -# Or from local template -copier copy ./forge my-saas -``` - -### Answer the prompts - -``` -project_slug: my_saas -project_name: My SaaS -description: A subscription service for widgets -author_name: Your Name -author_email: you@example.com -base_url: https://my-saas.com -include_paddle: false -``` - -## After Generation - -See the generated project's README for setup instructions. - -## Philosophy - -1. **Data-oriented**: Plain SQL, no ORM magic -2. **Flat structure**: Domain modules, not enterprise folders -3. **Concrete over abstract**: Write code first, extract patterns only when repeated 3+ times -4. **SQLite until proven otherwise**: Handles more than you think -5. **Server-rendered**: Pico CSS + minimal HTMX, no build step -6. **Measure don't assume**: Profile before optimizing - -## Structure - -``` -padelnomics/ - src/padelnomics/ - app.py # Application factory - core.py # DB, config, email, shared utils - worker.py # Background task processor - - auth/ # Domain: authentication - routes.py # Routes + queries + decorators - templates/ - - billing/ # Domain: subscriptions & payments - routes.py - templates/ - - dashboard/ # Domain: user dashboard - routes.py - templates/ - - public/ # Domain: marketing pages - routes.py - templates/ - - api/ # Domain: REST API - routes.py - - templates/ # Shared templates - base.html - - migrations/ - schema.sql - migrate.py -``` - -## License - -MIT diff --git a/padelnomics/README.md b/padelnomics/README.md index 227a169..3034c08 100644 --- a/padelnomics/README.md +++ b/padelnomics/README.md @@ -134,7 +134,3 @@ Configure `litestream.yml` with your S3/R2 bucket, then: # Run with replication litestream replicate -config litestream.yml ``` - -## License - -MIT