← knowledge.oriz.in

stats.oriz.in family-wide-stats dashboard + per-app feeds + Changesets + single oriz-app-template

decision decisionstatsfeedsversioningtemplateops

Family ops: stats + feeds + versioning + template

stats.oriz.in family-wide stats dashboard

New app oriz-stats-app at c:/D/oriz/repos/oriz/own/prod/apps/content/oriz-stats-app/. Publicly accessible at stats.oriz.in. Read-only.

Data sources (all polled by GH Action daily and committed to public/stats.json):

Renders via Apache ECharts + shadcn cards. Single index page. Mobile-responsive.

RSS feeds scope

v0: blog only. RSS 2.0 + Atom 1.0 + JSON Feed 1.1 at blog.oriz.in/feed.{xml,atom,json}.

Deferred to v1+:

Reason for v0 narrow scope: blog is the only frequently-updated content surface. Other apps update content slowly; RSS becomes noise.

Package versioning: Changesets

Every npm package uses Changesets (@changesets/cli).

Per package, in .github/workflows/release.yml:

on:
  push:
    branches: [main]
jobs:
  release:
    uses: changesets/action@v1
    with:
      publish: pnpm publish
    env:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

Already in astro-test-utils@0.1.1; roll out to all 18 packages.

Single oriz-app-template

New repo chirag127/oriz-app-template. Every new app scaffolds via:

gh repo create chirag127/<new-app-slug> --template chirag127/oriz-app-template --public --description "..."

Template ships with:

After scaffolding, the developer fills in app-specific:

Family-data SSoT (footer + sidebar shared data)

In @chirag127/astro-shell/family-data export:

export const FAMILY_APPS = [...26 entries...]
export const FAMILY_BOOKS = [...5 entries...]
export const FAMILY_PACKAGES = [...18 entries...]
export const FAMILY_APIS = [...2 entries...]

Update on each new app/book/package. Astro-shell version bump triggers all apps to rebuild on next deploy and pick up the new entry. Single SSoT for mega-sitemap footer.

Cross-refs