Getting Started
Deploy your first site to the edge in 60 seconds.
Install
Creek runs via npx — no global install needed:
npx creek deploy --template landingOr install globally:
npm install -g creekAfter installing, you can use creek, ck, or crk interchangeably.
Try a Template
See Creek in action with zero setup — --template landing clones a ready-made Vite + React starter, builds it, and deploys it:
npx creek deploy --template landing Detected: vite-react
Building...
Live in 8.3s -> https://a1b2c3d4.creeksandbox.comThe template is a real, editable project — you own the code and can redeploy with your own changes.
Deploy Your Project
Navigate to any project with a package.json:
cd my-vite-app
npx creek deployCreek auto-detects your framework, runs the build, and deploys to a sandbox preview (60 minutes).
Deploy a Directory
Already have built files? Point Creek at any directory:
npx creek deploy ./distDeploy a Plain HTML File
Even a single index.html works:
echo '<h1>Hello</h1>' > index.html
npx creek deployDeploy Modes
| Mode | Trigger | Account | TTL |
|---|---|---|---|
| Template | --template <name> | No | 60 min |
| Sandbox | Auto-detect (no creek.toml) | No | 60 min |
| Production | Has creek.toml + token | Yes | Permanent |
Make It Permanent
Sandbox deploys expire after 60 minutes. To keep your site:
# 1. Create an account
creek login
# 2. Claim your sandbox deploy
creek claim <sandboxId>
# 3. Or set up a permanent project
creek init
creek deploySupported Frameworks
Creek is Vite-first. Anything that's a Vite app — or a meta-framework built on top of Vite — deploys with zero config:
Vite apps (SPA) — auto-detected, zero config
- Vite + React
- Vite + Vue
- Vite + Svelte
- Vite + Solid
Vite meta-frameworks — auto-detected, zero config
- Astro (Vite under the hood)
- SvelteKit (Vite under the hood, server build experimental)
- Nuxt (Vite under the hood, server build experimental)
Other frameworks — supported with varying maturity
- TanStack Start
- React Router (v7 / Remix)
- Hono
- Any static site (
index.htmlfallback)
Work in progress: Next.js (via @solcreek/adapter-creek, currently routed through an OpenNextJS workaround — see solcreek/creek#1).
Why "Vite-first"? Creek's zero-config detection chain reads your framework config,
package.json, andvite.config.*to infer the build command, output directory, and bindings. Vite apps are the most mature tier because the detection chain was designed against them first. SSR meta-frameworks are catching up as the respective adapters stabilize.
Local Development
Run the full Creek stack locally with a single command:
creek devThis starts a local server with D1 (SQLite), KV, R2, and realtime WebSocket — all behind one port. Data persists in .creek/dev/ across restarts.
creek dev --reset # Clear local data
creek dev --port 8080If your creek.toml has cron or queue triggers, creek dev accepts stdin commands while running:
cron Trigger scheduled() handler
queue <message> Send a message to queue() handlerSee CLI Reference for details.
Triggers
Add cron schedules and a queue to your creek.toml:
[project]
name = "my-app"
[resources]
database = true
[triggers]
cron = ["0 */6 * * *"] # Every 6 hours
queue = true # Auto-provisions a CF QueueIn your worker, export scheduled() and queue() handlers alongside fetch(). Creek wires the bindings automatically. See CLI Reference and Realtime.
Next Steps
- CLI Reference — all commands and flags
- Realtime — LiveRoom, useLiveQuery, usePresence
- HTTP API — deploy programmatically
- MCP Server — AI agent integration