nextworks 0.1.0-alpha.2 → 0.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,6 +8,14 @@ Nextworks is a CLI that installs **modular Next.js building blocks** into your a
8
8
  - **Data** – Example CRUD for Users + Posts with admin UI, wired to Auth + Prisma.
9
9
 
10
10
  > **Status:** early‑access alpha. Expect rough edges and breaking changes between alpha releases.
11
+ >
12
+ > In this alpha, the most reliable setup is to install **Blocks** first using the default command:
13
+ >
14
+ > ```bash
15
+ > npx nextworks add blocks
16
+ > ```
17
+ >
18
+ > and then add **Auth Core**, **Forms**, and **Data** on top. Partial setups (e.g. Auth/Data without Blocks) may require manual tweaks and are not yet fully supported.
11
19
 
12
20
  ---
13
21
 
@@ -22,7 +30,7 @@ npx nextworks --help
22
30
  Example commands:
23
31
 
24
32
  ```bash
25
- npx nextworks add blocks --sections --templates
33
+ npx nextworks add blocks
26
34
  npx nextworks add auth-core
27
35
  npx nextworks add forms
28
36
  npx nextworks add data
@@ -47,9 +55,10 @@ From your app root:
47
55
  npx nextworks add blocks
48
56
  ```
49
57
 
50
- This copies:
58
+ This copies by default:
51
59
 
52
- - `components/ui/*` and `components/sections/*`
60
+ - `components/ui/*` (core UI primitives)
61
+ - `components/sections/*` (reusable sections)
53
62
  - Page templates under `app/templates/*`
54
63
  - Theme helpers and `app/globals.css` (if not already present)
55
64
 
@@ -137,6 +146,19 @@ Then visit:
137
146
 
138
147
  ---
139
148
 
149
+ ## Advanced Blocks installs
150
+
151
+ By default, `npx nextworks add blocks` installs **core UI primitives, sections, and templates** so the example routes under `/templates/*` work out of the box.
152
+
153
+ If you want finer control:
154
+
155
+ - `npx nextworks add blocks --ui-only` – install core UI primitives only (no sections/templates).
156
+ - `npx nextworks add blocks --sections` – install core + sections only.
157
+ - `npx nextworks add blocks --templates` – install core + templates only.
158
+ - `npx nextworks add blocks --sections --templates` – same as the default (core + sections + templates).
159
+
160
+ ---
161
+
140
162
  ## Copy‑paste quickstart for your app README
141
163
 
142
164
  You can add a short “Nextworks setup” section to your app README:
@@ -146,7 +168,7 @@ You can add a short “Nextworks setup” section to your app README:
146
168
 
147
169
  1. Install and run the CLI from your Next.js app root:
148
170
 
149
- npx nextworks add blocks --sections --templates
171
+ npx nextworks add blocks
150
172
  npx nextworks add auth-core
151
173
 
152
174
  2. Copy environment variables:
@@ -46,7 +46,9 @@
46
46
  "lib/forms/map-errors.ts",
47
47
  "scripts/seed-demo.mjs",
48
48
  "scripts/promote-admin.mjs",
49
- "scripts/populate-tokenhash.mjs"
49
+ "scripts/populate-tokenhash.mjs",
50
+ ".nextworks/docs/AUTH_CORE_README.md",
51
+ ".nextworks/docs/AUTH_QUICKSTART.md"
50
52
  ],
51
53
  "apiRoutes": [
52
54
  "app/api/auth/[...nextauth]/route.ts",
@@ -31,7 +31,10 @@
31
31
  "lib/themes.ts",
32
32
  "lib/utils.ts",
33
33
  "app/globals.css",
34
- "next.config.ts"
34
+ "next.config.ts",
35
+ ".nextworks/docs/THEME_GUIDE.md",
36
+ ".nextworks/docs/BLOCKS_README.md",
37
+ ".nextworks/docs/BLOCKS_QUICKSTART.md"
35
38
  ]
