Skip to content

Commit d3973b9

Browse files
committed
Merge remote-tracking branch 'origin/main' into codex/pr-3219-review-work
* origin/main: [codex] Add Markdown Prettier CI check (#3242) Add /stress-test Claude Code command for adversarial QA (#3207) Document examples catalog and naming plan (#3191) test(dummy): enable StrictMode in OSS and Pro dummies (#3206)
2 parents 43a87cc + da9419e commit d3973b9

39 files changed

Lines changed: 1618 additions & 35 deletions

.claude/commands/stress-test.md

Lines changed: 617 additions & 0 deletions
Large diffs are not rendered by default.

.github/workflows/check-markdown-links.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,60 @@ on:
1010
- '**.md'
1111
- '.github/workflows/check-markdown-links.yml'
1212
- '.lychee.toml'
13+
- '.prettierignore'
14+
- '.prettierrc'
15+
- 'pnpm-lock.yaml'
1316
pull_request:
1417
paths:
1518
- '**.md'
1619
- '.github/workflows/check-markdown-links.yml'
1720
- '.lychee.toml'
21+
- '.prettierignore'
22+
- '.prettierrc'
23+
- 'pnpm-lock.yaml'
1824
schedule:
1925
# Run daily at 3am UTC to catch stale cached links
2026
# See: https://lychee.cli.rs/github_action_recipes/caching/
2127
- cron: '0 3 * * *'
2228
workflow_dispatch:
2329

2430
jobs:
31+
markdown-format-check:
32+
runs-on: ubuntu-latest
33+
steps:
34+
- uses: actions/checkout@v4
35+
36+
- name: Setup pnpm
37+
uses: pnpm/action-setup@v4
38+
39+
- name: Setup Node
40+
uses: ./.github/actions/setup-node-with-retry
41+
with:
42+
# Pin to 22.11.0 (LTS) to avoid V8 bug in 22.21.0
43+
node-version: '22.11.0'
44+
cache: pnpm
45+
cache-dependency-path: pnpm-lock.yaml
46+
47+
- name: Install dependencies
48+
run: pnpm install --frozen-lockfile --ignore-scripts --filter='{.}'
49+
50+
- name: Check markdown formatting
51+
shell: bash
52+
run: |
53+
markdown_files=()
54+
while IFS= read -r -d '' file; do
55+
if [ -f "$file" ] && [ ! -L "$file" ]; then
56+
markdown_files+=("$file")
57+
fi
58+
done < <(git ls-files -z -- '*.md' '*.mdx' '*.markdown')
59+
60+
if [ "${#markdown_files[@]}" -eq 0 ]; then
61+
echo "No markdown files to check."
62+
exit 0
63+
fi
64+
65+
pnpm exec prettier --check -- "${markdown_files[@]}"
66+
2567
markdown-link-check:
2668
runs-on: ubuntu-latest
2769
steps:

.lychee.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,15 @@ exclude = [
102102
'^https://www\.diva-portal\.org/smash/get/diva2:1903931/FULLTEXT01\.pdf$', # Intermittent timeout in CI
103103

104104
# ============================================================================
105-
# CHANGELOG COMPARE LINKS
105+
# CHANGELOG GITHUB LINKS
106106
# ============================================================================
107107
# CHANGELOG.md contains GitHub compare links for each release. The latest
108108
# release link always references a tag that doesn't exist yet (created after
109109
# the changelog is committed). Exclude all compare links since they're
110-
# auto-generated by changelog tooling.
110+
# auto-generated by changelog tooling. GitHub PR pages also intermittently
111+
# return 5xx responses to lychee in CI, even when the pages are live.
111112
'^https://github\.com/shakacode/react_on_rails/compare/',
112-
'^https://github\.com/shakacode/react_on_rails/pull/2280$', # Intermittent 502 from GitHub PR page in CI
113+
'^https://github\.com/shakacode/react_on_rails/pull/[0-9]+$', # Intermittent 5xx from GitHub PR pages in CI
113114
'^https://github\.com/shakacode/shakapacker/blob/cdf32835d3e0949952b8b4b53063807f714f9b24/package/environments/base\.js(#.*)?$', # Intermittent 502 from GitHub blob view in CI
114115

115116
# ============================================================================

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ React on Rails is one product with two tiers: open source for Rails + React inte
2222

2323
### Evaluating Rails + React options
2424

25+
- [Examples and migration references](./oss/getting-started/examples-and-references.md) — maintained starters, migration repos, and Pro + RSC demos
2526
- [Example migrations](./oss/migrating/example-migrations.md) — curated migration references and proof criteria
2627
- [Examples gallery](https://reactonrails.com/examples) — reactonrails.com showcase apps
2728
- [Compare with alternatives](./oss/getting-started/comparing-react-on-rails-to-alternatives.md) — decision guide covering Hotwire, Inertia, Next.js, and more

docs/oss/building-features/rails-webpacker-react-integration-options.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ Webpack's HMR allows the replacement of modules for React in-place without reloa
113113
114114
[github.com/pmmmwh/react-refresh-webpack-plugin](https://github.com/pmmmwh/react-refresh-webpack-plugin)
115115
116-
You can see an [example commit adding this in the SSR HMR demo](https://github.com/shakacode/react-on-rails-demo-ssr-hmr/commit/7e53803fce7034f5ecff335db1f400a5743a87e7).
116+
You can see an example commit in the maintained SSR + HMR tutorial repo that
117+
[adds React Refresh](https://github.com/shakacode/react-on-rails-demo-ssr-hmr/commit/7e53803fce7034f5ecff335db1f400a5743a87e7).
117118
118119
1. Add react refresh packages:
119120
```bash

docs/oss/core-concepts/react-server-rendering.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ See also [Client vs. Server Rendering](../core-concepts/client-vs-server-renderi
44

55
## What is the easiest way to set up a Webpack configuration for server-side-rendering?
66

7-
See the example Webpack setup here: [github.com/shakacode/react-on-rails-demo-ssr-hmr](https://github.com/shakacode/react-on-rails-demo-ssr-hmr).
7+
See the maintained SSR + HMR tutorial repo and related evaluation apps in
8+
[Examples and migration references](../getting-started/examples-and-references.md).
89

910
## What is Server Rendering?
1011

docs/oss/core-concepts/webpack-configuration.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,10 @@ serverWebpackConfig.output = {
110110

111111
**For older Shakapacker versions:** Use hardcoded paths and manual configuration as shown in the generator templates.
112112

113-
Per the example repo [shakacode/react-on-rails-demo-ssr-hmr](https://github.com/shakacode/react-on-rails-demo-ssr-hmr),
114-
you should consider keeping your codebase mostly consistent with the defaults for [Shakapacker](https://github.com/shakacode/shakapacker).
113+
Per the maintained SSR + HMR tutorial repo listed in
114+
[Examples and migration references](../getting-started/examples-and-references.md),
115+
you should consider keeping your codebase mostly consistent with the defaults
116+
for [Shakapacker](https://github.com/shakacode/shakapacker).
115117

116118
# React on Rails
117119

@@ -121,7 +123,7 @@ A key decision in your use React on Rails is whether you go with the Shakapacker
121123

122124
## Option 1: Default Generator Setup: Shakapacker app/javascript
123125

124-
Typical Shakapacker apps have a standard directory structure as documented in the [Shakapacker README](https://github.com/shakacode/shakapacker/blob/master/README.md#configuration-and-code). If you follow [the basic tutorial](../getting-started/tutorial.md), you will see this pattern in action. In order to customize the Webpack configuration, consult the [Shakapacker webpack customization docs](https://github.com/shakacode/shakapacker#webpack-configuration).
126+
Typical Shakapacker apps have a standard directory structure documented in the [Shakapacker README](https://github.com/shakacode/shakapacker/blob/master/README.md#configuration-and-code). If you follow [the basic tutorial](../getting-started/tutorial.md), you will see this pattern in action. In order to customize the Webpack configuration, consult the [Shakapacker webpack customization docs](https://github.com/shakacode/shakapacker#webpack-configuration).
125127

126128
The _advantage_ of using Shakapacker to configure Webpack is that there is very little code needed to get started, and you don't need to understand really anything about Webpack customization.
127129

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Examples and Migration References
2+
3+
Use this page as the canonical index for public React on Rails reference repos.
4+
The goal is to make evaluation, migration, and React on Rails Pro adoption easy
5+
to navigate without scattering hard-coded repository links across the docs.
6+
7+
Some public repos still use older slugs with underscores or legacy wording.
8+
This page is the source of truth for which public repos are current and worth
9+
starting from.
10+
11+
## Starter Repos
12+
13+
Check each entry's note before evaluating — some starters are fully open
14+
source, while others require React on Rails Pro.
15+
16+
### SSR + HMR Tutorial Demo (open source)
17+
18+
- Repo: [shakacode/react-on-rails-demo-ssr-hmr](https://github.com/shakacode/react-on-rails-demo-ssr-hmr)
19+
- Use it when you want the maintained Rails + React + SSR + HMR walkthrough repo
20+
that backs the tutorial and Webpack configuration guidance.
21+
22+
### React on Rails Pro + RSC Starter (Pro)
23+
24+
- Repo: [shakacode/react-on-rails-rsc-demo](https://github.com/shakacode/react-on-rails-rsc-demo)
25+
_(slug rename to `react-on-rails-demo-rsc` pending — update this line when the
26+
rename completes)_
27+
- Use it when you want a minimal public sample for React Server Components with
28+
React on Rails Pro.
29+
- Note: this repo uses React on Rails Pro. See [OSS vs Pro](./oss-vs-pro.md)
30+
for evaluation guidance.
31+
32+
## In-Repo Reference
33+
34+
### Spec Dummy App
35+
36+
- Repo: [shakacode/react_on_rails — spec/dummy](https://github.com/shakacode/react_on_rails/tree/main/react_on_rails/spec/dummy)
37+
- Use it when you want the simplest in-repo reference for current generator and
38+
feature behavior.
39+
- Note: this is the in-repo test app used by the RSpec suite, not a standalone
40+
starter repository.
41+
42+
## Migration References
43+
44+
For detailed proof criteria and migration contribution guidance, see
45+
[Example Migrations](../migrating/example-migrations.md).
46+
47+
- [shakacode/react-on-rails-example-migration](https://github.com/shakacode/react-on-rails-example-migration)
48+
focused before/after `react-rails` → React on Rails migration reference.
49+
- [shakacode/react-on-rails-example-open-flights](https://github.com/shakacode/react-on-rails-example-open-flights)
50+
larger example app that shows React on Rails replacing `react-rails` in a
51+
more realistic codebase.
52+
53+
## React on Rails Pro + RSC Demos
54+
55+
> **Note:** The repos below use React on Rails Pro. See [OSS vs Pro](./oss-vs-pro.md)
56+
> for evaluation guidance.
57+
58+
### Hacker News RSC Demo
59+
60+
- Repo: [shakacode/react-on-rails-demo-hacker-news-rsc](https://github.com/shakacode/react-on-rails-demo-hacker-news-rsc)
61+
- Use it when you want a compact public demo of React on Rails Pro with React
62+
Server Components on a familiar read-heavy UI.
63+
64+
### Marketplace RSC Performance Demo
65+
66+
- Repo: [shakacode/react-on-rails-demo-marketplace-rsc](https://github.com/shakacode/react-on-rails-demo-marketplace-rsc)
67+
- Use it when you want a public performance-oriented RSC demo showing the shape
68+
of the user-visible win on a marketplace-style surface.
69+
70+
### Gumroad-Style RSC Benchmark Demo
71+
72+
- Repo: [shakacode/react-on-rails-demo-gumroad-rsc](https://github.com/shakacode/react-on-rails-demo-gumroad-rsc)
73+
- Use it when you want a benchmark-oriented comparison between an Inertia-style
74+
surface and a React on Rails Pro + RSC surface on the same product domain.
75+
- Note: this is a ShakaCode-built demo modeled on a Gumroad-style UI, not an
76+
official Gumroad product or integration.
77+
78+
## Live Demos
79+
80+
- [reactrails.com](https://reactrails.com) — production-style React on Rails app
81+
you can click through in your browser without any local setup. Backed by the
82+
legacy [shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial)
83+
source.
84+
85+
## Legacy Repos
86+
87+
Version-specific demos, `test-*` repos, generator snapshots, and older tutorial
88+
repos are useful historical references, but they are not the primary starting
89+
point for new evaluations.
90+
91+
- Legacy full app: [shakacode/react-webpack-rails-tutorial](https://github.com/shakacode/react-webpack-rails-tutorial)
92+
older production-style app (see Live Demos above for the running site at reactrails.com).
93+
Still useful as a historical reference, but not the recommended starting point for new projects.
94+
95+
If you are choosing a public reference repo for docs, talks, or adoption work,
96+
start with the repos above.

docs/oss/getting-started/tutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# React on Rails Basic Tutorial
22

3-
_Also see the example repo of [React on Rails Tutorial With SSR, HMR fast refresh, and TypeScript](https://github.com/shakacode/react-on-rails-demo-ssr-hmr)_
3+
_See also [Examples and migration references](./examples-and-references.md) for the maintained tutorial demo, migration references, and current React on Rails Pro + RSC demos._
44

55
---
66

docs/oss/introduction.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ Step-by-step walkthrough building a full app with Redux, routing, and deployment
7272
### 👀 Learn by Example?
7373

7474
- **[Spec/Dummy App](https://github.com/shakacode/react_on_rails/tree/main/react_on_rails/spec/dummy)** - Simple example in this repo
75-
- **[Tutorial Demo App](https://github.com/shakacode/react-on-rails-demo-ssr-hmr)** - Example with SSR, HMR, and TypeScript
76-
- **[Live Demo with Source](https://github.com/shakacode/react-webpack-rails-tutorial)** - Full production app at [reactrails.com](https://reactrails.com)
75+
- **[Examples and migration references](./getting-started/examples-and-references.md)** - Maintained starters, migration references, and Pro + RSC demos
76+
- **[Live demo at reactrails.com](https://reactrails.com)** - Running React on Rails app you can click through without local setup
7777

7878
## Popular Use Cases
7979

0 commit comments

Comments
 (0)