architecture (32)
- Automation Minimalist & Modern Stack 2026-06-24Best minimalist stack for automation and testing
- CLI Tools Minimalist & Modern Stack 2026-06-24Best minimalist stack for CLI tools
- C++ Minimalist & Modern Stack 2026-06-24Best minimalist stack for C++
- C# Minimalist & Modern Stack 2026-06-24Best minimalist stack for C#
- Databases Minimalist & Modern Stack 2026-06-24Best minimalist DB stack: serverless SQL, edge SQL, KV, object storage
- Extensions Minimalist & Modern Stack 2026-06-24Minimalist stack for browser/editor extensions
- Go Minimalist & Modern Stack 2026-06-24Minimalist stack for Go and dev tools for Go.
- Hosting Minimalist & Modern Stack 2026-06-24Minimalist hosting: static frontends, edge workers, containers
- Java Minimalist & Modern Stack 2026-06-24Minimalist stack for Java
- JavaScript/TypeScript Minimalist & Modern Stack 2026-06-24Minimalist stack for JavaScript/TypeScript and dev tools for JS/TS.
- Rust Minimalist & Modern Stack 2026-06-24Minimalist stack for Rust
- Python Minimalist & Modern Stack 2026-06-24Minimalist stack for Python and dev tools for Python.
- The twenty-three packages — the locked oriz family package set 2026-06-2223 npm packages: 10 Astro, 4 auth, 5 cross-cutting, 4 specialized
- [REDIRECT] the-six-packages.md → the-23-packages.md 2026-06-22Legacy file, canonical set in the-23-packages.md (18 packages locked 2026-06-22).
- Cross-site auth via auth.oriz.in 2026-06-20auth.oriz.in shared across all *.oriz.in apps subdomain and every Chrome/Firefox/Edge extension. One sign-in, one Firebase user, every surface.
- Layer 3 — auth on Firebase Spark forever 2026-06-20Single Firebase project on Spark plan, never Blaze auth domain auth.oriz.in shared by every site and every extension.
- Package isolation rule — every external service wraps in a typed package 2026-06-20External services wrapped in typed @chirag127 packages so swapping providers is a package version bump, not a 50-file rewrite. Any new service crossing 3+ sites' boundary gets a wrapper on first introduction.
- API routes — apps/api/src/routes/ structure 2026-06-20Hono Worker splits routes by concern under apps/api/src/routes/ \ \u2014 contact, recaptcha, razorpay, firestore, turso, auth. Each folder owns\ \ the integration with one external service."
- API umbrella — one Hono Worker at api.oriz.in 2026-06-20Single Hono Worker at api.oriz.in serves all family API routes See the decision file for why.
- Hono RPC type-sharing — `hc<typeof app>` client across sites 2026-06-20API consumers get full type inference from Hono Worker via rpc client. See the decision file for why.
- Layer 5 — compute, in three tiers 2026-06-20Compute split: GH Actions cron, CF Workers, specialized' Workers (edge runtime), and the user's browser. Each tier has a free quota and a clear remit.
- Service Bindings — future privileged-Worker split 2026-06-20CF Service Bindings: zero-cost, zero-hop RPC between Workers' Workers. Reserved for a future split where the Hono umbrella Worker delegates privileged auth/billing logic to a separate "auth-core" Worker.
- Canonical store — JSONL in chirag127/oriz-me-data 2026-06-20chirag127/oriz-me-data git repo authoritative store for lifestream events. JSONL append-only files are the source of truth; everything else is derived.
- Events table schema (Turso warm cache) 2026-06-20SQL shape lifestream JSONL normalised into for Turso \ warm cache. Lives concretely in oriz-me but the contract is family-wide \u2014\ \ any site reading lifestream events sees this shape."
- Cloud DBs are caches, not sources 2026-06-20Firestore, Turso, R2 are caches rebuilt from canonical JSONL git store on every deploy. If any of them dies, the next deploy reconstructs it from JSONL.
- Layer 4 — database, sharded by data shape 2026-06-20Data shapes spread across free tiers by type load so no single quota gets exhausted. Git for canonical, Firestore for user state, Turso for warm cache, browser for per-user search, R2 only when needed.
- Layer 1 — static hosting on Cloudflare Pages 2026-06-20Cloudflare Pages free primary host for all sites and extensions catalog. Unlimited bandwidth, no card required, fails-closed at quota.
- Layer 2 — survival fallback on GitHub Pages 2026-06-20Every site static fallback to chirag127.github.io/site \ every push to main. If Cloudflare Pages dies, /work + /me + /legal still serve\ \ from github.io. Per the 100-year strategy \xA716."
- Extension distribution — Chrome, Firefox, Edge, automated 2026-06-20Each extension own GH repo, submoduled under extensions/ Each repo has its own CI workflow that publishes to Chrome Web Store, Firefox Add-ons, and Edge Add-ons on release. Landing pages live on extensions.oriz.in (with a copy at oriz.in/extensions).
- Master pointer as production SHA 2026-06-20Master repo submodule pointers = production SHA state of the family. Bumping a submodule pointer + pushing master = deploying that submodule to production via the matrix workflow.
- Subscription flow — Razorpay → webhook → Firestore → every site 2026-06-20One subscription unlocks everything via Razorpay webhook lands at api.oriz.in, Worker writes users/{uid}/subscription, every site and extension reads that doc to gate features.
- Submodule pattern — each site/package/extension is a separate GitHub repo 2026-06-20Each site/package/extension standalone GH repo repo added as a git submodule under sites/, packages/, or extensions/. The submodule has its own commits, releases, CI, and main branch. The master oriz repo stores a SHA pointer per submodule.