Skip to content
stacks

React Router on Cloudflare Workers

A full-stack React Router app on Cloudflare Workers with server rendering, JSON resource routes, typed bindings and a cron handler slot, plus Tailwind, Biome and integration tests that run in the local Workers runtime.

What done means

Your agent follows the brief, then runs stacks verify without weakening or skipping checks. What happens next

Declared steps: install, lint, typecheck, test, build, web, readme-filled. View commands

Use this stack

Paste the prompt into the coding agent working on your project.

Project intent

Uses the stack’s default fragments. Review the brief with your agent.Uses stated defaults and omits deploy, release, and app fragments unless explicitly requested.

View prompt
Use the cloudflare-react-router stack for this project. 1. Run npx @steamfield/stacks show cloudflare-react-router --json and check that it fits the project. If it does not, explain why before changing files. 2. Run npx @steamfield/stacks new cloudflare-react-router and follow the brief it prints. 3. From the generated project directory, run npx @steamfield/stacks verify. Fix failures without weakening or skipping verification steps. 4. Summarize what changed and the verification result. Quote published stats only when they are available, including their interval and sample size. The stacks docs, written for agents, are at https://stacks.steamfield.io/llms.txt.
Use the cloudflare-react-router stack for a quick local experiment. 1. Run npx @steamfield/stacks show cloudflare-react-router --json and check that it fits the project. If it does not, explain why before changing files. 2. Run npx @steamfield/stacks new cloudflare-react-router --sandbox and follow the brief it prints. 3. From the generated project directory, run npx @steamfield/stacks verify. Fix failures without weakening or skipping verification steps. 4. Summarize what changed and the verification result. Quote published stats only when they are available, including their interval and sample size. The stacks docs, written for agents, are at https://stacks.steamfield.io/llms.txt.
Or use the terminal
npx @steamfield/stacks new cloudflare-react-router
npx @steamfield/stacks new cloudflare-react-router --sandbox
Verify steps
StepPhaseLayerCommand
installsetupinstallbun install
lintchecklintbun run lint
typecheckchecktypecheckbun run typecheck
testchecktestbun run test
buildcheckbuildbun run build
webserveservebun run dev --port ${PORT_WEB} --strictPort
readme-filledcheckchecktest -s README.md && ! grep -n 'stacks:fill' README.md

Usage and outcomes

Usage over time

Showing 180 days of history.

History

The 28-day green rate at each weekly observation. Gaps mean the sample was too small to publish.

Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jun 1Jul 1Aug 1Sep 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jun 1Jul 1Aug 1Sep 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jul 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jun 1Jul 1Aug 1Sep 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)
Jun 1Jul 1Aug 1Sep 1Oct 10%50%100%95% Wilson interval95% Wilson intervalPublished 28-day green rate16 Aug 2026: 76% (55–89%, n=20)23 Aug 2026: 76% (57–89%, n=25)13 Sept 2026: 69% (50–83%, n=25)20 Sept 2026: 79% (60–90%, n=30)27 Sept 2026: 79% (62–90%, n=30)4 Oct 2026: 84% (67–93%, n=30)11 Oct 2026: 85% (70–94%, n=35)18 Oct 2026: 80% (64–90%, n=35)25 Oct 2026: 72% (56–84%, n=35)

Shaded band: 95% Wilson interval. Dashed rules: content changes. Missing observations remain gaps.

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Data table
ThroughGreen rateProjectsContent change
5 Jul 2026hidden: too few projects––
12 Jul 2026hidden: too few projects5–
19 Jul 2026hidden: too few projects10–
26 Jul 2026hidden: too few projects15–
2 Aug 2026hidden: too few projects20–
9 Aug 2026hidden: too few projects20–
16 Aug 202676% (55–89%, n=20)25–
23 Aug 202676% (57–89%, n=25)25–
30 Aug 2026hidden: too few projects25–
6 Sept 2026hidden: too few projects25–
13 Sept 202669% (50–83%, n=25)30–
20 Sept 202679% (60–90%, n=30)30–
27 Sept 202679% (62–90%, n=30)30–
4 Oct 202684% (67–93%, n=30)35–
11 Oct 202685% (70–94%, n=35)35–
18 Oct 202680% (64–90%, n=35)40–
25 Oct 202672% (56–84%, n=35)45–

Weekly projects by preset

Non-overlapping seven-day project counts, grouped by the preset used to start the project.

Jul 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jul 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jun 1Jul 1Aug 1Sep 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jun 1Jul 1Aug 1Sep 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jul 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jul 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jun 1Jul 1Aug 1Sep 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
Jun 1Jul 1Aug 1Sep 1Oct 10246810default · 30 Aug 2026: 5default · 13 Sept 2026: 10default · 20 Sept 2026: 5default · 27 Sept 2026: 5default · 4 Oct 2026: 5default · 11 Oct 2026: 10default · 18 Oct 2026: 5sandbox · 18 Oct 2026: 5default · 25 Oct 2026: 5sandbox · 25 Oct 2026: 5
  • default
  • sandbox

Stacks projects per UTC week through 30 Oct 2026. Published preset counts only; hidden cells are not zero.

