@nuxthub/core >= v0.10.0.Since Vercel's acquisition of NuxtLabs, we've been working to let you build full-stack Nuxt applications across multiple hosting providers. Today, we're excited to announce that NuxtHub is now multi-vendor.
With v0.10, you can now deploy your NuxtHub projects to any hosting provider while keeping an almost zero-config experience. Whether you choose Cloudflare, Vercel, AWS, or any other provider, NuxtHub now adapts to your infrastructure.
NuxtHub v0.10 brings multi-cloud support for all core features:
export default defineNuxtConfig({
hub: {
db: 'postgresql', // or 'sqlite', 'mysql'
blob: true,
kv: true,
cache: true
}
})
NuxtHub detects your deployment environment and configures the appropriate drivers automatically. It also uses PGLite locally if no PostgreSQL connection is provided.
NuxtHub v0.10 introduces a completely new database experience powered by Drizzle ORM. This isn't just a wrapper, it's a deep integration that makes working with a database in Nuxt as easy as using a db instance.
Define your schema in server/db/schema.ts (or split across multiple files in server/db/schema/), and NuxtHub automatically registers everything:
import { pgTable, text, serial, timestamp } from 'drizzle-orm/pg-core'
export const users = pgTable('users', {
id: serial().primaryKey(),
name: text().notNull(),
email: text().notNull().unique(),
createdAt: timestamp().notNull().defaultNow()
})
Your schema is then accessible via the schema object in the hub:db namespace:
import { db, schema } from 'hub:db'
export default eventHandler(async () => {
return await db.select().from(schema.users)
})
One of the most powerful features is the ability for Nuxt modules and layers to extend your database schema. This opens up exciting possibilities for the ecosystem, an auth module could automatically add user tables, or a CMS module that brings its own content schemas.
export default defineNuxtModule({
setup(options, nuxt) {
nuxt.hook('hub:db:schema:extend', async ({ dialect, paths }) => {
paths.push(await resolvePath(`./schema/users.${dialect}`))
})
}
})
nuxt db CLIManaging your database is now as simple as running a few commands:
# Generate migrations from schema changes
npx nuxt db generate
# Apply migrations
npx nuxt db migrate
# Run SQL queries directly
npx nuxt db sql "SELECT * FROM users"
# Mark migrations as applied
npx nuxt db mark-as-migrated <name>
# Drop a table
npx nuxt db drop <table>
Migrations are automatically applied during development and at build time — no extra configuration needed.
@nuxt/db based on the work of NuxtHub DB v0.10.We are in the process of updating all our templates to support the new multi-vendor architecture. Stay tuned for updated starters that work out of the box with Vercel, Cloudflare, and more.
As we move toward a fully self-hosted, multi-cloud future, we're making important changes to NuxtHub Admin.
We've added a guided migration tool directly in NuxtHub Admin. This tool helps you:
wrangler.jsoncThe migration tool walks you through each step, ensuring your data and configuration are preserved.
During December 2025, we will cancel all active subscriptions. Pro-rata refunds will be issued for any unused time beyond December 31st, 2025.
During this period:
Starting February 2nd, 2026, new deployments using the nuxthub CLI and GitHub Action will no longer work. We recommend switching to your provider's native deployment method:
This release represents a major step in NuxtHub's evolution. With v0.10, NuxtHub works wherever you deploy. Pick the cloud that makes sense for your project without sacrificing the developer experience that makes NuxtHub special.
Thank you for being part of this journey. We can't wait to see what you build with NuxtHub v0.10.