@nextsparkjs/ai-workflow 0.1.0-beta.100

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.
Files changed (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/claude/_docs/workflows-optimizations.md +359 -0
  4. package/claude/agents/api-tester.md +634 -0
  5. package/claude/agents/architecture-supervisor.md +1351 -0
  6. package/claude/agents/backend-developer.md +997 -0
  7. package/claude/agents/backend-validator.md +417 -0
  8. package/claude/agents/bdd-docs-writer.md +737 -0
  9. package/claude/agents/block-developer.md +677 -0
  10. package/claude/agents/code-reviewer.md +1432 -0
  11. package/claude/agents/db-developer.md +721 -0
  12. package/claude/agents/db-validator.md +407 -0
  13. package/claude/agents/demo-video-generator.md +493 -0
  14. package/claude/agents/documentation-writer.md +1268 -0
  15. package/claude/agents/frontend-developer.md +1234 -0
  16. package/claude/agents/frontend-validator.md +777 -0
  17. package/claude/agents/functional-validator.md +630 -0
  18. package/claude/agents/mock-analyst.md +387 -0
  19. package/claude/agents/product-manager.md +963 -0
  20. package/claude/agents/qa-automation.md +1762 -0
  21. package/claude/agents/release-manager.md +634 -0
  22. package/claude/agents/selectors-translator.md +262 -0
  23. package/claude/agents/unit-test-writer.md +785 -0
  24. package/claude/agents/visual-comparator.md +329 -0
  25. package/claude/agents/workflow-maintainer.md +352 -0
  26. package/claude/commands/do/README.md +88 -0
  27. package/claude/commands/do/create-api.md +64 -0
  28. package/claude/commands/do/create-entity.md +66 -0
  29. package/claude/commands/do/create-migration.md +64 -0
  30. package/claude/commands/do/create-plugin.md +56 -0
  31. package/claude/commands/do/create-theme.md +70 -0
  32. package/claude/commands/do/mock-data.md +67 -0
  33. package/claude/commands/do/reset-db.md +71 -0
  34. package/claude/commands/do/setup-scheduled-action.md +75 -0
  35. package/claude/commands/do/sync-code-review.md +117 -0
  36. package/claude/commands/do/update-selectors.md +112 -0
  37. package/claude/commands/do/use-skills.md +90 -0
  38. package/claude/commands/do/validate-blocks.md +69 -0
  39. package/claude/commands/how-to/README.md +261 -0
  40. package/claude/commands/how-to/add-metadata.md +692 -0
  41. package/claude/commands/how-to/add-taxonomies.md +806 -0
  42. package/claude/commands/how-to/add-translations.md +571 -0
  43. package/claude/commands/how-to/create-api.md +577 -0
  44. package/claude/commands/how-to/create-block.md +575 -0
  45. package/claude/commands/how-to/create-child-entities.md +771 -0
  46. package/claude/commands/how-to/create-entity.md +597 -0
  47. package/claude/commands/how-to/create-migrations.md +605 -0
  48. package/claude/commands/how-to/create-plugin.md +654 -0
  49. package/claude/commands/how-to/customize-app.md +481 -0
  50. package/claude/commands/how-to/customize-dashboard.md +553 -0
  51. package/claude/commands/how-to/customize-theme.md +438 -0
  52. package/claude/commands/how-to/define-features-flows.md +632 -0
  53. package/claude/commands/how-to/deploy.md +507 -0
  54. package/claude/commands/how-to/handle-file-uploads.md +746 -0
  55. package/claude/commands/how-to/implement-search.md +1001 -0
  56. package/claude/commands/how-to/install-plugins.md +352 -0
  57. package/claude/commands/how-to/manage-test-coverage.md +984 -0
  58. package/claude/commands/how-to/run-tests.md +400 -0
  59. package/claude/commands/how-to/set-app-languages.md +601 -0
  60. package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
  61. package/claude/commands/how-to/set-scheduled-actions.md +527 -0
  62. package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
  63. package/claude/commands/how-to/setup-authentication.md +388 -0
  64. package/claude/commands/how-to/setup-claude-code.md +440 -0
  65. package/claude/commands/how-to/setup-database.md +274 -0
  66. package/claude/commands/how-to/setup-email-providers.md +598 -0
  67. package/claude/commands/how-to/setup-mobile-dev.md +627 -0
  68. package/claude/commands/how-to/start.md +500 -0
  69. package/claude/commands/how-to/use-devtools.md +639 -0
  70. package/claude/commands/how-to/use-superadmin.md +622 -0
  71. package/claude/commands/session/README.md +193 -0
  72. package/claude/commands/session/block-create.md +190 -0
  73. package/claude/commands/session/block-list.md +203 -0
  74. package/claude/commands/session/block-update.md +192 -0
  75. package/claude/commands/session/block-validate.md +218 -0
  76. package/claude/commands/session/changelog.md +115 -0
  77. package/claude/commands/session/close.md +225 -0
  78. package/claude/commands/session/commit.md +174 -0
  79. package/claude/commands/session/db-entity.md +206 -0
  80. package/claude/commands/session/db-fix.md +212 -0
  81. package/claude/commands/session/db-sample.md +206 -0
  82. package/claude/commands/session/demo.md +178 -0
  83. package/claude/commands/session/doc-bdd.md +207 -0
  84. package/claude/commands/session/doc-feature.md +218 -0
  85. package/claude/commands/session/doc-read.md +225 -0
  86. package/claude/commands/session/execute.md +204 -0
  87. package/claude/commands/session/explain.md +202 -0
  88. package/claude/commands/session/fix-bug.md +210 -0
  89. package/claude/commands/session/fix-build.md +182 -0
  90. package/claude/commands/session/fix-test.md +189 -0
  91. package/claude/commands/session/pending.md +232 -0
  92. package/claude/commands/session/refine.md +188 -0
  93. package/claude/commands/session/resume.md +192 -0
  94. package/claude/commands/session/review.md +192 -0
  95. package/claude/commands/session/scope-change.md +181 -0
  96. package/claude/commands/session/start-blocks.md +347 -0
  97. package/claude/commands/session/start.md +604 -0
  98. package/claude/commands/session/status.md +169 -0
  99. package/claude/commands/session/test-fix.md +221 -0
  100. package/claude/commands/session/test-run.md +203 -0
  101. package/claude/commands/session/test-write.md +242 -0
  102. package/claude/commands/session/validate.md +162 -0
  103. package/claude/config/context.json +40 -0
  104. package/claude/config/github.json +69 -0
  105. package/claude/config/github.schema.json +106 -0
  106. package/claude/config/team.json +46 -0
  107. package/claude/config/team.schema.json +106 -0
  108. package/claude/config/workspace.json +43 -0
  109. package/claude/config/workspace.schema.json +75 -0
  110. package/claude/skills/README.md +228 -0
  111. package/claude/skills/accessibility/SKILL.md +573 -0
  112. package/claude/skills/api-bypass-layers/SKILL.md +550 -0
  113. package/claude/skills/asana-integration/SKILL.md +499 -0
  114. package/claude/skills/better-auth/SKILL.md +666 -0
  115. package/claude/skills/billing-subscriptions/SKILL.md +660 -0
  116. package/claude/skills/block-decision-matrix/SKILL.md +359 -0
  117. package/claude/skills/clickup-integration/SKILL.md +434 -0
  118. package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
  119. package/claude/skills/create-plugin/SKILL.md +425 -0
  120. package/claude/skills/create-theme/SKILL.md +331 -0
  121. package/claude/skills/cypress-api/SKILL.md +511 -0
  122. package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
  123. package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
  124. package/claude/skills/cypress-e2e/SKILL.md +526 -0
  125. package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
  126. package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
  127. package/claude/skills/cypress-selectors/SKILL.md +309 -0
  128. package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
  129. package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
  130. package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
  131. package/claude/skills/database-migrations/SKILL.md +335 -0
  132. package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
  133. package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
  134. package/claude/skills/design-system/SKILL.md +682 -0
  135. package/claude/skills/documentation/SKILL.md +540 -0
  136. package/claude/skills/entity-api/SKILL.md +482 -0
  137. package/claude/skills/entity-system/SKILL.md +635 -0
  138. package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
  139. package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
  140. package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
  141. package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
  142. package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
  143. package/claude/skills/github/SKILL.md +467 -0
  144. package/claude/skills/i18n-nextintl/SKILL.md +302 -0
  145. package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
  146. package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
  147. package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
  148. package/claude/skills/impact-analysis/SKILL.md +203 -0
  149. package/claude/skills/jest-unit/SKILL.md +306 -0
  150. package/claude/skills/jest-unit/references/component-testing.md +371 -0
  151. package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
  152. package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
  153. package/claude/skills/jira-integration/SKILL.md +539 -0
  154. package/claude/skills/media-library/SKILL.md +743 -0
  155. package/claude/skills/mock-analysis/SKILL.md +276 -0
  156. package/claude/skills/monorepo-architecture/SKILL.md +162 -0
  157. package/claude/skills/nextjs-api-development/SKILL.md +364 -0
  158. package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
  159. package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
  160. package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
  161. package/claude/skills/notion-integration/SKILL.md +641 -0
  162. package/claude/skills/npm-development-workflow/SKILL.md +480 -0
  163. package/claude/skills/page-builder-blocks/SKILL.md +530 -0
  164. package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
  165. package/claude/skills/permissions-system/SKILL.md +619 -0
  166. package/claude/skills/plugins/SKILL.md +340 -0
  167. package/claude/skills/plugins/references/plugin-templates.md +414 -0
  168. package/claude/skills/plugins/references/plugin-testing.md +353 -0
  169. package/claude/skills/plugins/references/plugin-types.md +198 -0
  170. package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
  171. package/claude/skills/pom-patterns/SKILL.md +452 -0
  172. package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
  173. package/claude/skills/rate-limiting/SKILL.md +342 -0
  174. package/claude/skills/react-best-practices/AGENTS.md +2410 -0
  175. package/claude/skills/react-best-practices/README.md +123 -0
  176. package/claude/skills/react-best-practices/SKILL.md +125 -0
  177. package/claude/skills/react-best-practices/metadata.json +15 -0
  178. package/claude/skills/react-best-practices/rules/_sections.md +46 -0
  179. package/claude/skills/react-best-practices/rules/_template.md +28 -0
  180. package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  181. package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  182. package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
  183. package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
  184. package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
  185. package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
  186. package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  187. package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  188. package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  189. package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  190. package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  191. package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
  192. package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  193. package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  194. package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  195. package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  196. package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  197. package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  198. package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  199. package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  200. package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  201. package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
  202. package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  203. package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
  204. package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  205. package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  206. package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  207. package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  208. package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
  209. package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  210. package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  211. package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  212. package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  213. package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  214. package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  215. package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  216. package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  217. package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  218. package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  219. package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  220. package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
  221. package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  222. package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  223. package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  224. package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
  225. package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  226. package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
  227. package/claude/skills/react-patterns/SKILL.md +688 -0
  228. package/claude/skills/registry-system/SKILL.md +331 -0
  229. package/claude/skills/scheduled-actions/SKILL.md +671 -0
  230. package/claude/skills/scope-enforcement/SKILL.md +542 -0
  231. package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
  232. package/claude/skills/server-actions/SKILL.md +493 -0
  233. package/claude/skills/service-layer/SKILL.md +587 -0
  234. package/claude/skills/session-management/SKILL.md +266 -0
  235. package/claude/skills/session-management/scripts/create-session.py +166 -0
  236. package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
  237. package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
  238. package/claude/skills/session-management/scripts/session-archive.sh +87 -0
  239. package/claude/skills/session-management/scripts/session-close.sh +133 -0
  240. package/claude/skills/session-management/scripts/session-init.sh +225 -0
  241. package/claude/skills/session-management/scripts/session-list.sh +163 -0
  242. package/claude/skills/session-management/scripts/split-plan.sh +116 -0
  243. package/claude/skills/shadcn-components/SKILL.md +586 -0
  244. package/claude/skills/shadcn-theming/SKILL.md +446 -0
  245. package/claude/skills/suspense-loading/SKILL.md +280 -0
  246. package/claude/skills/tailwind-theming/SKILL.md +507 -0
  247. package/claude/skills/tanstack-query/SKILL.md +608 -0
  248. package/claude/skills/test-coverage/SKILL.md +239 -0
  249. package/claude/skills/web-design-guidelines/SKILL.md +39 -0
  250. package/claude/skills/zod-validation/SKILL.md +537 -0
  251. package/claude/templates/blocks/progress.md +86 -0
  252. package/claude/templates/iteration/changes.md +61 -0
  253. package/claude/templates/iteration/progress.md +55 -0
  254. package/claude/templates/log.md +31 -0
  255. package/claude/templates/story/context.md +77 -0
  256. package/claude/templates/story/pendings.md +37 -0
  257. package/claude/templates/story/plan.md +299 -0
  258. package/claude/templates/story/requirements.md +109 -0
  259. package/claude/templates/story/scope.json +10 -0
  260. package/claude/templates/story/tests.md +91 -0
  261. package/claude/templates/task/progress.md +58 -0
  262. package/claude/templates/task/requirements.md +54 -0
  263. package/claude/workflows/README.md +154 -0
  264. package/claude/workflows/blocks.md +614 -0
  265. package/claude/workflows/story.md +1207 -0
  266. package/claude/workflows/task.md +927 -0
  267. package/claude/workflows/tweak.md +527 -0
  268. package/cursor/.gitkeep +0 -0
  269. package/package.json +35 -0
  270. package/scripts/postinstall.mjs +198 -0
  271. package/scripts/setup.mjs +282 -0
  272. package/scripts/sync.mjs +209 -0
@@ -0,0 +1,481 @@
1
+ # /how-to:customize-app
2
+
3
+ Interactive guide to configure application-level settings in NextSpark.
4
+
5
+ ---
6
+
7
+ ## Syntax
8
+
9
+ ```
10
+ /how-to:customize-app
11
+ ```
12
+
13
+ ---
14
+
15
+ ## Behavior
16
+
17
+ Guides the user through configuring app-level settings like authentication, email, storage, and environment.
18
+
19
+ ---
20
+
21
+ ## Tutorial Structure
22
+
23
+ ```
24
+ STEPS OVERVIEW (4 steps)
25
+
26
+ Step 1: Understanding App Configuration
27
+ └── Configuration layers
28
+
29
+ Step 2: Configure app.config.ts
30
+ └── Core application settings
31
+
32
+ Step 3: Configure Environment
33
+ └── Environment variables
34
+
35
+ Step 4: Advanced Settings
36
+ └── Team mode, onboarding, etc.
37
+ ```
38
+
39
+ ---
40
+
41
+ ## Step 1: Understanding App Configuration
42
+
43
+ ```
44
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
45
+ 📚 HOW TO: CUSTOMIZE APP
46
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
47
+
48
+ STEP 1 OF 4: Understanding App Configuration
49
+
50
+ NextSpark uses layered configuration:
51
+
52
+ ┌─────────────────────────────────────────────┐
53
+ │ CONFIGURATION LAYERS │
54
+ │ ───────────────────────────────────────── │
55
+ │ │
56
+ │ 1. CORE DEFAULTS │
57
+ │ core/config/*.ts │
58
+ │ → Base settings, always available │
59
+ │ │
60
+ │ 2. THEME OVERRIDES │
61
+ │ themes/{theme}/config/*.ts │
62
+ │ → Theme-specific customizations │
63
+ │ │
64
+ │ 3. ENVIRONMENT │
65
+ │ .env / .env.local │
66
+ │ → Secrets and environment-specific │
67
+ │ │
68
+ └─────────────────────────────────────────────┘
69
+
70
+ Theme config overrides core. Env overrides both.
71
+ ```
72
+
73
+ **📂 Configuration Files:**
74
+
75
+ ```
76
+ contents/themes/your-theme/config/
77
+ ├── app.config.ts # Core app settings
78
+ ├── auth.config.ts # Authentication settings
79
+ ├── dashboard.config.ts # Dashboard layout
80
+ ├── navigation.config.ts # Navigation menus
81
+ ├── billing.config.ts # Plans and billing
82
+ ├── permissions.config.ts # RBAC permissions
83
+ └── theme.config.ts # Theme appearance
84
+ ```
85
+
86
+ ```
87
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
88
+
89
+ What would you like to do?
90
+
91
+ [1] Continue to Step 2 (App Config)
92
+ [2] Show me the full config structure
93
+ [3] How do I access config in code?
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Step 2: Configure app.config.ts
99
+
100
+ ```
101
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
102
+ STEP 2 OF 4: Configure app.config.ts
103
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
104
+
105
+ Core application settings:
106
+ ```
107
+
108
+ **📋 app.config.ts Example:**
109
+
110
+ ```typescript
111
+ // contents/themes/your-theme/config/app.config.ts
112
+ import type { AppConfig } from '@/core/types/app'
113
+
114
+ export const appConfig: AppConfig = {
115
+ // App Identity
116
+ name: 'My SaaS App',
117
+ description: 'The best SaaS for managing your business',
118
+ version: '1.0.0',
119
+
120
+ // URLs
121
+ url: process.env.NEXT_PUBLIC_APP_URL || 'http://localhost:3000',
122
+ apiUrl: process.env.NEXT_PUBLIC_API_URL,
123
+
124
+ // Internationalization
125
+ defaultLocale: 'en',
126
+ locales: ['en', 'es', 'pt'],
127
+ localeLabels: {
128
+ en: 'English',
129
+ es: 'Español',
130
+ pt: 'Português',
131
+ },
132
+
133
+ // Team Mode (multi-tenant)
134
+ teamMode: {
135
+ enabled: true,
136
+ createOnSignup: true, // Auto-create team on signup
137
+ allowMultipleTeams: true, // User can join multiple teams
138
+ requireTeamForAccess: true, // Must have team to use dashboard
139
+ defaultTeamName: '{userName}\'s Team',
140
+ },
141
+
142
+ // User Settings
143
+ user: {
144
+ allowNameChange: true,
145
+ allowEmailChange: false, // Usually false for security
146
+ allowAvatarUpload: true,
147
+ requireEmailVerification: true,
148
+ deleteAccountEnabled: true,
149
+ },
150
+
151
+ // Registration Settings
152
+ registration: {
153
+ enabled: true,
154
+ requireInvite: false, // Only invited users can register
155
+ allowedDomains: [], // ['mycompany.com'] to restrict
156
+ defaultRole: 'member',
157
+ },
158
+
159
+ // Session Settings
160
+ session: {
161
+ maxAge: 7 * 24 * 60 * 60, // 7 days in seconds
162
+ updateAge: 24 * 60 * 60, // Refresh every 24 hours
163
+ },
164
+
165
+ // Feature Flags
166
+ features: {
167
+ pageBuilder: true,
168
+ apiKeys: true,
169
+ webhooks: true,
170
+ activityLog: true,
171
+ dataExport: true,
172
+ },
173
+
174
+ // Onboarding
175
+ onboarding: {
176
+ enabled: true,
177
+ steps: [
178
+ 'profile',
179
+ 'team',
180
+ 'invite-members',
181
+ 'preferences',
182
+ ],
183
+ skipEnabled: true, // Allow skipping onboarding
184
+ },
185
+
186
+ // Support
187
+ support: {
188
+ email: 'support@myapp.com',
189
+ docsUrl: 'https://docs.myapp.com',
190
+ chatEnabled: true,
191
+ },
192
+
193
+ // Legal
194
+ legal: {
195
+ termsUrl: '/terms',
196
+ privacyUrl: '/privacy',
197
+ cookiePolicyUrl: '/cookies',
198
+ },
199
+ }
200
+
201
+ export default appConfig
202
+ ```
203
+
204
+ **📋 Access Config in Code:**
205
+
206
+ ```typescript
207
+ // Server-side
208
+ import { getAppConfig } from '@/core/lib/config'
209
+
210
+ const config = getAppConfig()
211
+ if (config.teamMode.enabled) {
212
+ // Team mode logic
213
+ }
214
+
215
+ // Client-side
216
+ import { useAppConfig } from '@/core/lib/hooks/useAppConfig'
217
+
218
+ function MyComponent() {
219
+ const config = useAppConfig()
220
+ return <div>{config.name}</div>
221
+ }
222
+ ```
223
+
224
+ ```
225
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
226
+
227
+ What would you like to do?
228
+
229
+ [1] Continue to Step 3 (Environment)
230
+ [2] Show me auth.config.ts options
231
+ [3] What is Team Mode?
232
+ ```
233
+
234
+ ---
235
+
236
+ ## Step 3: Configure Environment
237
+
238
+ ```
239
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
240
+ STEP 3 OF 4: Configure Environment
241
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
242
+
243
+ Essential environment variables:
244
+ ```
245
+
246
+ **📋 Environment Variables (.env.local):**
247
+
248
+ ```env
249
+ # .env.local (development)
250
+ # .env.production (production)
251
+
252
+ # ============================================
253
+ # DATABASE
254
+ # ============================================
255
+ DATABASE_URL="postgresql://user:pass@localhost:5432/myapp"
256
+
257
+ # ============================================
258
+ # AUTHENTICATION (Better Auth)
259
+ # ============================================
260
+ BETTER_AUTH_SECRET="your-secret-at-least-32-characters"
261
+ BETTER_AUTH_URL="http://localhost:3000"
262
+
263
+ # OAuth Providers (optional)
264
+ GOOGLE_CLIENT_ID=""
265
+ GOOGLE_CLIENT_SECRET=""
266
+ GITHUB_CLIENT_ID=""
267
+ GITHUB_CLIENT_SECRET=""
268
+
269
+ # ============================================
270
+ # APPLICATION
271
+ # ============================================
272
+ NEXT_PUBLIC_APP_URL="http://localhost:3000"
273
+ NEXT_PUBLIC_APP_NAME="My SaaS App"
274
+
275
+ # Active theme
276
+ NEXT_PUBLIC_ACTIVE_THEME="default"
277
+
278
+ # ============================================
279
+ # EMAIL (Resend)
280
+ # ============================================
281
+ RESEND_API_KEY=""
282
+ EMAIL_FROM="noreply@myapp.com"
283
+
284
+ # ============================================
285
+ # FILE STORAGE (S3/R2)
286
+ # ============================================
287
+ S3_BUCKET=""
288
+ S3_REGION=""
289
+ S3_ACCESS_KEY_ID=""
290
+ S3_SECRET_ACCESS_KEY=""
291
+ S3_ENDPOINT="" # For Cloudflare R2
292
+
293
+ # ============================================
294
+ # PAYMENTS (Stripe)
295
+ # ============================================
296
+ STRIPE_SECRET_KEY=""
297
+ STRIPE_PUBLISHABLE_KEY=""
298
+ STRIPE_WEBHOOK_SECRET=""
299
+
300
+ # ============================================
301
+ # BACKGROUND JOBS
302
+ # ============================================
303
+ CRON_SECRET="your-cron-secret"
304
+
305
+ # ============================================
306
+ # DEVELOPMENT
307
+ # ============================================
308
+ # Dev mode for superadmin bypass
309
+ DEV_USER_ID=""
310
+ DEV_TEAM_ID=""
311
+ ```
312
+
313
+ **📋 Environment Files:**
314
+
315
+ | File | Purpose | Git |
316
+ |------|---------|-----|
317
+ | `.env.example` | Template with all vars | ✓ Committed |
318
+ | `.env` | Default values | ✗ Ignored |
319
+ | `.env.local` | Local development | ✗ Ignored |
320
+ | `.env.production` | Production values | ✗ Ignored |
321
+
322
+ **📋 Validate Environment:**
323
+
324
+ ```bash
325
+ # Check for missing required variables
326
+ pnpm run env:check
327
+
328
+ # Generate new secrets
329
+ openssl rand -base64 32 # For BETTER_AUTH_SECRET
330
+ openssl rand -hex 16 # For CRON_SECRET
331
+ ```
332
+
333
+ ```
334
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
335
+
336
+ What would you like to do?
337
+
338
+ [1] Continue to Step 4 (Advanced)
339
+ [2] How do I set up OAuth providers?
340
+ [3] Show me production deployment env
341
+ ```
342
+
343
+ ---
344
+
345
+ ## Step 4: Advanced Settings
346
+
347
+ ```
348
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
349
+ STEP 4 OF 4: Advanced Settings
350
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
351
+ ```
352
+
353
+ **📋 Team Mode Configuration:**
354
+
355
+ ```typescript
356
+ // For single-user apps (no teams)
357
+ teamMode: {
358
+ enabled: false,
359
+ }
360
+
361
+ // For personal workspaces (one team per user)
362
+ teamMode: {
363
+ enabled: true,
364
+ createOnSignup: true,
365
+ allowMultipleTeams: false,
366
+ requireTeamForAccess: true,
367
+ }
368
+
369
+ // For collaborative SaaS (multiple teams)
370
+ teamMode: {
371
+ enabled: true,
372
+ createOnSignup: true,
373
+ allowMultipleTeams: true,
374
+ requireTeamForAccess: true,
375
+ }
376
+ ```
377
+
378
+ **📋 Custom Onboarding Flow:**
379
+
380
+ ```typescript
381
+ // contents/themes/your-theme/config/onboarding.config.ts
382
+ export const onboardingConfig = {
383
+ enabled: true,
384
+
385
+ steps: [
386
+ {
387
+ id: 'profile',
388
+ title: 'Complete Your Profile',
389
+ description: 'Tell us a bit about yourself',
390
+ component: 'ProfileStep',
391
+ required: true,
392
+ },
393
+ {
394
+ id: 'team',
395
+ title: 'Create Your Team',
396
+ description: 'Set up your workspace',
397
+ component: 'TeamStep',
398
+ required: true,
399
+ },
400
+ {
401
+ id: 'invite',
402
+ title: 'Invite Team Members',
403
+ description: 'Collaborate with your team',
404
+ component: 'InviteStep',
405
+ required: false,
406
+ skippable: true,
407
+ },
408
+ {
409
+ id: 'preferences',
410
+ title: 'Set Preferences',
411
+ description: 'Customize your experience',
412
+ component: 'PreferencesStep',
413
+ required: false,
414
+ },
415
+ ],
416
+
417
+ // Redirect after completion
418
+ completedRedirect: '/dashboard',
419
+
420
+ // Allow skipping entire onboarding
421
+ skipEnabled: true,
422
+ }
423
+ ```
424
+
425
+ **📋 Maintenance Mode:**
426
+
427
+ ```typescript
428
+ // app.config.ts
429
+ export const appConfig: AppConfig = {
430
+ maintenance: {
431
+ enabled: false,
432
+ message: 'We are performing scheduled maintenance.',
433
+ allowedIPs: ['127.0.0.1'], // IPs that can access
434
+ estimatedEnd: '2024-01-15T10:00:00Z',
435
+ },
436
+ }
437
+ ```
438
+
439
+ **📋 Rate Limiting:**
440
+
441
+ ```typescript
442
+ // app.config.ts
443
+ export const appConfig: AppConfig = {
444
+ rateLimiting: {
445
+ enabled: true,
446
+ window: 60, // Seconds
447
+ maxRequests: 100, // Per window
448
+ byIP: true,
449
+ byUser: true,
450
+ excludePaths: ['/api/health', '/api/webhooks'],
451
+ },
452
+ }
453
+ ```
454
+
455
+ ```
456
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
457
+
458
+ ✅ TUTORIAL STORY!
459
+
460
+ You've configured:
461
+ • Core application settings
462
+ • Environment variables
463
+ • Team mode options
464
+ • Advanced features
465
+
466
+ 📚 Related tutorials:
467
+ • /how-to:setup-authentication - Auth configuration
468
+ • /how-to:customize-dashboard - Dashboard settings
469
+ • /how-to:customize-theme - Visual customization
470
+
471
+ 🔙 Back to menu: /how-to:start
472
+ ```
473
+
474
+ ---
475
+
476
+ ## Related Commands
477
+
478
+ | Command | Action |
479
+ |---------|--------|
480
+ | `/how-to:setup-authentication` | Auth setup |
481
+ | `/how-to:customize-theme` | Theme customization |