SCNX Documentation
April 11, 2026 · View on GitHub
The official documentation for SCNX - view it live at docs.scnx.xyz.
This project is not open source. The source code is shared publicly to allow community contributions (typo fixes, translation improvements, new documentation pages), but all rights are reserved by ScootKit. You may not copy, redistribute, or use this code to build or host your own version of the documentation. Due to proprietary dependencies (FontAwesome Pro, internal API integrations), the project cannot be built on external machines without a license.
Structure
docs/ # Documentation content (English)
scnx/ # SCNX platform docs (servers, billing, security)
custom-bot/ # Custom Bot docs (modules, commands, troubleshooting)
support-bot/ # Support Bot docs (modmail, tickets)
linked-roles/ # Linked Roles docs
i18n/ # Translations
de/ # German
it/ # Italian
src/
pages/ # Custom pages (landing page)
theme/ # Theme overrides (footer, doc footer, blog list)
components/ # Reusable components (PlanPrice, ModuleOverview, etc.)
css/ # Global styles
static/ # Static assets (images, icons)
blog/ # News & blog posts
Tech Stack
- Docusaurus 3 (React-based static site generator)
- Algolia DocSearch with AI assistant
- FontAwesome Pro for icons
- i18n support for English, German, and Italian
Development
Installation
yarn
Local Development
yarn start
Starts a local dev server with hot reload. For German locale:
yarn start --locale de
Build
yarn build
Fix Markdown Tables
yarn fix-tables
Scripts
Execute scripts from the bin/ directory:
node download-api-responses.js- Cache SCNX API data toapi-responses.json(required for other scripts and offline builds)node generate-progress.js [orgID]- View module translation progress (optionally filter by org)node generate-docs-file.js <moduleName>- Generate a docs template for a Custom Bot modulenode generate-missing-files.js- Generate placeholder files for undocumented modules
Contributing
Contributions are welcome! Please:
- Create an issue or discussion first to coordinate
- Open a PR with your changes
- Run
yarn fix-tablesbefore committing to fix markdown table formatting
Adding Translations
- English docs live in
docs/ - German translations go in
i18n/de/docusaurus-plugin-content-docs/current/ - UI string translations go in
i18n/de/code.json - English is the fallback for any missing translations
Documentation Style
- Use
:::info,:::warning,:::danger,:::tipfor callouts - Reference images with
@site/docs/assets/... - Use
<Translate>components in React code for i18n - Use
<IncludedInPlan>component to show plan availability - Use
<PlanPrice>component for dynamic pricing display
Markdown Formatting Rules
A CI linter runs on every PR and an autofix runs on merge to main. The following rules are enforced:
| Rule | Correct | Incorrect |
|---|---|---|
Use - instead of em dashes | tickets - overview | tickets — overview |
| Use straight quotes | "text" | \u201Ctext\u201D |
Use ... instead of ellipsis character | and more... | and more\u2026 |
| Use regular spaces | some text | some\u00A0text (non-breaking space) |
| No trailing whitespace | end of line | end of line |
These rules are automatically fixed on merge to main via the docs-autofix workflow.
Prettier
Prettier runs on merge to main to auto-format markdown files. Configuration is in .prettierrc. It will:
- Align and normalize markdown table columns
- Normalize bullet points to
-(use either*or-when writing, prettier will standardize it) - Normalize emphasis to
_text_and bold to**text** - Fix inconsistent spacing and indentation
You can run prettier locally before committing:
NPM_CONFIG_USERCONFIG=/dev/null npx prettier --write 'docs/**/*.md'
The NPM_CONFIG_USERCONFIG=/dev/null is needed to skip the FontAwesome registry in .npmrc.
© ScootKit UG (haftungsbeschränkt), 2026 - All rights reserved. This project is proprietary software. See above for contribution guidelines.