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: .claude/CLAUDE.md
+40-13Lines changed: 40 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,45 @@
1
1
# FlowFuse Website — Codebase Guide
2
2
3
-
## Stack
3
+
## Architecture (Nuxt-first, 11ty being phased out)
4
4
5
-
-**SSG**: Eleventy (11ty) v3, source in `src/`, output to `_site/`
6
-
-**CSS**: Tailwind v3 via PostCSS → `_site/css/style.css`
7
-
-**Templates**: Nunjucks (`.njk`) + Markdown
5
+
The site is migrating from Eleventy (11ty) to Nuxt 3. Nuxt is the primary framework going forward; 11ty is being phased out section by section using a strangler-fig pattern.
6
+
7
+
-**Primary framework**: Nuxt 3 (`nuxt/`) with `@nuxt/content` v3 for content-driven pages
8
+
-**Legacy SSG**: Eleventy (11ty) v3, source in `src/`, output to `_site/` — being phased out
9
+
-**Strategy**: Nuxt is the front door. In dev, Nuxt proxies un-migrated routes to 11ty (port 8080). In production, `nuxt generate` produces the final output.
10
+
-**CSS**: Tailwind v3 via PostCSS → `_site/css/style.css` (shared between both)
11ty outputs to `nuxt/public/` so Nuxt can serve 11ty-generated assets. `nuxt/public/` is gitignored (fully build-generated).
11
29
12
30
## Dev commands
13
31
14
32
```bash
15
33
npm start # all watchers in parallel (11ty + nuxt + postcss + docs + blueprints)
16
34
npm run dev # eleventy + postcss + nuxt only
17
-
npm run dev:eleventy # 11ty only, port 8080
18
-
npm run dev:nuxt # Nuxt only, port 3000/3001
35
+
npm run dev:eleventy # 11ty only, port 8080 (legacy; most work doesn't need this)
36
+
npm run dev:nuxt # Nuxt only, port 3000 — use this for handbook and migrated pages
19
37
npm run docs # sync docs from external source once
20
38
npm run build # production build
21
39
```
22
40
41
+
> When working on the handbook or other migrated sections, `npm run dev:nuxt` is sufficient. `npm start` is only needed when also touching 11ty-served pages.
42
+
23
43
## Directory layout
24
44
25
45
```
@@ -104,19 +124,26 @@ Each year has a `src/changelog/YYYY/YYYY.json` that tags the collection.
104
124
105
125
### Handbook pages
106
126
107
-
**Source:**`src/handbook/{department}/{slug}.md`
127
+
**Source:**`nuxt/content/handbook/{department}/{slug}.md` ← edit here
108
128
**URL:**`/handbook/{department}/{slug}/`
109
-
**Layout:**`layouts/documentation.njk` (shared with docs)
title: "Page title (shown in browser tab and sidebar nav)"
134
+
navigation: # optional — only needed on top-level section index.md files
135
+
group: "Company"# groups this section under a heading in the left nav
115
136
---
116
137
```
117
138
139
+
**Fields:**
140
+
-`title` — required; used as the page title and sidebar nav label
141
+
-`navigation.group` — only set on top-level section `index.md` files to group sections in the left nav (e.g. "Company", "Engineering & Design Practices", "Internal Operations", "Sales department")
142
+
143
+
**Nav grouping:**`nuxt/composables/useHandbookNav.ts` reads all pages via `queryCollection('handbook').all()` and builds the sidebar tree. The `navigation.group` on each section's `index.md` controls which sidebar group the section appears under.
144
+
118
145
Department folders: `company/`, `design/`, `engineering/`, `marketing/`, `operations/`, `peopleops/`, `sales/`
119
-
Collection config: `src/handbook/handbook.json`
146
+
Collection config: `nuxt/content.config.ts` (defines the `handbook` collection)
0 commit comments