NuxtHub

Why @nuxt-hub/core shows up in Nuxfire even though the app isn't deployed through NuxtHub's own platform.

NuxtHub is normally both a Nuxt module (@nuxt-hub/core) and a hosting platform — you write code against its hubBlob()/hubKV()/hubDatabase() utilities, then deploy through NuxtHub's own CLI, which provisions and bills the underlying Cloudflare resources for you.

Nuxfire uses only the module half. Deployment goes entirely through SST instead — nothing is provisioned or billed via NuxtHub's platform.

Why use it at all, then

@nuxt-hub/core's utilities are convenient enough to keep even without NuxtHub's deployment path, and one thing forces the connection regardless: NuxtHub's self-hosted mode expects its bindings named exactly BLOB, KV, CACHE — that naming is fixed by NuxtHub itself, not something SST's link can rename. So infra/utils/nuxt.ts provisions real Cloudflare resources under those exact names:

infra/utils/nuxt.ts
link.push(
  database,
  new sst.cloudflare.Bucket("BLOB"),
  new sst.cloudflare.Kv("KV"),
  new sst.cloudflare.Kv("CACHE"),
  emails,
);
apps/app/nuxt.config.ts
export default defineNuxtConfig({
  hub: {
    blob: true,
    kv: true,
    cache: true,
  },
});

What's actually used

  • hubBlob() — R2 file storage. Used today for profile pictures and team logos (see Storage).
  • hubKV() — Cloudflare KV. Used for rate-limiting windows (apps/app/server/utils/rate-limit.ts) and small cached values like the Stripe cancel-flow configuration id.
  • CACHE — provisioned (hub: { cache: true }), but nothing in the app calls hubCache() yet. It's there for when a route needs Nitro's cache layer, not because it's load-bearing today.

Not used at all: hubDatabase(). Nuxfire's database is Postgres via Cloudflare Hyperdrive (see Database) — a deliberate departure from NuxtHub's own D1-based database module, so the app can point at any standard Postgres instead of being tied to D1.

Local development

Because the app is built against @nuxt-hub/core's Nuxt module, the NuxtHub Dev Tools panel works locally during bun run app (which uses wrangler/miniflare to emulate the Cloudflare bindings) — without ever needing a NuxtHub account or deploying through NuxtHub.

Nuxfire Production Kit

Ready to build and launch your SaaS?

Get 100% full source code ownership, zero proprietary wrappers, and architecture engineered for millions of requests on Cloudflare.

© 2026 Nuxfire