36
39
  },
37
40
  "sections": {
@@ -154,8 +157,7 @@
154
157
  "public/placeholders/saas_dashboard/analytics.png",
155
158
  "public/placeholders/saas_dashboard/chat.png",
156
159
  "public/placeholders/saas_dashboard/projectBoard.png",
157
- "notes/THEME_GUIDE.md",
158
- "notes/THEMING_CONVERSION_SUMMARY.md"
160
+ ".nextworks/docs/THEME_GUIDE.md"
159
161
  ]
160
162
  }
161
163
  },
@@ -172,9 +174,7 @@
172
174
  "public/placeholders/product_launch/hero.png",
173
175
  "public/placeholders/saas_dashboard/analytics.png",
174
176
  "public/placeholders/saas_dashboard/chat.png",
175
- "public/placeholders/saas_dashboard/projectBoard.png",
176
- "notes/THEME_GUIDE.md",
177
- "notes/THEMING_CONVERSION_SUMMARY.md"
177
+ "public/placeholders/saas_dashboard/projectBoard.png"
178
178
  ],
179
179
  "apiRoutes": [],
180
180
  "cliKitPath": "cli/kits/blocks",
@@ -19,8 +19,9 @@
19
19
  "app/examples/demo/seed-demo-button.tsx",
20
20
  "lib/prisma.ts",
21
21
  "lib/server/result.ts",
22
-
23
- "scripts/seed-demo.mjs"
22
+ "scripts/seed-demo.mjs",
23
+ ".nextworks/docs/DATA_README.md",
24
+ ".nextworks/docs/DATA_QUICKSTART.md"
24
25
  ],
25
26
  "apiRoutes": [
26
27
  "/api/posts",
@@ -29,7 +29,9 @@
29
29
  "app/examples/forms/wizard/page.tsx",
30
30
  "app/examples/forms/server-action/form-client.tsx",
31
31
  "app/examples/forms/server-action/page.tsx",
32
- "app/api/wizard/route.ts"
32
+ "app/api/wizard/route.ts",
33
+ ".nextworks/docs/FORMS_README.md",
34
+ ".nextworks/docs/FORMS_QUICKSTART.md"
33
35
  ],
34
36
  "apiRoutes": [],
35
37
  "optionalExamples": {
@@ -47,8 +49,8 @@
47
49
  "app/api/wizard/route.ts",
48
50
  "components/examples/wizard-client.tsx"
49
51
  ],
50
- "requires": ["data", "auth"],
51
- "notes": "Wizard demo requires the data and auth kits (Prisma + NextAuth). Run: npx nextworks add data && npx nextworks add auth"
52
+ "requires": ["data", "auth-core"],
53
+ "notes": "Wizard demo requires the data and auth-core kits (Prisma + NextAuth). Run: npx nextworks add data && npx nextworks add auth-core"
52
54
  }
53
55
  },
54
56
  "prisma": [],
@@ -2,6 +2,7 @@ export interface AddBlocksOptions {
2
2
  sections?: boolean;
3
3
  templates?: boolean;
4
4
  gallery?: boolean;
5
+ uiOnly?: boolean;
5
6
  }
6
7
  export declare function addBlocks(options?: AddBlocksOptions): Promise<void>;
7
8
  //# sourceMappingURL=blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiL7E"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2Q7E"}
