← knowledge.oriz.in

Distribution + queues locked: 3-store browser-ext + dual VS Code marketplace + PWA-only + CF Queues + Hookdeck

decision decisionsarchitecturedistributionextensionsvscodepwaqueuehookdeckbatch-13

Distribution + queues locked

Single consolidated Batch 13 decision covering four parallel distribution / reliability picks. All four locks were originally proposed at wider scope and walked back to the floors below — the family chose simplicity over coverage every time.

Decision

1. Browser extensions: Chrome + Firefox + Edge

Every oriz-*-ext repo publishes to all three browser stores:

CI flow: build once via web-ext; submit in parallel to all three.

2. VS Code extensions: VS Code Marketplace + Open VSX

Every oriz-*-vsc-ext repo dual-publishes:

CI flow: build once into .vsix; vsce publish + ovsx publish.

3. PWA-only on every site

Every site in the family ships as an installable PWA via @vite-pwa/astro. No native wrapper. Workbox-generated service worker, manifest, install prompt.

4. Webhook reliability: Cloudflare Queues + Hookdeck

The reliability stack is two layers:

Producers POST to Hookdeck ? Hookdeck retries to api.oriz.in Worker ? Worker enqueues onto Cloudflare Queues ? consumer Workers drain.

Why

All four picks share the same logic: simplicity over coverage, built on the family's already-locked stack, and all free or one-time-fee.

Implications

Publish + reliability matrix

Surface Targets (active) Walked back
Browser extension (oriz-*-ext) Chrome Web Store + Firefox AMO + Edge Add-ons Safari (Apple Developer fee), standalone Opera
VS Code extension (oriz-*-vsc-ext) VS Code Marketplace + Open VSX JetBrains Marketplace
Site (oriz-*-site) PWA via @vite-pwa/astro Capacitor, Tauri, TWA
Webhook reliability Hookdeck (ingress) ? Cloudflare Queues (fan-out) Trigger.dev (durable workflows)

Walked back — why simplicity over coverage

Walked back Originally proposed for Why walked back
JetBrains Marketplace VS Code distribution trio Different IDE family entirely (Gradle build, JetBrains Platform SDK, separate audience). Family has no JetBrains plugin in plan; adding the publish target pre-emptively is dead code. Re-open if a JetBrains plugin is ever greenlit — likely under a -jb-ext suffix added to repo-naming-suffixes.md.
Capacitor Native PWA wrapper, parallel to vite-pwa iOS publish requires Apple Developer Program at $99/yr, conflicts with no-subscriptions-anywhere. Android publish doable free but adds a per-app binary, signing, Play Store review. PWA install on Android already covers the install-icon use case.
Tauri Native PWA wrapper, parallel to vite-pwa Adds a Rust toolchain + WebView dependency for zero gain over PWA on the surface the family targets (web). Re-open only if a desktop-native feature lands (system tray, native-menubar, native-FS) that PWA APIs can't express.
Trigger.dev Durable-workflow queue alternative to CF Queues Powerful programming model (code-defined multi-step workflows with checkpointed state) but overkill for current webhook volume. Adds a separate account, credentials surface, and hosting dependency. CF Queues + Hookdeck covers the same reliability surface inside the family's existing stack. Re-open if multi-step durable workflows become a real need (the queue/inngest.md entry covers the same swap-target shape).

The shape of every walked-back item is the same: marginal coverage gain at the cost of a new credentials surface, a paid tier, or a build-toolchain dependency. The family stays small, the stack stays on Cloudflare, and re-opening any of these is a one-decision flip when a real need surfaces.

Cross-refs