Skip to main content
hookfish init can scaffold five runtime targets. Choose the runtime that fits your existing infrastructure, then choose production storage independently where the target supports it. Create a project with an explicit target:
Every scaffold provides:
  • pnpm dev for the backend and packaged dashboard
  • pnpm dev:server for only the runtime-native backend
  • hookfish.config.ts or an equivalent Worker entrypoint
  • A gitignored local environment file with an encryption key and development broker key

Choose storage deliberately

PGlite is a good local default and can serve a single persistent process. Use PostgreSQL when the runtime has an ephemeral filesystem, runs multiple instances, or needs established backup and recovery tooling. On Cloudflare Workers, use Hyperdrive for PostgreSQL connections. The SQLite-backed Durable Objects adapter is experimental and is not the advised production storage path.

Separate the dashboard from the backend

The dashboard assets are static, but hookfish serve places a local operator BFF in front of them. The BFF keeps HOOKFISH_API_KEY in the server process, sets an ephemeral HttpOnly operator cookie, and forwards only explicit safe operations. It never proxies the raw API wholesale.
The packaged operator dashboard binds to loopback. Build a separately authenticated application or SSO-protected operator service for remote use.