@@ -16,18 +16,85 @@ async function addBlocks(options = {}) {
16
16
  const manifest = (await (0, file_operations_1.readJsonFile)(manifestPath));
17
17
  // Decide which groups to install.
18
18
  // Core is always included to satisfy the contract that sections/templates rely on core.
19
+ // Behavior:
20
+ // - No flags: install core + sections + templates by default.
21
+ // - --sections: install core + sections only.
22
+ // - --templates: install core + templates only.
23
+ // - --sections --templates: core + sections + templates (same as default).
24
+ // - --ui-only: install core only (bare UI primitives, no sections/templates).
19
25
  const explicitGroups = [];
20
- if (options.sections)
21
- explicitGroups.push("sections");
22
- if (options.templates)
23
- explicitGroups.push("templates");
24
- if (options.gallery)
25
- explicitGroups.push("gallery");
26
+ const anyGroupFlag = typeof options.sections === "boolean" ||
27
+ typeof options.templates === "boolean" ||
28
+ typeof options.gallery === "boolean" ||
29
+ typeof options.uiOnly === "boolean";
30
+ if (options.uiOnly) {
31
+ // uiOnly overrides other flags if set
32
+ const groupsToInstall = manifest.groups
33
+ ? ["core"].filter((g) => g in manifest.groups)
34
+ : [];
35
+ const files = groupsToInstall.length > 0 && manifest.groups
36
+ ? groupsToInstall.flatMap((groupName) => {
37
+ const group = manifest.groups?.[groupName];
38
+ return group?.files ?? [];
39
+ })
40
+ : manifest.files || [];
41
+ const filesToCopy = [];
42
+ const missingFiles = [];
43
+ for (const file of files) {
44
+ const kitSource = path_1.default.join(kitDir, file);
45
+ if (await (0, file_operations_1.fileExists)(kitSource)) {
46
+ filesToCopy.push(file);
47
+ }
48
+ else {
49
+ const projectSource = path_1.default.join(process.cwd(), file);
50
+ if (await (0, file_operations_1.fileExists)(projectSource)) {
51
+ console.log(`ℹ️ Skipping ${file} (already exists in project)`);
52
+ }
53
+ else {
54
+ missingFiles.push(file);
55
+ }
56
+ }
57
+ }
58
+ if (filesToCopy.length > 0) {
59
+ await (0, file_operations_1.copyFiles)(kitDir, process.cwd(), filesToCopy);
60
+ }
61
+ else {
62
+ console.log("⚠️ No files to copy from the blocks kit (all files missing or already present)");
63
+ }
64
+ // Update package.json and track install as usual
65
+ const depsPath = path_1.default.join(kitDir, "package-deps.json");
66
+ let deps = {};
67
+ try {
68
+ deps = await (0, file_operations_1.readJsonFile)(depsPath);
69
+ await (0, file_operations_1.updatePackageJson)(deps);
70
+ }
71
+ catch (err) {
72
+ console.log("⚠️ No package-deps.json found for blocks or failed to read it");
73
+ }
74
+ await (0, installation_tracker_1.addInstalledKit)("blocks", Object.keys(deps.dependencies || {}), Object.keys(deps.devDependencies || {}), filesToCopy);
75
+ console.log("✓ blocks core UI primitives installed successfully (ui-only mode)!");
76
+ if (missingFiles.length > 0) {
77
+ console.log("\n⚠️ The following files referenced by the blocks manifest were not found in the kit and were not copied:");
78
+ missingFiles.forEach((f) => console.log(` • ${f}`));
79
+ console.log("You may need to copy these files manually (for example placeholder assets under public/placeholders) or reconcile the kit files.");
80
+ }
81
+ return;
82
+ }
83
+ if (anyGroupFlag) {
84
+ if (options.sections)
85
+ explicitGroups.push("sections");
86
+ if (options.templates)
87
+ explicitGroups.push("templates");
88
+ if (options.gallery)
89
+ explicitGroups.push("gallery");
90
+ }
91
+ else {
92
+ // No flags passed: include sections and templates by default so templates
93
+ // always have their section dependencies available.
94
+ explicitGroups.push("sections", "templates");
95
+ }
26
96
  const groupsToInstall = manifest.groups
27
- ? [
28
- "core",
29
- ...(explicitGroups.length ? explicitGroups : ["templates"]),
30
- ].filter((g) => g in manifest.groups)
97
+ ? ["core", ...explicitGroups].filter((g) => g in manifest.groups)
31
98
  : [];
32
99
  const files = groupsToInstall.length > 0 && manifest.groups
33
100
  ? groupsToInstall.flatMap((groupName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/commands/blocks.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -27,6 +27,7 @@ program
27
27
  .option("--sections", "Include standalone sections (Hero, CTA, Pricing, etc.)")
28
28
  .option("--templates", "Include full page templates (Product Launch, SaaS Dashboard, Digital Agency, Gallery)")
29
29
  .option("--gallery", "Include gallery/demo template and assets")
30
+ .option("--ui-only", "Install core UI primitives only (no sections/templates)")
30
31
  .action(async (kit, options) => {
31
32
  try {
32
33
  switch (kit) {
@@ -44,6 +45,7 @@ program
44
45
  sections: options.sections,
45
46
  templates: options.templates,
46
47
  gallery: options.gallery,
48
+ uiOnly: options.uiOnly,
47
49
  });
48
50
  break;
49
51
  default:
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA,4CAA4C;AAC5C,+BAA+B;;;;;AAE/B,yCAAoC;AACpC,oDAAmD;AACnD,8CAA8C;AAC9C,6DAAwC;AACxC,mGAAmG;AACnG,iGAAiG;AAEjG,2DAAsC;AACtC,kEAA6D;AAC7D,4DAAwD;AACxD,uEAAgE;AAEhE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CACL,YAAY,EACZ,wDAAwD,CACzD;KACA,MAAM,CACL,aAAa,EACb,uFAAuF,CACxF;KACA,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;KAC/D,MAAM,CACL,KAAK,EACH,GAAW,EACX,OAAuE,EACvE,EAAE;IACF,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,WAAW;gBACd,MAAM,IAAA,uBAAW,GAAE,CAAC;gBACpB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAA,eAAQ,GAAE,CAAC;gBACjB,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAA,cAAO,GAAE,CAAC;gBAChB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAA,kBAAS,EAAC;oBACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CACT,yDAAyD,CAC1D,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,+DAA+D,CAChE,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,4FAA4F,CAC7F,CAAC;gBACF,OAAO,CAAC,GAAG,CACT,mEAAmE,CACpE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;IAC5B,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,WAAW;gBACd,MAAM,IAAA,iCAAc,GAAE,CAAC;gBACvB,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAA,4BAAY,GAAE,CAAC;gBACrB,MAAM;YACR;gBACE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CACT,yDAAyD,CAC1D,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,IAAA,uCAAgB,GAAE,CAAC;QAE/C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ Auth core kit (cli/kits/auth-core)
2
+
3
+ This folder contains the files that the `nextworks` CLI copies into a target Next.js project when you run:
4
+
5
+ ```bash
6
+ npx nextworks add auth-core
7
+ ```
8
+
9
+ > **Alpha note**
10
+ >
11
+ > In this early alpha, the Auth Core kit is tested and supported on top of the default **Blocks** install. For the smoothest experience, run:
12
+ >
13
+ > ```bash
14
+ > npx nextworks add blocks
15
+ > npx nextworks add auth-core
16
+ > ```
17
+ >
18
+ > before wiring up Prisma and env variables. Using Auth Core without Blocks may work but can require manual tweaks.
19
+
20
+ What the kit includes
21
+
22
+ - NextAuth configuration and handler: lib/auth.ts
23
+ - Prisma client helper: lib/prisma.ts
24
+ - Validation schemas: lib/validation/forms.ts
25
+ - ApiResult helpers: lib/server/result.ts
26
+ - Email helpers for dev and SMTP: lib/email/\*
27
+ - Signup API: app/api/signup/route.ts
28
+ - NextAuth API: app/api/auth/[...nextauth]/route.ts
29
+ - Login/Signup UI components: components/auth/\*
30
+ - SessionProvider and RequireAuth utilities
31
+ - Prisma snippet: prisma/auth-models.prisma
32
+
33
+ Database requirements
34
+
35
+ - The auth kit is designed and tested with **PostgreSQL** (for example using a managed service like [Neon](https://neon.tech/), Supabase, Railway, or a self‑hosted Postgres instance).
36
+ - Any Prisma‑supported provider _may_ work, but **Postgres is the recommended and tested path**.
37
+
38
+ Quick start with Postgres (recommended):
39
+
40
+ 1. Create a Postgres database (for example on Neon).
41
+ 2. Copy the connection string into your `.env` as:
42
+
43
+ ```bash
44
+ DATABASE_URL="postgres://..."
45
+ ```
46
+
47
+ 3. Merge the Prisma models from `prisma/auth-models.prisma` into your project's `prisma/schema.prisma`.
48
+ 4. Run:
49
+
50
+ ```bash
51
+ npx prisma generate
52
+ npx prisma migrate dev -n init_auth
53
+ ```
54
+
55
+ If you choose a different database provider, update the `provider` field in your Prisma schema and carefully review indexes/constraints before running migrations.
56
+
57
+ Environment variables
58
+
59
+ The kit relies on the following environment variables. Document these in post-install output or in your project's README:
60
+
61
+ Required (for core auth):
62
+
63
+ - DATABASE_URL
64
+ - NEXTAUTH_URL (e.g. http://localhost:3000)
65
+ - NEXTAUTH_SECRET
66
+
67
+ Optional / password reset & email:
68
+
69
+ - NEXTWORKS_ENABLE_PASSWORD_RESET=1 (enable password reset scaffold)
70
+ - NEXTWORKS_USE_DEV_EMAIL=1 (enable Ethereal dev email transport)
71
+ - SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, NOREPLY_EMAIL (when using real SMTP provider)
72
+ - GITHUB_ID, GITHUB_SECRET (optional) — the GitHub provider is enabled only when both are present
73
+ - NODE_ENV
74
+
75
+ Post-install steps (recommended)
76
+
77
+ 1. Install dependencies copied by the kit (the CLI will merge `package-deps.json` into your `package.json`). Ensure `nodemailer` is installed if you will enable dev email:
78
+
79
+ ```bash
80
+ npm install
81
+ ```
82
+
83
+ 2. Copy or merge `prisma/auth-models.prisma` into your Prisma schema (`prisma/schema.prisma`) and run:
84
+
85
+ ```bash
86
+ npx prisma generate
87
+ npx prisma migrate dev -n init
88
+ ```
89
+
90
+ 3. (Optional) Seed demo data for testing:
91
+
92
+ ```bash
93
+ SEED_ADMIN_EMAIL=admin@example.com SEED_ADMIN_PASSWORD=password123 node ./scripts/seed-demo.mjs
94
+ ```
95
+
96
+ 4. Start your dev server:
97
+
98
+ ```bash
99
+ npm run dev
100
+ ```
101
+
102
+ 5. Verify the basic flows:
103
+
104
+ - Signup: /auth/signup
105
+ - Login: /auth/login
106
+ - Protected dashboard: /dashboard (requires sign in)
107
+ - If enabled, forgot password POST to /api/auth/forgot-password and reset flows at /api/auth/reset-password
108
+
109
+ Notes & security
110
+
111
+ - Password reset is intentionally opt-in. Do not enable NEXTWORKS_ENABLE_PASSWORD_RESET in production unless you have configured a real mail provider and replaced the in-memory rate limiter.
112
+ - NEXTWORKS_USE_DEV_EMAIL=1 uses Ethereal (nodemailer) and prints a preview URL to server logs for development testing.
113
+ - Email verification on signup is **not yet implemented**. Stub endpoints and UI are in place at `/api/auth/send-verify-email` and `/auth/verify-email`. The Prisma `VerificationToken` model is already included so a future implementation can be added as a non-breaking enhancement.
114
+
115
+ CLI behavior (for maintainers)
116
+
117
+ - In the Nextworks repo, the CLI copies the files listed in `cli/cli_manifests/auth_manifest.json`. Keep that manifest and this kit folder in sync when editing the repo.