So I built a replacement. Took a while, but the result is something I'm genuinely happy with — and I figured others might find it useful too, so I open-sourced it.
What it is: A self-hosted documentation platform. Think GitBook, but you own it.
What makes it different: - 4 files — `index.php`, `api.php`, `auth.php`, `.htaccess`. That's the entire thing. Upload to any PHP hosting and you're done. - No database — everything is stored as JSON files. No MySQL, no Postgres, no Docker, no nothing. - No build process — no npm, no webpack, no React. Just upload and it works.
What's inside: - Block editor with 14 block types (code with syntax highlighting, tables, cards, timeline, callouts, collapsible sections...) - Slash commands — type `/` to insert blocks, just like Notion - Full-text search (Ctrl+K) - Dark & light mode, custom accent colors, logo, favicon - Spaces, tree navigation, drag & drop pages - Cover images with gradients - Auto-generated OG images for social sharing - Code blocks with Prism.js (200+ languages) and copy button - Undo/redo, drag & drop block reordering - Mobile responsive - Setup wizard with bcrypt password hashing - i18n ready (English + Slovak built-in)
Live demo: https://docs.web-studio.sk (password: DemoPassword@123)
GitHub: https://github.com/webstudio-ltd/docs
MIT licensed. Free forever. We're also working on a premium version with advanced features for teams, but the open-source version is fully functional and will stay free.
Would love to hear your feedback. What would you add? What's missing?
I am wondering why you chose to go with 4 files only instead of organizing the code into separate folders?
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/cs...">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/p..." id="prism-theme">
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;..." rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/@editorjs/editorjs@2.26.5"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/header@2.8.1"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/nested-list@1.4.2"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/code@2.9.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/quote@2.6.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/delimiter@1.4.2"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/inline-code@1.5.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/marker@1.4.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/checklist@1.6.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@editorjs/table@2.3.0"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.mi..." defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/..." defer></script>