Look, Sébastien Chopin got sick of configuring the same Cloudflare shit for every Nuxt project. So he built a wrapper that handles Workers, D1, and R2 setup automatically. That's NuxtHub - one command instead of twenty different dashboards.
I've been using it for 8 months now and it's honestly saved my ass more times than I can count. Remember spending entire Sundays setting up Cloudflare infrastructure? Those days are gone. But here's the kicker - my $8 side project turned into a $47 bill in June because I was being a dumbass with N+1 queries in production. Monitor your shit or you'll learn the hard way like I did.
The Reality of Using It
Run npx nuxthub deploy
and wait 2-3 minutes while it builds your app, creates a D1 database if you need one, and spits out a working URL. Your app is suddenly running on 300+ edge locations without you touching a single fucking Cloudflare config file.
The server helpers like hubDatabase()
and hubBlob()
work fine until pnpm 10.4.0+ decides to shit the bed. Your builds fail with "Cannot find module 'better-sqlite3'" even though it's installed. Spent 4 hours pulling my hair out before finding you need \"onlyBuiltDependencies\": [\"better-sqlite3\"]
in package.json. GitHub issue #9073 has the gory details. Documentation mentions this exactly nowhere, so you get to discover it the fun way.
Performance Is Actually Good
The edge performance isn't marketing bullshit. I tested the same blog from San Francisco (43ms), London (67ms), and Singapore (89ms) - consistently fast because Cloudflare actually has servers everywhere. Static files load in 20-40ms globally. But database writes? All go to one central location in the US, so my European users see 200ms+ write latency. Plan accordingly.
The Development Experience
The npx nuxthub deploy
command works most of the time. When it shits the bed, error messages are usually helpful enough. The remote storage access feature is powerful but fucking dangerous. You're running DELETE FROM users WHERE id = 123
thinking you're on local dev, but surprise! You just deleted a real customer from production. I watched my colleague do exactly this in March 2025. Always double-check your environment before running database commands.
Nuxt DevTools integration is actually useful. You get a database browser, file manager, and cache viewer. It's not as polished as full database tools but it's enough for quick checks and small edits.
One annoying thing: if you enable the OpenAPI docs feature in your Nitro config, builds will fail with "Identifier has already been declared" errors. Had to disable it after wasting time debugging.