ShadePress is a Single Page Application (SPA) documentation engine that runs entirely in the browser. It compiles Markdown to HTML at runtime, meaning you never have to wait for a build step again.
Ideal for: Rust Crates, Lua Scripts, Personal Wikis, and Internal Tools.
Modern documentation tools (VitePress, Docusaurus) are excellent, but they are heavy. They require a complex toolchain (npm, yarn, webpack, vite), produce massive node_modules folders, and require CI/CD pipelines to deploy.
ShadePress is different:
- Zero Dependencies: No
package.json. Nonode_modules. - Instant Feedback: Edit a
.mdfile, refresh the browser. Done. - Portable: Runs on any static file server (Python, Apache, Nginx).
- Hacker Friendly: Pure Vanilla JS (ES Modules). Easy to fork and modify.
- Runtime Search: Client-side crawler builds a full-text search index in memory.
- Theming: Built-in Catppuccin (Mocha/Latte) with persistence.
- Markdown+: GitHub Flavored Markdown + Admonitions (
::: tip). - Code Highlighting: PrismJS with Autoloader (200+ languages).
- Mobile Optimized: Responsive sidebar, touch-friendly, and fast.
- Zero Config Routing: Hash-based routing (
/#/guide) requires no server setup.
git clone https://github.com/ShadowDevForge/ShadePress.git my-docs
cd my-docsBecause ShadePress uses ES Modules, you must use a local server (browsers block file:// imports for security).
Python
python3 -m http.server
# Open http://localhost:8000Node (if you have it)
npx http-server
# Open http://localhost:8080Edit shadepress.config.js to set your logo, repo, and sidebar links.
// shadepress.config.js
export default {
title: 'My Project',
repo: 'https://github.com/user/project', // Enables "Edit on GitHub"
nav: [
{ text: 'Home', link: '#/' },
{ text: 'Guide', link: '#/guide' }
],
sidebar: [
{
text: 'Core',
items: [
{ text: 'Introduction', link: '#/' },
{ text: 'Installation', link: '#/guide' }
]
},
{
text: 'Advanced',
collapsed: true, // Group is closed by default
items: [
{ text: 'Architecture', link: '#/advanced' }
]
}
]
}ShadePress follows a strict Model-View-Controller pattern in Vanilla JS:
shade/main.js: Bootstrapper.shade/modules/router.js: Listens tohashchangeevents.shade/modules/renderer.js: Fetches Markdown, parses Admonitions, and renders HTML.shade/modules/search.js: Background worker that indexes content for MiniSearch.
We welcome contributions from Systems Engineers, Backend Devs, and anyone who hates node_modules.
Refer to Contribution
MIT © ShadowDevForge
