A powerful, feature-rich React documentation platform built with Vite, designed for creating beautiful, searchable, and versioned documentation sites from structured JSON data. Perfect for technical documentation, API references, product guides, and knowledge bases.
- JSON-Driven Architecture: All documentation stored as structured JSON for easy version control and automation
- Multi-Product Support: Manage documentation for multiple products from a single installation
- Version Control: Built-in versioning system with per-version assets and content
- Rich Content Blocks: 16+ specialized content types including code, math, charts, media, and interactive elements
- Powerful Search: Real-time search with highlighted snippets and keyboard navigation (
/orCtrl+K) - Keyboard-First Navigation:
F- Focus filterCtrl + Arrow Keys- Navigate documentation treeCtrl + Enter- Open selected item- Arrow keys in search results
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Theme Support: Light and dark modes with smooth transitions
- Deep Linking: Direct links to any document or category
- Modern Stack: React 19, Vite 7, TypeScript 5.9, Tailwind CSS 4
- Smart Generators: Automatic code splitting based on actual content usage
- Static Export: Generate offline-ready HTML with pre-rendered charts
- Hot Module Replacement: Instant updates during development
- Type Safety: Full TypeScript support throughout
SST-Docs includes a comprehensive library of content blocks:
| Block Type | Description | Use Case |
|---|---|---|
| Title | Hierarchical headings (H1-H3) with anchor links | Document structure |
| Text | Rich text with HTML sanitization | Paragraphs, descriptions |
| Code | Syntax-highlighted code with Prism.js | Code examples, snippets |
| List | Ordered and unordered lists | Feature lists, steps |
| Table | Responsive tables with multiple layouts | Data presentation |
| MessageBox | Info, warning, error, success boxes | Callouts, alerts |
| Math | LaTeX equations with KaTeX | Mathematical formulas |
| Chart | Interactive charts with Chart.js | Data visualization |
| Image | Responsive images with captions | Screenshots, diagrams |
| ImageGrid | Multi-column image galleries | Visual showcases |
| ImageCarousel | Splide-powered image sliders | Image sequences |
| ImageCompare | Before/after image comparisons | Visual changes |
| Audio | Audio player with controls | Podcasts, sound samples |
| YouTube | Embedded YouTube videos | Video tutorials |
| Divider | Visual section separators | Content organization |
- Node.js β₯ 20.0.0
- npm β₯ 10.0.0
# Clone the repository
git clone https://github.com/ShadowShardTools/SST-Docs.git
cd SST-Docs
# Install dependencies
npm install
# Run development server
npm run devVisit http://localhost:5173 to see your documentation site.
# Build for production
npm run build
# Preview production build
npm run start
# Deploy to GitHub Pages
npm run deploySST-Docs/
βββ public/SST-Docs/data/ # Documentation content
β βββ products.json # Product list
β βββ <product>/
β βββ versions.json # Version list
β βββ <version>/
β βββ index.json # Auto-generated index
β βββ categories/ # Category definitions
β βββ items/ # Document content
β βββ images/ # Image assets
β βββ audio/ # Audio files
β βββ charts/ # Chart data
β βββ static/ # Static export output
βββ src/
β βββ application/ # App configuration
β βββ generators/ # Build-time generators
β βββ layouts/ # UI components
β β βββ blocks/ # Content block components
β β βββ navigation/ # Navigation UI
β β βββ render/ # Document rendering
β β βββ searchModal/ # Search functionality
β βββ services/ # Data loading services
β βββ workers/ # Web Workers
βββ sst-docs.config.json # Main configuration
βββ vite.config.ts # Vite configuration
{
"FS_DATA_PATH": "./public/SST-Docs/data",
"PRODUCT_VERSIONING": true,
"HEADER_BRANDING": {
"logoSrc": "https://avatars.githubusercontent.com/u/107807003",
"logoAlt": "SST Docs",
"logoText": "SST Docs"
},
"HTML_GENERATOR_SETTINGS": {
"OUTPUT_DIRECTORY": "./public/SST-Docs/data",
"PAGE_SIZE": "Letter",
"PAGE_PADDINGS": [20, 10, 10, 20],
"INCLUDE_TOC": true,
"THEME": "default"
}
}| Command | Description |
|---|---|
npm run dev |
Start development server with HMR |
npm run build |
Build for production |
npm run start |
Preview production build |
npm run deploy |
Deploy to GitHub Pages |
npm run generate |
Generate optimized imports (production) |
npm run generate:dev |
Generate full imports (development) |
npm run generate:static-html |
Export static HTML |
npm run format |
Format code with Prettier |
SST-Docs provides two ways to create and manage documentation:
The built-in visual editor provides a user-friendly interface for creating and editing documentation:
- Start the development server:
npm run dev - Navigate to
http://localhost:5173/SST-Docs/#/editor/ - Select a product and version from the interface, or access directly via URL:
- Example:
http://localhost:5173/SST-Docs/#/editor/my-document?product=myProduct&version=v1.0
- Example:
- Use the visual interface to:
- Create and manage products
- Add versions
- Create categories and documents
- Add and configure content blocks
- Upload images and assets
- Preview changes in real-time
The editor automatically generates the proper JSON structure and saves files to the correct locations.

