Documentation site for Propeller, built with Fumadocs and Next.js.
Visiting /docs/propeller/ redirects to /docs/propeller/architecture/.
pnpm install
pnpm devOpen http://localhost:3000/docs/propeller/ with your browser to see the result.
This site uses:
- Next.js static export —
next buildoutputs static files toout/ - Next.js
basePath— generates links and assets under/docs/propeller - Post-build nesting —
scripts/nest-static-export.mjsmoves the export underout/docs/propeller/so Cloudflare static assets can serve it from the route prefix without custom Worker code
| Setting | Value |
|---|---|
| Build command | pnpm run build |
| Deploy command | pnpm wrangler deploy |
| Version command | pnpm wrangler versions upload |
| Root directory | / |
flowchart LR
subgraph Build_and_Deploy
A[Git push] --> B[Cloudflare build trigger]
B --> C[pnpm run build]
C --> D[next build — static export]
D --> E[nest export under out/docs/propeller]
B --> F[pnpm wrangler deploy]
E --> G[Cloudflare static assets]
F --> G
end
subgraph Runtime_Request_Flow
U[Browser request] --> H[Cloudflare static asset route]
H --> J[Static asset lookup]
J --> U
end
Only one build variable is needed:
NEXT_PUBLIC_BASE_URL=https://www.absmach.eu/docs/propellerSet this as a Cloudflare build variable so it is embedded into the static output at build time.
| Path | Description |
|---|---|
src/app/[[...slug]]/page.tsx |
Docs page renderer (all routes) |
src/app/api/search/route.ts |
Static search index route handler |
src/app/og/[...slug]/route.tsx |
OG image generation for docs pages |
src/app/llms-full.txt/route.ts |
LLM-readable full docs text |
content/docs |
MDX source files |
src/lib/source.ts |
Fumadocs source adapter |
src/lib/layout.shared.tsx |
Shared layout options |
content/openapi.yaml |
OpenAPI spec (generates API docs) |
scripts/nest-static-export.mjs |
Moves static export under /docs/propeller |