Write. Render. Share. β Your team's technical memory, written in code, seen as diagrams.
A developer-native diagramming and documentation studio that supports Markdown, Mermaid, SVG, and Mixed content with live preview, export, and sharing.
- β Monaco Editor - VS Code quality editor with syntax highlighting
- β 4 Rendering Modes - Markdown, Mermaid, SVG, Mixed (Markdown + Mermaid)
- β Live Preview - 300ms debounced rendering
- β Export System - SVG, PNG, PDF, Markdown
- β URL Sharing - Compressed hash-based sharing (no backend needed)
- β Dark/Light Theme - Full theme support
- β Resizable Panes - Drag to adjust editor/preview split
- β State Persistence - Auto-save to localStorage
- β Sample Templates - Quick start templates for each mode
- β³ Keyboard shortcuts (Ctrl+S, Ctrl+Enter)
- β³ Mobile responsive layout
- β³ CI/CD pipeline
- β³ Production deployment
- π Accounts & Spaces - Save, organize, version history
- π€ AI Layer (BYOAI) - Natural language β diagram with your own AI key
- π Sharing & Gallery - Embeds, public gallery, presentation mode
- π₯ Collaboration - Real-time co-editing, GitHub sync, REST API
- Node.js 20+ (recommended: use nvm)
- pnpm 10+ (install:
npm install -g pnpm)
# Clone repository
git clone https://github.com/your-org/cipher-draw.git
cd cipher-draw
# Install dependencies
pnpm install
# Start development server
pnpm devThe app will be running at http://localhost:3000
# Development
pnpm dev # Start dev server (all workspaces)
pnpm -C apps/web dev # Start web app only
pnpm build # Build for production
pnpm lint # Run ESLint
pnpm test # Run tests with Vitest
# Specific workspace commands
cd apps/web
pnpm dev # Web app development
pnpm build # Build web app
pnpm test # Run web app testscipher-draw/
βββ apps/
β βββ web/ # Next.js 14 frontend (Phase 1)
β βββ app/ # App Router pages
β βββ components/ # React components
β βββ lib/ # Utilities (export, share, sanitize)
β βββ store/ # Zustand state management
β βββ tests/ # Vitest tests
β
βββ server/ # NestJS backend (Phase 2+, not started)
βββ packages/
β βββ shared/ # Shared types and utilities
β
βββ docs/ # π Complete documentation (see below)
βββ pnpm-workspace.yaml # Monorepo configuration
Start here: docs/README.md - Complete documentation index
| Document | Purpose |
|---|---|
| STATUS.md | Current implementation status, what's done, what's next |
| ROADMAP.md | Strategic roadmap for all 5 phases |
| NEXT_FEATURES.md | Prioritized feature list with impact analysis |
| IMPLEMENTATION_GUIDE.md | For AI assistants: patterns, examples, pitfalls |
| WORKFLOW.md | Development workflow and doc sync process |
| FEATURE_TIERS.md | Features organized by impact (Must/Nice/Amazing) |
| REQUIREMENTS.md | Product requirements (PRD) |
| ARCHITECTURE.md | Technical architecture |
| PRICING.md | Business model and pricing strategy |
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Check docs/STATUS.md for current tasks
- Read docs/IMPLEMENTATION_GUIDE.md for patterns
- Follow docs/WORKFLOW.md for the process
- Pick a task marked
β Not Started - Implement and update docs
- Submit a PR
This project is optimized for AI coding assistants (Claude, GPT, Cursor):
- IMPLEMENTATION_GUIDE.md has complete codebase reference
- WORKFLOW.md documents what to update after implementation
- All patterns, pitfalls, and examples are documented
- Framework: Next.js 14 (App Router)
- Editor: Monaco Editor (VS Code engine)
- Diagrams: Mermaid.js 11
- Markdown: remark + rehype
- State: Zustand with localStorage persistence
- Styling: Tailwind CSS + shadcn/ui
- Testing: Vitest
- Export: html-to-image, jspdf
- API: NestJS
- Database: PostgreSQL + Prisma ORM
- Cache: Redis
- Auth: JWT + OAuth2 (GitHub, Google)
- Frontend: Vercel (planned)
- Backend: Railway/Render (Phase 2+)
- Self-Hosted: Docker Compose (planned)
Phase: Phase 1 (MVP Editor) Progress: 90% Complete Timeline: 1 day to public beta
Phase 1: MVP Editor βββββββββββββββββββ 90% π Active
Phase 2: Accounts & Spaces ββββββββββββββββββ 0% βΈοΈ Not Started
Phase 3: AI Layer (BYOAI) ββββββββββββββββββ 0% βΈοΈ Not Started
Phase 4: Sharing & Gallery ββββββββββββββββββ 0% βΈοΈ Not Started
Phase 5: Collaboration & API ββββββββββββββββββ 0% βΈοΈ Not Started
- Monaco Editor with 4 modes
- Live preview with debouncing
- Export to SVG, PNG, PDF, MD
- URL-based sharing
- Read-only view page β NEW
- Fork functionality β NEW
- Theme system
- State persistence
- Keyboard shortcuts (Ctrl+S, Ctrl+Enter)
- Mobile responsive testing
- CI/CD pipeline
- Vercel deployment
- MIT Licensed - Free to use, modify, and distribute
- Self-hostable - Docker Compose for full control
- No vendor lock-in - Your data, your infrastructure
- No AI vendor lock-in - Use OpenAI, Anthropic, Google, or Ollama
- Keys stay local - Stored in browser localStorage, never sent to us
- Local AI supported - Ollama for complete privacy
- Optional - All features work without AI
- Code-based - Diagrams as code, not drag-and-drop
- Git-friendly - Plain text files, perfect for version control
- Keyboard-centric - Built for developer workflows
- Fast - No bloat, instant preview
- β DOMPurify sanitization for all rendered HTML/SVG
- β XSS protection via React JSX escaping
- β No PII collection in Phase 1 (frontend-only)
- β API keys in localStorage only (never sent to servers)
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:coverageCurrent test coverage: 2 test files
codec.test.ts- Share compression/decompressionrenderMixed.test.ts- Mixed mode rendering
Target: 70%+ coverage by Phase 1 completion
Current metrics (local dev):
- β‘ Initial load: ~2s
- β‘ Editor-to-preview latency: <300ms
- β‘ Bundle size: ~280KB first load (Monaco is large)
- β‘ Lighthouse: ~95 (needs production test)
Targets for Phase 1:
- Initial load: <2s
- Render latency: <300ms
- Lighthouse: 90+ all metrics
Fast, beautiful, zero-friction editor. No login required.
Persistent storage, version history, organized workspaces.
Natural language β diagram. Optional, bring your own AI key.
Embeds, public gallery, presentation mode.
Real-time co-editing, GitHub sync, REST API, plugins.
Full roadmap with milestones β
Free Tier:
- Unlimited public documents
- 50 private documents
- Full editor + AI (BYOAI)
- URL sharing + embeds
Pro ($9/month):
- Unlimited private documents
- Unlimited version history
- Advanced AI features
Team ($24/seat/month):
- Real-time collaboration
- GitHub/GitLab sync
- REST API access
Self-Hosted (Free, Open Source):
- Full codebase, MIT licensed
- Docker Compose setup
- Community support
| Feature | Cipher Draw | Competitors |
|---|---|---|
| Multi-syntax support | β Markdown, Mermaid, SVG, Mixed | β Single syntax only |
| BYOAI (any provider) | β OpenAI, Claude, Gemini, Ollama | β Vendor lock-in |
| Local AI support | β Ollama (no internet needed) | β Cloud only |
| Open source | β MIT license | β Proprietary |
| Self-hostable | β Docker Compose | β SaaS only |
| No login required | β Editor works instantly | β Account required |
| Developer-first | β Code-based, git-friendly | β Drag-and-drop only |
Coming soon after Phase 1 completion
-
URL length limit - Hash-based sharing fails for very large documents (>8KB)
- Fix: Phase 2 server-side save with short tokens
-
Mobile layout - Current layout may break on small screens
- Fix: In progress (see STATUS.md)
-
No keyboard shortcuts - Expected developer feature missing
- Fix: In progress (see STATUS.md)
- π Documentation: docs/README.md
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Feature Requests: docs/NEXT_FEATURES.md
Built with:
- Next.js - React framework
- Monaco Editor - Code editor
- Mermaid - Diagram rendering
- Tailwind CSS - Styling
- Zustand - State management
MIT License - see LICENSE for details.
TL;DR: Free to use, modify, and distribute. No restrictions.
Cipher Text Labs
- Website: ciphertext.io
- GitHub: @ciphertext
If you find Cipher Draw useful, please consider starring the repo!
Built with β€οΈ for developers who think in diagrams
- Get Started - Installation and setup
- Documentation - Complete docs
- Roadmap - What's next
- Contributing - How to help
- License - MIT License