Advanced Internal Documentation Platform with Notion-like Editor, Team Collaboration, and Version Control
scriptory is a modern, self-hosted documentation platform designed for development teams. It combines the power of a Notion-like block editor with advanced features like version control, team collaboration, and code integration.
- Block-based editing with support for multiple content types
- Slash commands (
/) for quick block creation - Drag & drop block reordering
- Rich text formatting: Headings, lists, code blocks, quotes, and more
- To-do lists with checkboxes
- Code blocks with syntax highlighting
- Real-time preview mode
- Comments & Discussions on documents
- Nested replies for threaded conversations
- Inline comments on specific code lines
- @mentions support (coming soon)
- Team activity dashboard showing recent edits, comments, and updates
- Real-time collaboration indicators
- Auto-save versions on every edit
- Version history viewer
- Restore previous versions with one click
- Diff viewer to compare changes
- Commit messages for manual saves
- Keep last 20 versions automatically
- Code file browser - Insert code snippets from your project
- Syntax highlighting for 20+ languages
- Deeplink support - Open files directly in your code editor
- Templates - API docs, test cases, bug reports, team guides
- Tag system for organization
- Full-text search across all documents
- Beautiful dark mode with smooth transitions
- Responsive design - works on desktop, tablet, and mobile
- Keyboard shortcuts for power users
- Command palette (βK / Ctrl+K) for quick navigation
- Glassmorphism design with gradients and shadows
- Accessible components using Radix UI primitives
- File uploads - Images, PDFs, documents
- Drag & drop file support
- Image preview in markdown
- Attachment management
Linux/macOS/Git Bash:
curl -fsSL https://raw.githubusercontent.com/anandpilania/scriptory/main/scripts/install.sh | bashWindows PowerShell:
iwr -useb https://raw.githubusercontent.com/anandpilania/scriptory/main/scripts/install.ps1 | iexUsing npm (Global Install):
npm install -g scriptoryOr clone and build:
git clone https://github.com/anandpilania/scriptory.git
cd scriptory
npm install
npm run build:frontend
npm link# Navigate to your project directory
cd /path/to/your/project
# Initialize scriptory
scriptory init
# Or with a template
scriptory init --template dev # For developers
scriptory init --template qa # For QA teams
scriptory init --template team # For general teams# Start with default port (6767)
scriptory
# Or specify custom port
scriptory --port 8080
# Start without opening browser
scriptory --no-browserThe server will automatically open your browser to http://localhost:6767
# Initialize a new project
scriptory init [--template <type>]
# Start the server
scriptory [--port <port>] [--no-browser]
# Configuration management
scriptory get <key> # Get config value
scriptory set <key> <value> # Set config value
# Version management
scriptory version # Show current version
scriptory update # Update to latest version
# Coming soon
scriptory export [--format html|pdf|markdown]
scriptory search <query>| Key | Description | Example |
|---|---|---|
DEEPLINK_PREFIX |
Prefix for opening files in your editor | vscode://file |
THEME |
UI theme preference | light, dark, auto |
TEAM_NAME |
Your team's name | Engineering Team |
Type / to open the block menu:
- Text - Regular paragraph
- Heading 1-3 -
# ## ###or/h1 /h2 /h3 - Bullet List -
/ulor- - Numbered List -
/olor1. - To-do List -
/todoor- [ ] - Code Block -
/codeor``` - Quote -
/quoteor> - Divider -
/divideror---
| Shortcut | Action |
|---|---|
β/Ctrl + S |
Save document |
β/Ctrl + K |
Open command palette |
β/Ctrl + P |
Toggle preview |
/ |
Open block menu |
Enter |
New block |
Backspace (empty block) |
Delete block |
ESC |
Close dialogs |
Adding Comments:
- Click the "Comments" button in the toolbar
- Type your comment in the sidebar
- Press "Comment" to post
Replying to Comments:
- Click "Reply" on any comment
- Type your reply
- Click "Reply" button
Inline Code Comments:
- Select a code block or line
- Click the comment icon
- Add context-specific feedback
scriptory comes with pre-built templates:
Development Templates:
- API Documentation - Endpoint specs, request/response examples
- Architecture Docs - System design, diagrams
- Technical Specs - Feature specifications
QA Templates:
- Test Cases - Test scenarios, steps, expected results
- Bug Reports - Issue tracking template
- Test Plans - QA planning and coverage
Team Templates:
- Meeting Notes - Structured meeting documentation
- Team Guide - Onboarding and processes
- Project Overview - High-level project information
- Node.js >= 14.0.0
- npm or yarn
# Clone repository
git clone https://github.com/anandpilania/scriptory.git
cd scriptory
# Install root dependencies
npm install
# Install frontend dependencies
cd frontend
npm install
cd ..
# Build frontend
npm run build:frontend
# Link for global use (optional)
npm link# Terminal 1 - Backend
npm run dev:backend
# Terminal 2 - Frontend (hot reload)
cd frontend
npm run devFrontend dev server runs on http://localhost:3000 and proxies API calls to backend on port 6767.
# Build frontend for production
npm run build:frontend
# Frontend build outputs to public/your-project/
βββ scriptory/
βββ .uploads/ # Uploaded files
βββ .versions/ # Version history
β βββ {doc-id}/
β βββ {timestamp}.json
βββ {document-id}/
βββ config.json # Document metadata
βββ content.mdx # Document content
βββ comments.json # Comments data
Located at ~/.config/scriptory/config.json:
{
"DEEPLINK_PREFIX": "vscode://file",
"THEME": "dark",
"TEAM_NAME": "Engineering Team",
"initialized": true
}- API Documentation - Document REST/GraphQL APIs
- Technical Specs - Write detailed feature specifications
- Architecture Docs - Document system design
- Code Reviews - Comment on code snippets
- Onboarding - Create team guides
- Test Cases - Document test scenarios
- Bug Reports - Track issues with templates
- Test Plans - Plan testing coverage
- Release Notes - Document releases
- Feature Specs - Define product requirements
- Meeting Notes - Collaborative note-taking
- User Stories - Document user journeys
- Roadmaps - Plan product direction
- Local-first - All data stored locally
- No external services - Completely self-hosted
- File access controls - Secure file operations
- XSS protection - Sanitized markdown rendering
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use ESLint configuration
- Follow React best practices
- Write meaningful commit messages
- Add tests for new features
MIT License - see LICENSE file for details
- shadcn/ui - Beautiful component library
- Radix UI - Accessible primitives
- TailwindCSS - Utility-first CSS
- Lucide - Icon library
- Inspired by Notion
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@scriptory.com
- Real-time collaboration with WebSockets
- Export to PDF/HTML
- Database support (PostgreSQL, MongoDB)
- User authentication and permissions
- Mobile apps (iOS, Android)
- AI-powered documentation generation
- Integration with Slack, Teams, Discord
- Custom themes and branding
- Plugin system
- Advanced analytics
If you find scriptory useful, please consider giving it a star on GitHub!
Made with β€οΈ by the scriptory Team
Website β’ Documentation β’ Twitter