type: decision
status: active
timestamp: 2026-06-20
tags: [decisions, architecture, distribution, extensions, vscode, pwa, queue, hookdeck, batch-13]

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

Batch 13 lock covering distribution + reliability \ publish to Chrome + Firefox + Edge. VS Code extensions publish to VS Code Marketplace\ \ + Open VSX (JetBrains walked back). Every site is a PWA via @vite-pwa/astro (Capacitor\ \ + Tauri walked back). Webhook reliability is Hookdeck \u2192 Cloudflare Queues\ \ (Trigger.dev walked back). All free, no card."

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

SurfaceTargets (active)Walked back
Browser extension (oriz-*-ext)Chrome Web Store + Firefox AMO + Edge Add-onsSafari (Apple Developer fee), standalone Opera
VS Code extension (oriz-*-vsc-ext)VS Code Marketplace + Open VSXJetBrains Marketplace
Site (oriz-*-site)PWA via @vite-pwa/astroCapacitor, Tauri, TWA
Webhook reliabilityHookdeck (ingress) ? Cloudflare Queues (fan-out)Trigger.dev (durable workflows)

Walked back — why simplicity over coverage

Walked backOriginally proposed forWhy walked back
JetBrains MarketplaceVS Code distribution trioDifferent 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.
CapacitorNative PWA wrapper, parallel to vite-pwaiOS 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.
TauriNative PWA wrapper, parallel to vite-pwaAdds 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.devDurable-workflow queue alternative to CF QueuesPowerful 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


Edit on GitHub · Back to index