Platform documentation for Alkemio, built with Nextra 4 (documentation framework on top of Next.js App Router).
Most people reading these docs are running a space or community on Alkemio, not building software — assume no comfort with terminals, config files, or developer jargon. Write so someone with little to no background on the specific topic can follow along; getting-started pages should assume nothing, but elsewhere you can lean on what a reader has already picked up there rather than re-explaining Alkemio basics from scratch every time. That includes technical setup tasks like connecting an external tool through MCP: break it into steps a non-technical person can actually follow and complete, even without needing to understand what's happening underneath. Prefer short, clear prose over bullet-point lists where the content allows it, and keep it concise — get the point across without turning a simple explanation into a long walkthrough.
- Framework: Nextra 4.6.1 with
nextra-theme-docs - Next.js: 16.1.6 (App Router)
- React: 19.2.4
- Search: Pagefind (built during postbuild)
- Node.js: >= 22.0.0
- Package Manager: pnpm >= 9.0.0
- License: EUPL-1.2
pnpm dev # Development server on port 3010 (search won't work)
pnpm build # Production build + generates Pagefind search index
pnpm start # Start production server on port 3010 (search works)Note: Search only works after running pnpm build because Pagefind indexes the compiled HTML.
app/ # Next.js App Router
layout.jsx # Root layout (minimal)
not-found.jsx # 404 page (light theme)
[lang]/ # Locale-based routing
layout.jsx # Main layout with Nextra theme
not-found.jsx # Locale-specific 404
[[...mdxPath]]/ # Catch-all route for MDX content
page.jsx # MDX page renderer
_components/ # Client-side components
ClientProviders.jsx # Iframe communication & client logic
LocaleSwitchWrapper.jsx # Locale cookie tracking
content/ # MDX documentation content
en-US/ # English content
_meta.js # Navigation configuration
*.mdx # Content files
features/ # Feature documentation
getting-started/ # Getting started guides
how-to/ # How-to guides
structure/ # Platform structure docs
nl-NL/ # Dutch content (mirrors en-US structure)
components/ # Shared React components
Tutorial*.js # Embedded tutorial videos
public/ # Static assets
_pagefind/ # Search index (generated, gitignored)
mdx-components.js # MDX component configuration
next.config.mjs # Next.js configuration (ESM)
proxy.js # Locale detection middleware
styles.css # Global styles
.npmrc # pnpm configuration (enables pre/post scripts)
node_modules/.next/(build output)public/_pagefind/(search index, generated)_pagefind/
- Locales:
en-US(default),nl-NL - Content structure:
content/{locale}/directories - Navigation:
_meta.jsfiles in each content folder (ES module format) - Locale persistence: Cookie-based (
NEXT_LOCALE) for sidebar navigation - When updating content, ensure both language versions are kept in sync
- Base path:
/documentation - Theme: Forced light mode (pure white background)
- Images: Unoptimized (for compatibility)
This documentation is embedded within the main Alkemio platform via an iframe. The ClientProviders component handles parent-child frame messaging:
Message Types:
PAGE_HEIGHT: Sends current page height for dynamic iframe resizingPAGE_CHANGE: Notifies parent of navigation changes
Allowed Origins:
https://alkem.iohttps://dev-alkem.iohttps://acc-alkem.iohttps://sandbox-alkem.iohttps://test-alkem.iohttp://localhost:3000
When not in an iframe, the body receives class not-in-iframe for standalone styling.
- Create MDX file in both locales:
content/en-US/pagename.mdxandcontent/nl-NL/pagename.mdx - Add entry to
_meta.jsin the same folder for both locales - Keep content synchronized between language versions
Navigation is configured using _meta.js files (ES module format):
export default {
'page-name': {
title: 'Page Title',
theme: {
breadcrumb: true,
sidebar: true
}
}
}The Dockerfile uses multi-stage builds with Node 22 and pnpm:
- Build stage: Installs pnpm via corepack, installs deps, builds Next.js app, generates Pagefind index
- Production stage: Copies only necessary files, installs production deps
Key files copied to production:
.next/- compiled apppublic/- static assets including_pagefind/app/,content/,components/- source files needed at runtimenext.config.mjs,mdx-components.js,proxy.js,styles.css
- Travis CI: Uses Node 22 + pnpm, runs
pnpm installandpnpm buildfor validation - GitHub Actions: Build Docker image and deploy to Kubernetes clusters
- Environments: dev, test, sandbox, acc (acceptance), prod
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in node_modules/next/dist/docs/ (resolved from this file's directory; in monorepos the next package may not be visible from the repo root) before writing any code. Heed deprecation notices.
This block is written and re-added by next dev — verify at node_modules/next/dist/server/lib/generate-agent-files.js. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.