Data table
Week endingPresetProjects
5 Jul 2026default–
12 Jul 2026default–
19 Jul 2026default–
26 Jul 2026default–
2 Aug 2026default–
9 Aug 2026default–
16 Aug 2026default–
23 Aug 2026default–
30 Aug 2026default5
6 Sept 2026default–
13 Sept 2026default10
20 Sept 2026default5
27 Sept 2026default5
4 Oct 2026default5
11 Oct 2026default10
18 Oct 2026default5
25 Oct 2026default5
5 Jul 2026sandbox–
12 Jul 2026sandbox–
19 Jul 2026sandbox–
26 Jul 2026sandbox–
2 Aug 2026sandbox–
9 Aug 2026sandbox–
16 Aug 2026sandbox–
23 Aug 2026sandbox–
30 Aug 2026sandbox–
6 Sept 2026sandbox–
13 Sept 2026sandbox–
20 Sept 2026sandbox–
27 Sept 2026sandbox–
4 Oct 2026sandbox–
11 Oct 2026sandbox–
18 Oct 2026sandbox5
25 Oct 2026sandbox5

By preset

Green verify outcomes by the preset chosen at scaffold time.

default

70%48–85%, n=20

sandboxhidden: too few projects

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Data table
NameGreen rateProjects
default70% (48–85%, n=20)25
sandboxhidden: too few projects15

By agent

Within this stack, listed alphabetically. These are project outcomes, not an agent ranking.

claude

70%49–84%, n=25

codexhidden: too few projects
cursorhidden: too few projects
opencodehidden: too few projects

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Data table
NameGreen rateProjects
claude70% (49–84%, n=25)30
codexhidden: too few projects5
cursorhidden: too few projects–
opencodehidden: too few projects–

Time to green

Published time summaries on a shared minutes scale. First passing test is a median; 75% reached green by the 75th percentile.

02030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
02030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
0102030MinutesFirst passing testMedian to green75th percentileFirst passing test: 15 minutesMedian to green: 25 minutes75th percentile: 30 minutes15 min25 min30 min
Verify runs to green
1

Stacks projects · 28 days through 30 Oct 2026. Counts rounded to 5.

Data table
MeasureTime / runs
Median to green25 minutes
75th percentile30 minutes
First passing test15 minutes
Verify runs to green1

Where it breaks

A run can fail more than one step. Environment failures are shown separately.

typecheck37%
test29%
web14%
lint11%
build3%
install3%
readme-filled3%
Environment blocked0%

Share of failed runs before first green. Environment blocked describes the machine, not the stack.

Data table
StepShare
typecheck37%
lint11%
test29%
build3%
install3%
web14%
readme-filled3%
Environment blocked0%

What people change

Defaults people keep, and optional fragments they choose to attach.

Default, kept rate

agent-ops88%
ci-githubhidden: too few projects

Optional, attach rate

cloudflare-d121%
git-hookshidden: too few projects
ce-plugin31%

Share of the window's 40 projects. Kept rate is 1 minus the without rate.

Data table
FragmentMeasureShare
agent-opsKept88%
ci-githubKept–
cloudflare-d1Attached21%
git-hooksAttached–
ce-pluginAttached31%
By composition 12 fingerprints

Each row is a distinct fragment composition, with its own sample and content history.

CompositionGreen rateSeenChange in life
defaults + ce-plugin + cloudflare-d1 · 1bcd0098hidden: too few projects16 Aug 2026 – 25 Oct 2026None
defaults + cloudflare-d1 − agent-ops · 25fc6b92hidden: too few projects11 Oct 2026 – 25 Oct 2026None
defaults + cloudflare-d1 · 2bd0fef1hidden: too few projects12 Jul 2026 – 25 Oct 2026None
defaults + ce-plugin + git-hooks · 4165ccc7hidden: too few projects2 Aug 2026 – 25 Oct 2026None
defaults + cloudflare-d1 + git-hooks · 4acecf81hidden: too few projects13 Sept 2026 – 25 Oct 2026None
defaults · 4e55109267% (45–83%, n=20)12 Jul 2026 – 25 Oct 2026None
defaults + git-hooks · 5bf0f8eehidden: too few projects12 Jul 2026 – 25 Oct 2026None
defaults − agent-ops · 7d724ac2hidden: too few projects2 Aug 2026 – 25 Oct 2026None
defaults + ce-plugin − agent-ops · 8dc5fc92hidden: too few projects18 Oct 2026 – 25 Oct 2026None
defaults + ce-plugin · 8dfcdef3hidden: too few projects26 Jul 2026 – 25 Oct 2026None
defaults + ce-plugin − agent-ops − ci-github · 98eff62bhidden: too few projects18 Oct 2026 – 25 Oct 2026None
defaults + git-hooks − agent-ops · ba6cb3dbhidden: too few projects25 Oct 2026 – 25 Oct 2026None

Dependencies in use

Major versions reported by this stack's projects in the 28-day window. Declared dependencies remain listed above.

@types/node20 reporting projects
Major 2286%
Major 24hidden: too few projects
@types/react-dom20 reporting projects
Major 1882%
Major 19hidden: too few projects
react15 reporting projects
Major 1871%
Major 19hidden: too few projects
react-dom20 reporting projects
Major 1895%
Major 19hidden: too few projects
tailwindcss20 reporting projects
Major 382%
Major 4hidden: too few projects
typescript20 reporting projects
Major 573%
Major 627%
vite20 reporting projects
Major 786%
Major 8hidden: too few projects
vitest20 reporting projects
Major 477%
Major 523%
wrangler20 reporting projects
Major 377%
Major 423%

This compares projects; it isn't an effect of the dependency.

Computed 31 Oct 2026, through 30 Oct 2026. Numbers describe stacks projects, not the ecosystem.