Skip to content

Demo fleet currency: automated version bumps + shared smoke CI across official demos #3898

Description

@justin808

Suggested labels: enhancement, documentation, P1
Effort: M · Risk: low · Theme: dx / credibility

Summary

Put the official demo fleet under version-currency automation: shared dependency-update config (Renovate/Dependabot preset tracking react_on_rails* gems + react-on-rails* packages), a reusable smoke-test workflow each demo runs in CI, and an auto-checked currency table in the docs. Then fix the immediate embarrassments: the most-starred maintained OSS demo runs react_on_rails 14.0.3 / React 18.2 / Shakapacker 8, and the "minimal RSC starter" runs Pro 16.4.0.

Why this matters

  • User value: Demos are the proof layer of every claim in this roadmap. An evaluator who lands on react-on-rails-demo-ssr-hmr (93★, billed as the reference tutorial app) sees a three-majors-old stack and reasonably concludes the React 19/RSC story is marketing. Fleet staleness silently converts research investment into distrust.
  • Competitive comparison: Vercel's examples repo and Evil Martians' Inertia starters are kept current by automation, not heroics. Audit snapshot (2026-06-10): ssr-hmr → RoR 14.0.3/React 18.2; react-on-rails-rsc-demo → Pro 16.4.0; gumroad-rsc → 16.6.0; marketplace-rscreact-on-rails-rsc pinned to a git branch; only hacker-news-rsc, octochangelog, and starter-tanstack track 17.0.0-rc. Nobody is watching the fleet as a fleet.
  • Strategic fit: OSS flagship demo app (clone-and-run) + an npx-disposable eval demo #3876 builds a new flagship demo — without this issue it joins the same decay curve. Migration playbooks (this pass) and the landing page's "6 live demos" links all point at these repos.

Current state

  • No org-level automation: demos lack Renovate/Dependabot configs tracking RoR packages specifically; no shared smoke workflow; no inventory of which repos are "official."
  • The docs examples-and-references page and the reactonrails.com landing link demos without version/freshness signals.
  • Internal spec/dummy + react_on_rails_pro/spec/dummy are the only genuinely-current example apps, but they serve CI, not marketing.

Proposed work

  • Inventory: canonical list of official demo repos with owner, purpose, tier (flagship / topical / archived) — committed as docs/oss/getting-started/examples-and-references.md data or a small JSON the docs render.
  • Shared Renovate preset (org repo, e.g. shakacode/renovate-config): group react_on_rails+react-on-rails+react-on-rails-pro*+shakapacker bumps into one PR, schedule weekly, auto-label.
  • Reusable GitHub workflow (shakacode/.github or this repo): bundle install && npm ci && assets:precompile && boot && curl / smoke; demos call it via workflow_call; bump PRs must pass it before merge.
  • Bring the fleet current: upgrade ssr-hmr to v17/React 19 (or archive it with a README redirect to OSS flagship demo app (clone-and-run) + an npx-disposable eval demo #3876's flagship — decide per repo), upgrade react-on-rails-rsc-demo + gumroad-rsc to 17.0.0(-rc), replace marketplace-rsc's git-branch pin with a published version.
  • Currency surfacing: badge or generated table (repo → RoR version → last green smoke) in the examples docs page; stale (>1 minor behind) entries flagged automatically (small scheduled job).
  • Release-checklist hook: cutting a release triggers/verifies fleet bump PRs (manual checklist item is enough to start).

Acceptance criteria

  • Every official demo has the preset + smoke workflow; bump PRs flow automatically.
  • No official, non-archived demo more than one minor behind the latest release (enforced by the flag job, verified once after rollout).
  • Examples page shows live currency information; ssr-hmr is either current or formally archived+redirected.

Risks & open questions

  • Upgrading old demos may be real porting work (v14→v17 spans Shakapacker 8→9, React 18→19) — archiving with redirect is a legitimate outcome; the decision per repo is part of this issue.
  • Renovate vs Dependabot: Renovate's grouping + presets fit better; confirm org policy.
  • Keep scope to official repos; community examples just get a "last verified" note.

References

Proposed via roadmap research pass 2 (2026-06-10), extending pass 1. Part of the Modern React with Rails 30-day roadmap.


Triage — 2026-06-11

Verified via the GitHub API against the demo repos; part of the #3864 triage pass. Priority: P2.

Why P2: Demos are the proof layer, but the right moment for the fleet bump is 17.0.0 stable (#3823) — bumping everything to an rc means doing it twice. Needs cross-repo write access and per-repo archive-vs-upgrade decisions (maintainer calls).

Corrections (verified 2026-06-11):

  • marketplace-rsc is on Pro 17.0.0-rc.1 — the body's "only hacker-news, octochangelog, starter-tanstack track 17.0.0-rc" undersells it; its only real problem is the react-on-rails-rsc git-branch pin (which can't be replaced until the pinned FOUC fix ships in a published version — the RSC FOUC: ship stable react-on-rails-rsc@19.0.5 and pin v17 to it (native-only) #3634 line).
  • react-webpack-rails-tutorial is already description-marked legacy ("See reactonrails.com/examples…"), so the inventory/tiering checkbox is partially done.
  • Confirmed: ssr-hmr = RoR 14.0.3 / Shakapacker 8.0.0 / React ^18.2.0 (93 stars, the most-starred maintained demo); rsc-demo = Pro 16.4.0; gumroad-rsc = 16.6.0.

Descoped v1 (the platform is over-built for ~8 repos): (1) one manual bump-or-archive pass timed with 17.0.0 stable; (2) per-repo Renovate/Dependabot config (copy-paste, no org-level preset); (3) a release-checklist line item ("bump the demo fleet"). Defer the org preset, generated currency table, and scheduled staleness job until decay demonstrably recurs.

Parallelization: Disjoint repos — safe with everything; fits a maintainer-supervised batch, not autonomous agents. Decide #3876's flagship question first (it affects whether ssr-hmr is upgraded or archived).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Backlog priorityenhancementroadmap:17xPost-17.0.0 roadmap generation (supersedes roadmap:modern-react)roadmap:modern-reactModern-React-with-Rails 30-day roadmap (AI research pass 2026-06-10)

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions