arkenv
Answer questions about ArkEnv and help implement environment variable validation. Use when developers: (1) Ask about environment…
Use when building NuxtHub v0.10.8 applications - provides database (Drizzle ORM with sqlite/postgresql/mysql), KV storage, blob storage, and cache APIs. Covers configuration, schema definition, migrations, multi-cloud deployment (Cloudflare, Vercel), and the new hub:db, hub:kv,
Claude Code
$ npx -y skills add onmax/nuxt-skills --skill nuxthub --agent claude-code
Codex
$ npx skills add onmax/nuxt-skills --skill nuxthub -a codex -y
Cursor
$ npx skills add onmax/nuxt-skills --skill nuxthub -a cursor -y
Gemini CLI
$ npx skills add onmax/nuxt-skills --skill nuxthub -a gemini-cli -y
GitHub Copilot
$ npx skills add onmax/nuxt-skills --skill nuxthub -a github-copilot -y
OpenCode
$ npx skills add onmax/nuxt-skills --skill nuxthub -a opencode -y
Windsurf
$ npx skills add onmax/nuxt-skills --skill nuxthub -a windsurf -y
name: nuxthub description: Use when building NuxtHub v0.10.8 applications - provides database (Drizzle ORM with sqlite/postgresql/mysql), KV storage, blob storage, and cache APIs. Covers configuration, schema definition, migrations, multi-cloud deployment (Cloudflare, Vercel), and the new hub:db, hub:kv, hub:blob virtual module imports. license: MIT
Full-stack Nuxt framework with database, KV, blob, and cache. Multi-cloud support (Cloudflare, Vercel, Deno, Netlify).
**For Nuxt server patterns:** use `nuxt` skill (server.md) **For content with database:** use `nuxt-content` skill
**Consider loading these reference files based on your task:**
**DO NOT load all files at once.** Load only what's relevant to your current task.
npx nuxi module add hub
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@nuxthub/core'],
hub: {
db: 'sqlite', // 'sqlite' | 'postgresql' | 'mysql'
kv: true,
blob: true,
cache: true,
dir: '.data', // local storage directory
remote: false // use production bindings in dev (v0.10+)
}
})hub: {
db: {
dialect: 'postgresql',
driver: 'postgres-js', // Optional: auto-detected
casing: 'snake_case', // camelCase JS -> snake_case DB (v0.10.3+)
migrationsDirs: ['server/db/custom-migrations/'],
applyMigrationsDuringBuild: true, // default
applyMigrationsDuringDev: true, // apply migrations in dev (v0.10.7+)
replica: { // Read replica support (v0.10.6+)
connection: { connectionString: process.env.DATABASE_REPLICA_URL }
}
},
remote: true // Use production Cloudflare bindings in dev (v0.10+)
}**remote mode:** When enabled, connects to production D1/KV/R2 during local development instead of local emulation. Useful for testing with production data.
**Database replica (v0.10.6+):** Configure read replicas to distribute database load. Queries use replicas automatically while writes go to primary.
Type-safe SQL via Drizzle ORM. `db` and `schema` are auto-imported on server-side.
Place in `server/db/schema.ts` or `server/db/schema/*.ts`:
// server/db/schema.ts (SQLite)
import { integer, sqliteTable, text } from 'drizzle-orm/sqlite-core'
export const users = sqliteTable('users', {
id: integer().primaryKey({ autoIncrement: true }),
name: text().notNull(),
email: text().notNull().unique(),
createdAt: integer({ mode: 'timestamp' }).notNull()
})PostgreSQL variant:
import { pgTable, serial, text, 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()
})// db and schema are auto-imported on server-side
import { db, schema } from 'hub:db'
// Select
const users = await db.select().from(schema.users)
const user = await db.query.users.findFirst({ where: eq(schema.users.id, 1) })
// Insert
const [newUser] = await db.insert(schema.users).values({ name: 'John', email: 'john@example.com' }).returning()
// Update
await db.update(schema.users).set({ name: 'Jane' }).where(eq(schema.users.id, 1))
// Delete
await db.delete(schema.users).where(eq(schema.users.id, 1))npx nuxt db generate # Generate migrations from schema npx nuxt db migrate # Apply pending migrations npx nuxt db sql "SELECT * FROM users" # Execute raw SQL npx nuxt db drop <TABLE> # Drop a specific table npx nuxt db drop-all [--force] # Drop all tables; --force skips confirmation (v0.10.7+) npx nuxt db squash # Squash migrations into one (v0.10+) npx nuxt db mark-as-migrated [NAME] # Mark as migrated without running
Migrations auto-apply during `npx nuxi dev` and `npx nuxi build`. Tracked in `_hub_migrations` table.
| Dialect | Local | Production | | ---------- | -------------------- | ------------------------------------------------------------------ | | sqlite | `.data/db/sqlite.db` | D1 (Cloudflare), Turso (`TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`) | | postgresql | PGlite | postgres-js (`DATABASE_URL`), neon-http (v0.10.2+, `DATABASE_URL`) | | mysql | - | mysql2 (`DATABASE_URL`, `MYSQL_URL`) |
Key-value storage. `kv` is auto-imported on server-side.
import { kv } from 'hub:kv'
await kv.set('key', { data: 'value' })
await kv.set('key', value, { ttl: 60 }) // TTL in seconds
const value = await kv.get('key')
const exists = await kv.has('key')
await kv.del('key')
const keys = await kv.keys('prefix:')
await kv.clear('prefix:')Constraints: max value 25 MiB, max key 512 bytes.
| Provider | Package | Env Vars | | ------------- | ---------------- | ---------------------------------------------------- | | Upstash | `@upstash/redis` | `UPSTASH_REDIS_REST_URL`, `UPSTASH_REDIS_REST_TOKEN` | | Redis | `ioredis` | `REDIS_URL` | | Cloudflare KV | - | `KV` binding in wrangler.jsonc | | Deno KV | - | Auto on Deno Deploy | | Vercel | - | `KV_REST_API_URL`, `KV_REST_API_TOKEN` |
File storage. `blob`
Answer questions about ArkEnv and help implement environment variable validation. Use when developers: (1) Ask about environment…
Comark (Components in Markdown) parser: syntax, AST, Vue/React/Svelte/Angular renderers, plugins, and LLM streaming with…
Build durable backend AI agents with the eve framework. Use when creating, editing, or debugging an eve project — agent…
Build animations in a Nuxt app with nanime, the Nuxt module wrapping Anime.js v4. Use when animating elements, text, SVG or…
Nitro is the framework-agnostic server toolkit (powering Nuxt) for building and deploying web servers anywhere. Use when working…
Guides authentication in Nuxt apps using @nuxtjs/better-auth. Use when installing or configuring the module, using its client or…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.