╭─ INTRO ─╮
└────────────╯
One macOS app supervises every dev server, assigns a stable port, gives it a real .test domain with HTTPS your browser trusts, and runs the right Node version. Postgres, Valkey, Mailpit on tap. The CLI and the GUI share one daemon so state never drifts.
Two illustrations of Corral. Top: a macOS menu bar popover listing four projects (compliancr and deployoops running on .test domains; slackoff and yeetboard stopped) plus global shortcuts to create new projects or quit. Bottom: a terminal showing "corral ls --running" output mirroring the same project list, marked synced — the menu bar and CLI share one daemon.
Mockup of the Corral macOS app showing a project named compliancr.test in Running state. The sidebar lists six projects, two services, the Node runtime, and Logs/Settings. The main panel shows worker type, compatibility date, dependency status, a tunnel notice, and bindings grouped into Storage (D1, R2, KV), Compute (Durable Object, Workflow), Intelligence (Vectorize), and Async & security (Queue, Secrets, Service).
Animated terminal cycling through five Corral CLI commands: corral up, corral project scan, corral start, corral share, and corral data d1 sessions list — showing the kind of output you'd see at the shell.
─────────────────────────────────────── § 01 THE STATUS QUO ───────────────────────────────────────
Most local JS/TS setups are stitched together from localhost ports, Node managers, proxy configs, and terminal tabs. Corral collapses that pile into one native workflow.
──────────────────────────────────────── § 02 THE DEV LOOP ────────────────────────────────────────
Drag a folder, or `corral project add ./my-app`. Framework auto-detected. Icon and color inferred. Dev command picked from package.json.
Stable port. Stable URL: https://my-app.test. Real HTTPS. dnsmasq + Caddy under the hood, supervised by Corral.
One supervisor per dev server. Crash detection, auto-restart, graceful shutdown. Logs flow into one searchable pipeline.
corral share my-app — public *.trycloudflare.com URL. Free. No account. Auto-stops when the project stops.
───────────────────────────────────────── § 03 FRAMEWORKS ─────────────────────────────────────────
name config signature detected runner default port
───────────────────── ────────────────────────── ───────────────────── ────────────
★ Cloudflare Workers wrangler.toml | .json wrangler dev :8787
Next.js next.config.* + app/ next dev :3000
Nuxt nuxt.config.* nuxt dev :3000
Remix remix.config.* / vite remix vite:dev :3000
Astro astro.config.* astro dev :4321
SvelteKit svelte.config.* vite dev :5173
Gatsby gatsby-config.* gatsby develop :8000
Angular angular.json ng serve :4200
Vite vite.config.* vite :5173
Generic Node package.json scripts.dev npm run dev :—
★ first-class — deepest local environment wrangler.toml | .json wrangler dev next.config.* + app/ next dev nuxt.config.* nuxt dev remix.config.* / vite remix vite:dev astro.config.* astro dev svelte.config.* vite dev gatsby-config.* gatsby develop angular.json ng serve vite.config.* vite package.json scripts.dev npm run dev ★ first-class — deepest local environment
────────────────────────────── § 04 CLOUDFLARE WORKERS, FIRST-CLASS ───────────────────────────────
─────────────────────────────────── § 05 LOCAL SERVICES ◆ PRO ───────────────────────────────────
Native binaries supervised by Corral. Each binds to 127.0.0.1 only. Each has its own data
directory. Each ships an env-vars block ready to paste into .env.
────────────────────────────────────────── § 06 PRICING ───────────────────────────────────────────
────────────────────────────────────
────────────────────────────────────
──────────────────────────────────────────── § 07 FAQ ─────────────────────────────────────────────
$ corral faq cloudflare Is Corral only for Cloudflare projects? + No. Corral started with first-class Cloudflare support, and that path is still the deepest — local D1, KV, R2, Durable Objects, Workflows, and Secrets inspection — but it now detects and runs Next.js, Nuxt, Remix, Astro, SvelteKit, Gatsby, Angular, Vite, and plain Node projects too. Cloudflare is the lighthouse, not the limit.
$ corral faq domains Why .test domains instead of localhost ports? + Stable names beat shifting numbers. Once a project is registered it lives at a memorable URL like storefront.test, with HTTPS, even after restarts and reboots. No more "wait, was the API on 3001 or 3002?" — and cookies, OAuth callbacks, and CORS rules all behave like they would in production.
$ corral faq sudo Does it require admin / sudo permissions? + Some setup does. Routing *.test through dnsmasq and binding ports 80/443 for HTTPS need privileged operations on macOS. Corral handles that through a small signed helper the first time you set up routing — you never have to wire it manually or run the app as root.
$ corral faq sync Can I use the app and CLI at the same time? + Yes — that's the point. Both surfaces talk to the same background daemon, so process state, project status, and infrastructure status are always in sync. Start something in the menu bar, inspect it in the main window, tail logs in the terminal — they're all looking at the same source of truth.
$ corral faq nvm Does Corral manage Node.js for me? + Yes. It can install Node versions on demand and pick the right one per project from .node-version, .nvmrc, or an explicit override in project settings. Optional shell shims will resolve the right Node automatically when you cd into a project, so you can replace nvm or fnm if you want.
$ corral faq docker Do I still need Docker for databases and services? + For the services Corral supports — Postgres, MariaDB, Valkey/Redis, Mailpit, MinIO, OpenSearch, Meilisearch, Typesense — no. They run as native, supervised binaries with one-click install. If you depend on a service Corral doesn't cover, keep using Docker for that one; the two coexist fine.
$ corral faq pricing How does pricing work? + There's a free tier that covers the whole dev loop — projects, .test domains, HTTPS, Node management, CLI — with no nags or time limits. Pro is $49/year, billed once via Paddle, tied to your user account. Pro adds local services and the Cloudflare data inspectors. No monthly plan, no team seats.
$ corral faq cancel How do I cancel? Can I get a refund? + Cancel anytime through Paddle's customer portal — the link is in your purchase receipt email. Cancelling stops the next renewal; the current term stays active until it ends. For refunds within 14 days of purchase, email [email protected] with your order number — no questions asked.
$ corral faq linux Linux support? + Planned, no date. The core daemon is Rust and already portable; the macOS-specific work is the menu bar, the helper tool, and the AppKit UI. We'll ship Linux when we can do it well, not as a checkbox.
$ corral faq oss Is it open source? + No — Corral is a closed-source commercial product. There's no public repository.
╭───────────────────────────────────╮ │ │ │ stop fighting your dev setup │ │ │ ╰───────────────────────────────────╯