For advanced users or automation, you can directly edit the JSON files:
Edit public/SST-Docs/data/products.json:
[
{
"product": "my-product",
"label": "My Product"
}
]Create public/SST-Docs/data/my-product/versions.json:
[
{
"version": "1.0",
"label": "Version 1.0"
}
]Create public/SST-Docs/data/my-product/1.0/items/getting-started.json:
{
"id": "getting-started",
"title": "Getting Started",
"description": "Quick start guide",
"content": [
{
"type": "title",
"titleData": {
"text": "Getting Started",
"level": 1,
"enableAnchorLink": true
}
},
{
"type": "text",
"textData": {
"text": "Welcome to the documentation!"
}
},
{
"type": "code",
"codeData": {
"language": "javascript",
"content": "console.log('Hello, World!');",
"name": "example.js"
}
}
]
}npm run generateThe system supports light and dark themes. Customize colors in src/index.css using Tailwind CSS variables.
SST-Docs uses Tailwind CSS 4. Modify styles in:
src/index.css- Global styles- Component files - Component-specific styles
sst-docs.config.json- Branding configuration
- Create a new component in
src/layouts/blocks/components/ - Export it from
src/layouts/blocks/components/index.ts - Run
npm run generate:devto update imports - Use the block type in your JSON content
Generate offline-ready documentation:
npm run generate:htmlThis creates:
- Static HTML pages for each document
- Pre-rendered charts as images
- Asset manifests for download functionality
- Standalone CSS and resources
The generator system analyzes your content and only bundles:
- Block components actually used
- Prism.js languages referenced in code blocks
This keeps bundle sizes minimal for production.
The search system:
- Indexes all content on load
- Provides real-time filtering
- Highlights matching terms
- Ranks results by relevance
- Supports keyboard navigation
The project is pre-configured for GitHub Pages:
npm run deploy- Update
baseinvite.config.ts - Configure your hosting provider
- Build and deploy:
npm run build
Set BASE_URL in your build environment to customize the base path.
- SST-Docs-Core: https://github.com/ShadowShardTools/SST-Docs-Core
- Framework: React 19.2
- Build Tool: Vite 7.3
- Language: TypeScript 5.9
- Styling: Tailwind CSS 4.1
- Routing: React Router 7.11
- Code Highlighting: Prism.js 1.30
- Math Rendering: KaTeX 0.16
- Charts: Chart.js 4.5
- Icons: Lucide React 0.562
Apache Version 2.0 License - see LICENSE for details
- Website: https://shadowshardtools.github.io
- GitHub: https://github.com/ShadowShardTools
- Unity Asset Store: https://assetstore.unity.com/publishers/46006
- YouTube: https://www.youtube.com/@shadowshardtools
- LinkedIn: https://www.linkedin.com/company/shadowshardtools
- Discord: https://discord.gg/QyQACA5YvA
Contributions are welcome! Please feel free to submit issues and pull requests. The repository needs real developers and someone who can take over further development!
For questions and support:
- Open an issue on GitHub
- Join our Discord community
- Check the documentation at https://shadowshardtools.github.io/SST-Docs/
Built with β€οΈ by ShadowShardTools