← knowledge.oriz.in

Dual-location package surfacing — oriz.in overview + packages.oriz.in catalog

decision decisiondocscatalogpackagesastro-starlighthubdual-location

Dual-location package surfacing

Decision

Packages and apps are surfaced to users in TWO complementary locations:

Location 1 — oriz.in (home-app)

Marketing-flavoured overview. 5 new section routes added to home-app:

Route Content
oriz.in/apps All 26 apps as cards (per category: hub / personal / content / tools). Each card: brand wordmark + 1-line purpose + subdomain link + 'View packages on packages.oriz.in/' cross-link
oriz.in/packages All 17 npm packages grouped by purpose (5 groups). Each card: name + 1-liner + 'Full docs ? packages.oriz.in/' button. Catalog-light.
oriz.in/mobile Per-app rows showing Play Store + sideload-APK channel buttons. 'Coming soon — Android via PWABuilder' badge for unreleased apps.
oriz.in/desktop Per-app rows showing Microsoft Store + direct-download MSIX/dmg/AppImage channel buttons. 'Coming soon' badges for unreleased channels.
oriz.in/extensions Chrome Web Store + Firefox Add-ons + Edge Add-ons + VS Code Marketplace + Open VSX channel buttons per extension repo.

Location 2 — packages.oriz.in (standalone Astro Starlight)

Developer-facing technical catalog at a separate subdomain. Auto-discovers every chirag127/*-npm-pkg repo on GitHub. Per-package detail page embeds the live README + npm/GitHub/bundlephobia metadata. 5-group sidebar (Astro foundation / UI & widgets / Data & auth / Distribution / Testing). Standalone CF Pages project, separate submodule.

Why this split

Conflating the two would force one design to do both badly. Splitting respects the audience.

Channels metadata

Single home-app/src/data/apps.ts TypeScript constant maintains the manual portion of per-app channel URLs (subdomain, store IDs, etc). Build-time auto-discovery from GitHub Releases API populates the dynamic portion (latest MSIX / APK / dmg / AppImage asset URLs).

AppMeta shape includes a channels: Partial<Record<Channel, string>> map. When a channel is undefined OR an empty string, the card shows a "Coming soon — via PWABuilder" badge instead of an active link.

Realistic "publishable" channels

Not all stores can be fully automated. The realistic publish-status by channel:

Channel First publish Subsequent updates
GitHub Releases ? Auto ? Auto
npm ? Auto ? Auto
Chrome Web Store ?? Manual listing form (1-3 day review) ? Auto via chrome-webstore-upload-cli
Firefox Add-ons ?? Manual listing ? Auto via web-ext sign
Microsoft Edge Add-ons ?? Manual ? Auto via edge-add-on-action
VS Code Marketplace ? Auto via vsce publish ? Auto
Open VSX ? Auto via ovsx publish ? Auto
Google Play ?? Manual first review ? Auto via r0adkll/upload-google-play
Microsoft Store (apps) ? Manual; no reliable free API ? Mostly manual
Mac App Store ? Not in family scope (no Apple Dev Program per [[ios-pwa-only-no-mac]]) n/a
F-Droid ?? Manual first listing ? Auto via F-Droid build-bot once MIT + .fdroid.yml present

So: every "Coming soon" channel on oriz.in will require some manual first-publish work even after we're MIT-licensed.

What lives at master vs in each submodule

Rebuild triggers

Both sites rebuild on:

Why both, not just one

Tried earlier to do path-only under oriz.in/packages (no separate subdomain). The user revised: want both. Reason: the catalog is dense + technical (READMEs, metadata, search) — Starlight-friendly. The oriz.in overview is sparse + marketing-flavoured (cards, screenshots, store badges) — home-app's existing theme is the right wrapper. Different audiences, different design, two surfaces.

Cross-refs