Nuxt でフルスタックのダッシュボードアプリを一から作ろうとすると、認証・データベース・UIコンポーネントの初期設定だけで数時間かかることがある。Dennis Adriaansen が公開した nuxt-crud の CLI はその問題を一掃する。5つのコマンドで Nuxt + Nuxt UI + Drizzle ORM + Better Auth の構成を自動生成し、NuxtHub 経由で Cloudflare または Vercel にそのままデプロイできる。

この記事でわかること:

  • nuxt-crud CLI が何をするツールか
  • DashboardStack Init の5ステップの内容
  • Better Auth と NuxtHub がどう連携するか
  • 導入コマンドと使い方

「また設定から始めるのか」という問題

新しいダッシュボードプロジェクトを立ち上げるとき、毎回同じ作業が繰り返される。Nuxt の初期化、UIライブラリの追加、Drizzle ORM のスキーマ作成、認証ライブラリのセットアップ、そしてCRUDエンドポイントの雛形生成。Laravel では artisan make:modelartisan make:resource で一瞬終わるが、Nuxt にはそれに相当するツールが長らくなかった。

nuxt-crud はその空白を埋めるために作られた CLI ツールだ。Drizzle ORM のモデルからバックエンドのエンドポイント・バリデーション・レスポンス整形までをまとめて生成する。

DashboardStack Init の5ステップ

Dennisが公開したデモでは、以下の手順を順番に実行するだけで全体の骨格が完成する。

1. Nuxt を初期化する

npm create nuxt@latest my-app

Nuxt 4 の最小構成からスタートする。

2. Nuxt UI を追加する

npx nuxi module add ui

Nuxt UI は 125 以上のコンポーネントを MIT ライセンスで提供するオフィシャルの UI ライブラリだ(Nuxt 4 からすべて無料)。ボタン・テーブル・モーダルなどダッシュボードで使う部品がひととおり揃っている。

3. データベースを自動生成する

npx nuxt-crud make:database

Drizzle ORM のセットアップファイルを自動生成する。NuxtHub を使えば Cloudflare D1(SQLite)に接続でき、追加設定なしで動く。

4. Better Auth を追加する

npx nuxi module add @onmax/nuxt-better-auth

Better Auth は TypeScript ファーストの認証ライブラリで、27 以上のプラグイン(2FA、組織管理、APIキー、マジックリンクなど)と 33 以上の OAuth プロバイダーに対応している。nuxt.config.ts に数行書くだけで認証が動き始める。

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@onmax/nuxt-better-auth'],
  routeRules: {
    '/dashboard/**': { auth: 'user' },
    '/admin/**': { auth: 'admin' },
  },
})

ルート保護は routeRules で宣言するだけでよく、ミドルウェアを手書きする必要はない。

5. ページリソースを生成する

npx nuxt-crud init
npx nuxt-crud make:model Post "title:string,content:string:required"

init はデータベースの初期化と User モデルの生成をまとめて実行する。make:model にはモデル名とフィールド定義を渡すだけで、Drizzle スキーマ・index/show/create/update/delete の API エンドポイント・Zod バリデーション・レスポンスの型定義が一括生成される。

「0 tokens used」が意味すること

デモのキャプションに「0 tokens used」と書かれている。AI の補助なしで完結するという意味だ。LLM に設計の判断を委ねるのではなく、決定論的なコード生成で確実に動くコードを出力する。ランダム性やハルシネーションがない分、チーム開発や CI 環境での扱いが安定する。

NuxtHub でのデプロイ

生成したプロジェクトは NuxtHub CLI でそのまま Cloudflare Pages にデプロイできる。

npm install -g nuxthub
nuxthub deploy --production

データベースは Cloudflare D1(SQLite)、ファイルは Cloudflare R2、KVキャッシュも含めてゼロ設定で動く。Vercel + PostgreSQL 構成も選択できるため、インフラの縛りはない。

nuxt-crud の構成

nuxt-crud はモノレポ構成で3つのパッケージを持つ。

  • clinuxt-crud コマンド本体。make:modelmake:databaseinit を提供する
  • module — Drizzle ORM のモデルから管理画面を自動生成する Nuxt モジュール
  • docs — ドキュメント

cli は npm でグローバルインストールするか、npx でそのまま使える。

npm install -g nuxt-crud-cli
# または
npx nuxt-crud make:model User "name:string,email:string:required:unique"

まとめ

nuxt-crud の DashboardStack Init は、Nuxt + Nuxt UI + Drizzle ORM + Better Auth + NuxtHub という現時点で実績のある組み合わせを、AIなしで即座にセットアップするワークフローだ。Laravel の artisan に慣れた開発者や、毎回の初期設定に時間をかけたくないチームには特に使いやすい。