← knowledge.oriz.in

The twenty-three packages — the locked oriz family package set

architecture architecturepackagesastronpmlocked

The twenty-three packages — locked

Concept

23 npm packages under @chirag127/* are the shared surface for the family.

A package exists only when:

  1. =25 lines of identical code would otherwise duplicate across
  2. =3 consuming projects, AND
  3. No community npm package already does it adequately.

If only (1) and (2) hold but (3) doesn't — use the community package directly. If only (2) holds and the duplication is <25 lines — inline.

The set (23 total)

Layered Astro packages (10)

# Package Peer-dep What it owns
1 @chirag127/astro-shell — (base) astro.config wrapper + locked integration set (@astrojs/react / @astrojs/sitemap / @astrojs/mdx / @tailwindcss/vite / astro-icon / astro-compress / vite-plugin-wasm / vite-plugin-top-level-await / @astrojs/rss) + Base layout + Tailwind v4 preset + reusable Cloudflare Pages deploy workflow.
2 @chirag127/astro-chrome astro-shell Header / Sidebar / BottomBar / Footer / Stamp / SEO + JSON-LD / Auth UI (AccountPanel + FinishSignIn) / Analytics + Consent (Klaro) / 24 legal pages + Datasheet Dark tokens + self-hosted fonts.
3 @chirag127/astro-tools astro-chrome <ToolGrid> + <ToolCard> + <ToolPage> for the 16 tool subdomains.
4 @chirag127/astro-content astro-chrome Zod content-collection schemas (post / book / card / journal) + RSS + Atom + JSON-Feed generators + sitemap glue + IndexNow ping + OG-card emit.
5 @chirag127/astro-data Firebase init + Firestore typed helpers + family.ts constants + TanStack Query setup + LocalStorage hooks + Puter.js wrappers (folded in from former astro-ai).
6 @chirag127/astro-forms react-hook-form + Zod resolvers + shadcn-style Form wrappers + honeypot + Web3Forms client + StaticForms fallback.
7 @chirag127/astro-billing Razorpay checkout + license-key verify + <Paywall> + <PriceTag> for one-subscription-unlocks-all per [[subscription-flow]].
8 @chirag127/astro-pwa @vite-pwa/astro wrapper with locked defaults (manifest from astro-chrome brand, offline shell, <InstallPrompt>, <UpdateToast>).
9 @chirag127/astro-distribute Thin CLI wrapping PWABuilder (primary — AAB / MSIX / iOS-project) + optional Tauri for desktop EXE/dmg/AppImage.
10 @chirag127/astro-widgets astro-chrome Shared cross-app islands — <MultiSearch> popover + <StatusBanner> + <ConsentBanner> (Klaro).

Shared test fixtures (1)

# Package Peer-dep What it owns
11 @chirag127/astro-test-utils Common Vitest + Playwright + MSW + Firebase test fixtures. Thin wrapper over @firebase/rules-unit-testing, msw, @playwright/test.

Cross-surface auth (4)

# Package Peer-dep What it owns
12 @chirag127/auth-core Cross-surface auth primitives — auth.oriz.in URL helpers, Firebase ID-token verify, refresh logic. Runtime-agnostic.
13 @chirag127/auth-wxt auth-core Browser-extension auth — chrome.identity.launchWebAuthFlow bouncing through auth.oriz.in, ID-token in chrome.storage.local. Chrome / Firefox / Edge via @wxt-dev/browser.
14 @chirag127/auth-vsc auth-core VS Code extension auth — vscode.authentication API + Firebase ID-token mint via REST + secure storage via context.secrets.
15 @chirag127/auth-cli auth-core CLI auth — Firebase OAuth device-code flow + token store at ~/.config/oriz/auth.json + refresh on 401.

Cross-post + book-build (2)

# Package Peer-dep What it owns
16 @chirag127/omni-publish RSS ? every-platform cross-poster. Watches blog.oriz.in/rss.xml; adapter-per-platform (dev.to / Hashnode / Medium / X / LinkedIn / Bluesky / Mastodon / Reddit / Threads). Idempotent, canonical URL preserved. See [[decisions/packages/omni-publish-package]].
17 @chirag127/oriz-book-build Markua-flavoured .md ? Pandoc ? EPUB3 + PDF + MOBI build pipeline. Powers the 5-book publish channel set (Leanpub / Gumroad / LemonSqueezy / D2D / KDP). See [[decisions/content/book-publish-pipeline]].

AI providers aggregator (1)

# Package Peer-dep What it owns
18 @chirag127/oriz-ai-providers Thin wrapper around 20 free LLM APIs (OVHcloud, LLM7, Pollinations, Cerebras, Groq, NVIDIA NIM, OpenRouter, Google AI Studio, Cohere, GitHub Models, Cloudflare Workers AI, HuggingFace, Mistral, SambaNova, Z.AI, SiliconFlow, Aion Labs, Ollama Cloud, ModelScope, Kilo Code). Priority-based fallback chain; OpenAI SDK-compatible. Provider / model / rate-limit / priority data lives in the SEPARATE chirag127/oriz-ai-providers-data repo (CC0). See [[decisions/packages/oriz-ai-providers-package]].

Cross-cutting concerns (5) — added 2026-06-22

# Package Peer-dep What it owns
19 @chirag127/oriz-rate-limit Per-user usage caps enforcing Free / Pro / Max tier limits (10/100/unlimited). Firestore-backed daily counters. See [[decisions/packages/four-more-packages-22-total]].
20 @chirag127/oriz-analytics Single wrapper around CF Web Analytics + GA4 + Microsoft Clarity + Sentry. One init call per app. Klaro consent-gated.
21 @chirag127/oriz-seo Sitemap + IndexNow + JSON-LD + OG image generator (satori).
22 @chirag127/oriz-consent Klaro pre-configured for EU/UK (default-DENIED) + India DPDP + US GPC + ROW (no banner). Geo-routed via CF.
23 @chirag127/oriz-kit astro-chrome Family-wide kit barrel — <MultiSearch />, <SponsorButton /> (Razorpay donation button pl_T4iEPIDcALKLPk per [[security/razorpay-donation-button]]), <Wordmark />, brand tokens.

Hierarchy

astro-shell        (base)
+-- astro-chrome   (peer-dep on shell)
    +-- astro-tools     (peer-dep on chrome)
    +-- astro-content   (peer-dep on chrome)
    +-- astro-widgets   (peer-dep on chrome)

astro-data    (standalone)
astro-forms   (standalone)
astro-billing (standalone)
astro-pwa     (standalone)
astro-distribute (standalone CLI)
astro-test-utils (standalone)

auth-core   (base)
+-- auth-wxt  (peer-dep on auth-core)
+-- auth-vsc  (peer-dep on auth-core)
+-- auth-cli  (peer-dep on auth-core)

omni-publish     (standalone)
oriz-book-build  (standalone)
oriz-ai-providers (standalone — fetches data from chirag127/oriz-ai-providers-data)

oriz-rate-limit  (standalone)
oriz-analytics   (standalone)
oriz-seo         (standalone)
oriz-consent     (standalone)
oriz-kit         (peer-dep on astro-chrome — family-wide barrel)

Dropped from the set (use community library directly)

Old name Replacement
astro-config astro/tsconfigs/strict extend + biome init + Tailwind v4 preset in astro-shell
astro-icons pnpm add lucide-react
astro-ai folded into astro-data (Puter.js is a data primitive)
astro-search pagefind CLI + 5-line component
astro-mdx rehype-callouts + rehype-shiki directly
astro-toc rehype-toc directly
astro-comments @giscus/react directly
astro-share ~20 lines inline (no shared SDK to wrap)
astro-newsletter ~10 lines fetch to Buttondown
astro-affiliate 1-line <a rel="nofollow sponsored">
astro-keyboard cmdk directly
astro-feedback ~15 lines inline <form> to Web3Forms

Versioning

Testing strategy

License

MIT on every package. See [[decisions/ops/mit-license-all-repos]].

Cross-refs