doable.do

Deploy CRA apps in under a minute

Deploy Create React App (CRA) apps, zero config

Doable auto-detects Create React App, runs the build, and serves the `build/` directory via a minimal nginx container. No ejecting, no customising the build pipeline.

Typical first deploy: 30–60 seconds

Why deploy React (Create React App) on Doable

CRA still works here

CRA is deprecated in React's official docs but millions of apps still run it. Doable treats it as a first-class static build target, no migration required.

One-click preview from a GitHub URL

Paste a public GitHub URL at doable.do/try and get a live preview in 30 seconds. No signup. Expires in 8h unless you claim it.

Flat monthly, hard-capped

$15/mo Starter for 3 projects, $39/mo Pro for 10. Hit your bandwidth cap and we serve a holding page, never a surprise bill.

Deploy from Claude Code, Cursor, or Codex

Type /deploy in your editor, the AI bundles the repo, builds a Docker image on our worker, and hands back the URL in chat. No tab-switching to a dashboard.

Deploy your React (Create React App) app

doable deploy  # from your CRA project

Detected via `react-scripts` in package.json. Build command: `npm run build`. Output: `build/` served by nginx.

Or say “deploy this” in Claude Code.

FAQ

Should I migrate off CRA before deploying?

Only if you want to. Doable deploys CRA exactly as it is. If you're planning to migrate to Vite or Next.js anyway, the deploy process is identical on Doable either way, swap at your own pace.

Does Doable support `REACT_APP_*` env vars?

Yes. Set them via `doable env set REACT_APP_FOO value`. They're injected at build time the same way CRA does locally.

What happens with client-side routing (React Router)?

The nginx config we generate falls back to `index.html` on any non-file request, so deep-links like `/settings/profile` work. No tweaks needed.

Try Doable — paste any GitHub URL

No credit card. Live URL in ~30 seconds.

Other frameworks: Next.js · Vite · SvelteKit · Astro · Remix · FastAPI · Django · Hono