You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/cli.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,19 @@ bun run src/index.ts add --cwd <project-directory> [options]
19
19
20
20
The npm package exposes `create-electrobun-stack` from the built `dist/index.mjs` file. Plain npm and npx execution require Node.js `>=20.19.0`; `bunx --bun create-electrobun-stack@latest` forces Bun to run the same bin. Use `npm install -g create-electrobun-stack` if you want the global command.
The supported operational flags are `--dry-run`, `--yes`, `--cwd`, `--app-id`, `--install`, `--no-install`, `--git`, `--no-git`, `--list-templates`, `--version`, and `--help`.
30
+
31
+
The supported stack flags are the flags listed in the Stack Options and Electrobun Feature Options tables below. New flags may be added in minor releases, but V1-compatible generators should not silently change or remove these command shapes.
32
+
33
+
For V1, `minimal` is the canonical template. `standard` and `full` remain accepted aliases for compatibility and manifest identity, but they intentionally render the same file set as `minimal`.
Copy file name to clipboardExpand all lines: docs/options.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,34 @@ Some categories are intentionally narrow for V1:
13
13
-`--database sqlite` and `--orm drizzle` are the only persistence stack with generated files because they map cleanly to Bun SQLite and local desktop storage.
14
14
-`--template standard` and `--template full` are accepted compatibility aliases for the same V1 template source as `minimal`; they are not advertised as distinct stacks until their generated output differs and has release-gate coverage.
15
15
16
+
## V1 Option Depth Decisions
17
+
18
+
| Category | V1 decision |
19
+
| --- | --- |
20
+
| Template |`minimal` is canonical; `standard` and `full` are accepted aliases only. |
21
+
| Frontend | Fixed to React for V1. Additional renderers are post-V1 work. |
22
+
| Router |`tanstack-router`, `react-router`, and `none` are distinct supported choices. |
23
+
| Query |`tanstack-query` and `none` are enough for V1. |
24
+
| Styling | Tailwind CSS and plain CSS cover framework and no-framework styling. |
25
+
| UI | shadcn config and `none` are supported; generated components are left to the app. |
26
+
| Auth |`app-lock` is a local UI lock, not remote auth; deeper auth is post-V1 work. |
27
+
| Database | SQLite is the V1 persistence target because it is local and Bun-native. |
28
+
| ORM | Drizzle is the V1 ORM option; another ORM needs clear desktop value before inclusion. |
29
+
| DB setup | Seed data and `none` are the V1 setup choices. |
30
+
| Settings | JSON and database-backed settings are both supported through the same typed RPC surface. |
31
+
| Package manager | Bun, npm, pnpm, and Yarn are supported for install/run command text. |
32
+
| Testing | Bun tests and `none` are supported; desktop E2E testing is post-V1 work. |
33
+
| Addons | Turborepo and `none` are supported. |
34
+
| Examples | RPC example and `none` are supported; option-specific examples are post-V1 work. |
35
+
| API | Electrobun RPC and static/no-RPC modes are supported. |
36
+
| App menu | Native Edit menu and `none` are supported. |
37
+
| Build env |`dev`, `canary`, and `stable` map directly to Electrobun build flags. |
38
+
| Build targets |`current` and `all` map directly to Electrobun build flags. |
39
+
| Navigation | Local-only navigation rules and `none` are supported. |
40
+
| Native utils | File dialogs and `none` are supported. More utilities are post-V1 work. |
41
+
| Window style | Native and hidden inset titlebar modes are supported. |
42
+
| Runtime | Fixed to Bun for V1 because Electrobun runs the native process through Bun. |
Copy file name to clipboardExpand all lines: docs/v1-plan.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@ The release is ready when:
30
30
31
31
Goal: decide what V1 promises and avoid accidental breaking changes after release.
32
32
33
+
Status: completed in the repo. Evidence lives in `docs/cli.md`, `docs/options.md`, `docs/manifest.md`, `docs/add-command.md`, `src/cli.ts`, `src/prompts.ts`, and `tests/cli.test.ts`.
34
+
33
35
- Freeze the V1 CLI command shape:
34
36
-`create-electrobun-stack <project>`
35
37
-`create-electrobun-stack add`
@@ -52,6 +54,8 @@ Exit criteria:
52
54
53
55
Goal: make the stack chooser feel complete before V1 without adding new categories or padding the CLI with weak options.
54
56
57
+
Status: scoped for V1. The option set includes multiple meaningful choices in the categories that are ready for V1, and intentionally narrow categories are documented in `docs/options.md`. Post-V1 option expansion is tracked in GitHub issue #3.
58
+
55
59
Use these rules for the V1 option depth pass:
56
60
57
61
- Add options only inside existing categories.
@@ -104,6 +108,8 @@ Exit criteria:
104
108
105
109
Goal: test real generated projects, not just renderer template output.
106
110
111
+
Status: implemented locally. `tests/cli.test.ts` keeps the fast parser, manifest, add-command, and template-render behavior covered. `scripts/validate-generated-projects.ts` scaffolds the representative matrix below; `bun run validate:render` runs the fast render check in CI, and `bun run validate` runs dependency install plus typecheck, lint, tests when present, and build for release validation.
112
+
107
113
- Add integration tests that scaffold representative projects into temp directories.
108
114
- For each representative project, run:
109
115
- dependency installation with the selected package manager when practical,
@@ -133,6 +139,8 @@ Exit criteria:
133
139
134
140
Goal: make npm release boring.
135
141
142
+
Status: implemented locally, pending an actual workflow dry run from GitHub. `bun run pack:check` verifies package contents, and `bun run pack:smoke` packs the tarball, installs it into a temp consumer project, checks `--version`, dry-runs a scaffold, and scaffolds a real app without installing generated dependencies. The publish workflow supports GitHub releases and `workflow_dispatch` dry runs.
143
+
136
144
- Confirm `npm pack --dry-run` includes only intended files.
137
145
- Add package smoke tests against the packed tarball:
138
146
- install the tarball into a temp project,
@@ -154,6 +162,8 @@ Exit criteria:
154
162
155
163
Goal: make the first-run path clear and keep generated project docs accurate.
156
164
165
+
Status: in progress, with the V1 public contract, option boundaries, manifest compatibility, generated-project lifecycle, troubleshooting notes, release checks, and changelog now represented in docs. The final pass should be repeated after RC feedback and before `1.0.0`.
166
+
157
167
- Verify root README commands against the packed package.
158
168
- Keep `docs/cli.md` aligned with `parseArgs`.
159
169
- Keep `docs/options.md` aligned with `src/options.ts`.
0 commit comments