Skip to content

Commit baae22a

Browse files
committed
Define product names and conventions.
1 parent 5ed492c commit baae22a

193 files changed

Lines changed: 2783 additions & 2556 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.vscode/settings.json‎

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,9 @@
55
"url": "./packages/ts-ssg/schema/siteConfig.schema.json"
66
}
77
],
8-
"editor.defaultFormatter": "biomejs.biome",
9-
"editor.codeActionsOnSave": {
10-
"source.organizeImports.biome": "explicit"
11-
},
12-
"[typescript]": {
13-
"editor.defaultFormatter": "biomejs.biome"
14-
},
15-
"[javascript]": {
16-
"editor.defaultFormatter": "biomejs.biome"
17-
},
18-
"[json]": {
19-
"editor.defaultFormatter": "biomejs.biome"
20-
},
21-
"dotnet.server.useOmnisharp": false,
22-
"[csharp]": {
23-
"editor.defaultFormatter": "ms-dotnettools.csharp",
24-
"editor.codeActionsOnSave": {
25-
"source.organizeImports": "explicit"
26-
}
27-
},
288
"files.eol": "\n",
299
"files.insertFinalNewline": true,
3010
"files.trimTrailingWhitespace": true,
31-
"editor.formatOnSave": true,
3211
"editor.tabSize": 2,
3312
"editor.useTabStops": false,
3413
"editor.detectIndentation": false,

‎AGENTS.md‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,36 @@ Do not edit generated files under `packages/ts-page-scripts/src/embed` manually.
8585
When page script source changes require regenerated embeds, update only the source and generator configuration, then tell the user to run the embed script manually.
8686

8787
Use the stable TypeScript 7 `tsc` command to build and type-check TypeScript files.
88+
89+
Product naming rule
90+
91+
Use the following names consistently in documentation, UI copy, CLI output, and code:
92+
93+
| Name | Meaning | Command or package scope |
94+
| ------------------ | --------------------------- | ------------------------------ |
95+
| PureStack | The ecosystem | — |
96+
| PureStack CLI | The command-line tool | `purestack` |
97+
| PureStack Forge | PureStack's website builder | Launched with `purestack init` |
98+
| PureStack Packages | The framework packages | `@purestack/*` |
99+
100+
Introduce **PureStack Forge** by its full name; use **Forge** afterward when the
101+
context is clear. Describe it as a **website builder**. Its approved purpose
102+
statement is:
103+
104+
> Build, customize, and maintain your PureStack website.
105+
106+
`purestack init` launches Forge's interactive project creation flow. Project
107+
creation is one Forge workflow; the product's scope includes ongoing customization
108+
and maintenance. Describe available features accurately and identify planned
109+
capabilities as future work.
110+
111+
Use “wizard” only to describe a guided flow. Do not use Studio, Wizard, or
112+
“visual workspace” as Forge's product name or description. Propose terminology
113+
changes to the user before adopting a different name or description.
114+
115+
Preserve `purestack.studio`, `PureStackStudio`, and other existing addresses and
116+
account names. Their spelling does not define the product name.
117+
118+
Keep branding at feature boundaries. Name internal modules, types, and components
119+
by their responsibility, using folders for context rather than repeating product
120+
names or generic prefixes such as `Website` throughout the code.

‎README.md‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,24 @@ The aim is a source model that remains understandable as the product grows.
4848
files work for prose pages. See the [Regor guide](https://purestack.studio/guides/extending/regor/)
4949
for the markup and browser app model.
5050

51-
## Get your first page running
51+
## Get your first site running
5252

53-
Open PureStack Studio, the local site wizard:
53+
**PureStack Forge** is PureStack's website builder. Build, customize, and maintain
54+
your PureStack website.
5455

5556
```sh
5657
npx purestack@latest init
5758
```
5859

59-
Studio prints a link to open in your browser. Name your site, choose a template
60-
and its options, decide whether to install dependencies and set up Git, then
61-
create it. Studio shows each step, starts the live site, and stays open while
62-
you explore. Source edits appear on the live site automatically.
60+
PureStack CLI opens PureStack Forge to set up your website. Follow the link in your
61+
terminal, choose a template, configure plugins, and shape your project in the browser.
62+
Create your site and explore it live. Saved source changes appear in the preview
63+
as you work.
6364

64-
Each project includes `README.md` and `AGENTS.md` to guide customization, plus
65-
dev, build, and publish scripts. Run `npx purestack@latest init --help` for
66-
options that preset Studio's choices, or that create a site without Studio in
67-
scripts and CI.
65+
Your project includes development and publishing commands, with `README.md` and
66+
`AGENTS.md` to guide you and your AI assistant through the source. The
67+
[CLI guide](https://purestack.studio/guides/getting-started/purestack-cli/) walks
68+
you through your first site and covers options for automated setup.
6869

6970
To assemble a site manually instead, follow the steps below.
7071

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,49 @@
1-
# Site Studio wizard
1+
# PureStack Forge
22

3-
Run `yarn purestack init` from `sites/` to serve the wizard locally. The CLI calls
4-
PureStack's existing `startDevServer` with `packages/purestack/wizard` as its
3+
Build, customize, and maintain your PureStack website.
4+
5+
PureStack is the ecosystem. PureStack CLI (`purestack`) is its command-line tool;
6+
PureStack Forge is its website builder. `purestack init` launches Forge's
7+
interactive project creation experience. PureStack Packages (`@purestack/*`)
8+
provide the reusable framework capabilities.
9+
10+
Run `yarn purestack init` from `sites/` to serve Forge locally. The CLI calls
11+
PureStack's existing `startDevServer` with `packages/purestack/forge` as its
512
content directory. Open the complete printed URL, including its session token.
6-
Studio binds to `127.0.0.1` on an available port by default. Override the wizard
13+
Forge binds to `127.0.0.1` on an available port by default. Override Forge's
714
listener with `yarn purestack init --host 0.0.0.0 --port 4700`; `--port 0` selects
8-
an available port. These flags affect Studio; generated-site previews keep their
9-
own loopback listener and automatically assigned port. Studio and preview servers
15+
an available port. These flags affect Forge; generated-site previews keep their
16+
own loopback listener and automatically assigned port. The Forge and preview servers
1017
log warnings and errors while creation progress remains visible.
1118

12-
Studio builds the complete wizard before printing its URL, then serves the
19+
The CLI builds the Forge app before printing its URL, then serves the
1320
generated site with file watching and live reload disabled. Its WebSocket
1421
connection remains available for configuration, creation progress, and shutdown.
1522

16-
The wizard is ordinary PureStack content:
17-
- `wizard/index.mdx`: static introduction and native `RegorApp` mount.
18-
- `wizard/header.mdx` and `footer.mdx`: shared native `TopBar`, `ThemeToggle`,
23+
Forge is ordinary PureStack content:
24+
- `forge/index.mdx`: static introduction and native `RegorApp` mount.
25+
- `forge/header.mdx` and `footer.mdx`: shared native `TopBar`, `ThemeToggle`,
1926
and `SiteFooter`.
20-
- `wizard/siteConfig.json`: site settings.
21-
- `wizard/modules/purestack.config.ts`: plugin configuration selected by the CLI.
22-
- `wizard/modules/wizardPlugin.ts`: generates a branded light/dark pair through the
27+
- `forge/siteConfig.json`: site settings.
28+
- `forge/modules/purestack.config.ts`: plugin configuration selected by the CLI.
29+
- `forge/modules/plugin.ts`: generates a branded light/dark pair through the
2330
standard skin generator and registers fluent TypeScript styles.
24-
- `wizard/modules/skin.ts`: refines both returned palettes for surfaces, readable
31+
- `forge/modules/skin.ts`: refines both returned palettes for surfaces, readable
2532
text, borders, typography, radii, shadows, and accent interaction states.
26-
- `wizard/modules/styles/`: custom shell and dashboard rules using semantic palettes;
33+
- `forge/modules/styles/`: custom shell and dashboard rules using semantic palettes;
2734
ordinary layout and spacing use native components and generated utilities.
28-
- `wizard/modules/model.ts`: shared reactive configuration, validation, and navigation.
29-
- `wizard/modules/connection.ts`: native browser WebSocket transport and reconnection.
30-
- `wizard/modules/shared/protocol.ts`: typed commands, snapshots, progress, and results.
31-
- `wizard/modules/components/dashboard.ts`: dashboard layout composing the navigation
35+
- `forge/modules/model.ts`: shared reactive configuration, validation, and navigation.
36+
- `forge/modules/connection.ts`: native browser WebSocket transport and reconnection.
37+
- `forge/modules/shared/protocol.ts`: typed commands, snapshots, progress, and results.
38+
- `forge/modules/components/dashboard.ts`: dashboard layout composing the navigation
3239
and individual site, template, options, setup, and review steps.
33-
- `wizard/modules/components/`: focused, typed Regor components, including reusable
40+
- `forge/modules/components/`: focused, typed Regor components, including reusable
3441
step layouts, Back/Next actions, and template cards built from native primitives.
35-
- `wizard/modules/wizard.ts`: mounts the browser app with explicit component registration.
36-
- `src/cli/wizard/run.ts`: starts PureStack and prints the setup URL.
37-
- `src/cli/wizard/session.ts`: validates commands, owns creation and progress,
42+
- `forge/modules/app.ts`: mounts the browser app with explicit component registration.
43+
- `src/cli/forge/run.ts`: starts PureStack and prints the setup URL.
44+
- `src/cli/forge/session.ts`: validates commands, owns creation and progress,
3845
retains state across reconnects, and rejects duplicate creation requests.
39-
- `src/cli/wizard/preview.ts` and `preview-process.ts`: launch an isolated child
46+
- `src/cli/forge/preview.ts` and `preview-process.ts`: launch an isolated child
4047
process using the same CLI and PureStack server, with IPC readiness and cleanup.
4148

4249
The Regor app connects to a WebSocket endpoint on the existing PureStack HTTP
@@ -47,16 +54,16 @@ state and task progress. Reconnecting observes the same operation without
4754
resubmitting creation. No third-party WebSocket library is used.
4855

4956
After creation, **Browse live site** opens the generated project on a separate
50-
loopback port. A child process isolates its theme and build registries from the
51-
wizard; source edits are watched and reloaded by PureStack. A failed preview can
52-
be retried without regenerating the project. The wizard remains open until
53-
**Finish Studio** or Ctrl+C, which closes both servers and cleans their temporary
57+
loopback port. A child process isolates its theme and build registries from
58+
Forge; source edits are watched and reloaded by PureStack. A failed preview can
59+
be retried without regenerating the project. Forge remains open until
60+
**Finish Forge** or Ctrl+C, which closes both servers and cleans their temporary
5461
build directories. Generated project files are preserved. The terminal prints
5562
copyable commands for continuing independently.
5663

5764
The live site uses the generated project's `dev` script (`purestack serve ...`),
5865
including its content directory, host, port, and watch/reload options. For example,
59-
`--port 5000` opens the live site on port 5000. Studio keeps its own listener and
66+
`--port 5000` opens the live site on port 5000. Forge keeps its own listener and
6067
stores preview build output in a temporary directory.
6168

6269
## Retained generation services
@@ -70,11 +77,11 @@ yarn purestack init my-site --template starter --set palette=mint --install --ye
7077

7178
Template fetching, archive validation, compatibility checks, typed settings,
7279
project generation, optional installation/Git setup, and terminal progress and
73-
completion output remain independent of the wizard. See
80+
completion output remain independent of Forge. See
7481
[Project creation](template-scaffolding.md) for the package contract.
7582

7683
Template categories, nested categories, fields, choices, defaults, and configuration
7784
bindings are defined by `template.ui.json` and rendered with native PureStack
78-
controls. CLI arguments prefill the wizard, including custom template sources and
85+
controls. CLI arguments prefill Forge, including custom template sources and
7986
`--set` values. The live site is started after creation; template-specific optional
8087
previews and custom template setup code remain separate future capabilities.

‎docs/template-scaffolding.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ code. Generated files belong to the user; templates are not project dependencies
77

88
## First release
99

10-
See [Site Studio](site-studio.md) for the browser wizard's PureStack content,
10+
See [PureStack Forge](forge.md) for its PureStack content,
1111
template-defined categories, configuration bindings, and extension points.
1212
- Official alias: `starter`.
13-
- `init` serves the wizard content with PureStack; `--yes` creates directly.
13+
- `init` serves Forge content with PureStack; `--yes` creates directly.
1414
- Install dependencies with the template's package manager only when `--install` is supplied or selected. The starter pins Yarn; templates without a `packageManager` field use npm.
1515
- For Yarn projects, installation also sets up missing Corepack and enables Yarn
1616
through npm's global prefix, then prepares the project's pinned Yarn version.

‎frontend/IMPLEMENTATION.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# PureStack Studio launch site
1+
# PureStack launch site
22

33
## Component documentation pilot
44

@@ -30,7 +30,7 @@ calls. There is no shared example contract, lookup table, or mounting helper.
3030
Browser verification found existing shared-framework accessibility issues:
3131
- The default doc template emits no `lang` for a site without locale routing.
3232
- Navigation and TOC header opacity gives insufficient text contrast in the
33-
studio skin.
33+
website skin.
3434
- Generated Tabs controls have `aria-selected` on buttons without tab roles;
3535
the original tablist contains inputs and panels, and enhanced radios refer
3636
to hidden labels.
@@ -93,7 +93,7 @@ line-by-line audit of every source file or generated asset.
9393
a closing call to explore the repository.
9494

9595
The landing page uses MDX and typed PureStack compositions for its content,
96-
a registered studio skin for its identity, and typed style registrations for
96+
a registered site skin for its identity, and typed style registrations for
9797
its layout. One explicit TypeScript entry point provides progressive enhancement.
9898
It does not require changes to generated embeds or framework APIs.
9999

@@ -121,14 +121,14 @@ Keep build output and browser tooling under ignored directories.
121121

122122
## Framework-native frontend
123123

124-
- Register the studio skin before config resolution. Register custom compositions
124+
- Register the PureStack site skin before config resolution. Register custom compositions
125125
and styles in `onConfigResolved`, after the SSG initializes its DOM and builtins.
126126
- Use native `Grid`/`Flex` layouts and `BtnLink` actions in MDX. Compose typed
127-
`StudioFeature`, `StudioPackage`, `StudioCopy`, `StudioFaq`, `StudioWorkbench`,
128-
`StudioBrand`, and `StudioActivityChart` components from framework primitives.
127+
`FeatureShowcase`, `PackageLink`, `CopyButton`, `FaqItem`, `SourceWorkbench`,
128+
`Brand`, and `ActivityChartPreview` components from framework primitives.
129129
- Let component tone/variant classes own button, panel, badge, and icon-frame
130130
colors and states. Reuse the standard palette contract for page typography,
131-
semantic colors, radii, and effects. Keep site-specific styles scoped to `.studio`.
131+
semantic colors, radii, and effects. Keep site-specific styles scoped to `.landing-page`.
132132
- Replace the handwritten stylesheet with typed `styleBuilder` registrations,
133133
emitted through the existing light/dark stylesheet pipeline. Both modes use
134134
the dark identity. The document supplies an initial theme for no-JavaScript use.

0 commit comments

Comments
 (0)