- TypeScript 93.1%
- SCSS 6%
- JavaScript 0.8%
## Summary - Shallow clones (`fetch-depth: 1`) across all CI jobs; base SHA fetched on demand only when `nx affected` needs it. - `node_modules` cached per-job via Forgejo Actions cache; `npm ci` now runs only on cache miss. - Replaces the broken `NX_BASE=HEAD~1` fallback with `nx run-many` when the PR base SHA isn't reachable — correctness over speed when the diff base is unknown. - Adds explicit `fetch-depth: 1` to `.github/workflows/publish.yml` checkout for consistency. ## Test plan - [x] lint, test, build, e2e jobs pass on this branch - [ ] Verify cache hit/miss behavior on subsequent pushes - [ ] Confirm `nx affected` still resolves correctly when base SHA is fetchable Co-authored-by: Jesse Zhou <jesse@Mac.lan> Reviewed-on: #9 |
||
|---|---|---|
| .forgejo/workflows | ||
| .github/workflows | ||
| .vscode | ||
| apps | ||
| deferred | ||
| docs | ||
| issues | ||
| notes | ||
| packages | ||
| plans-cc | ||
| scripts | ||
| sessions | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitignore | ||
| .mcp.json | ||
| .prettierignore | ||
| .prettierrc | ||
| CFPAGE-DEPLOY.md | ||
| CHANGELOG.md | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| jest.config.ts | ||
| jest.preset.js | ||
| LICENSE | ||
| nx.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.base.json | ||
Open-source whiteboard tool (SaaS), an all-in-one collaborative canvas that includes mind mapping, flowcharts, freehand and more.
Features
- 💯 Free and Open Source
- ⚒️ Mind Maps and Flowcharts
- 🖌 Freehand
- 😀 Image Support
- 🚀 Plugin-based Architecture - Extensible
- 🖼️ 📃 Export to PNG, JPG, JSON(.drawnix)
- 💾 Auto-save (Browser Storage)
- ⚡ Edit Features: Undo, Redo, Copy, Paste, etc.
- 🌌 Infinite Canvas: Zoom, Pan
- 🎨 Theme Support
- 📱 Mobile-friendly
- 📈 Support mermaid syntax conversion to flowchart
- ✨ Support markdown text conversion to mind map(New 🔥🔥🔥)
- 🤖 MCP server (
@mindnest/mcp-server) — AI assistants (Claude Desktop, Claude Code, …) can create, query, and edit.drawnixmindmaps via 10 stdio/JSON-RPC tools. See docs/features/mcp-server.md.
About the Name
Drawnix is born from the interweaving of Draw and Phoenix, a fusion of artistic inspiration.
The Phoenix symbolizes endless creativity, while Draw represents humanity's most fundamental form of expression. Here, each creation is an artistic rebirth, every stroke a renaissance of inspiration.
Like a Phoenix, creativity must rise from the flames to be reborn, and Drawnix stands as the guardian of both technical and creative fire.
Draw Beyond, Rise Above.
About Plait Drawing Framework
Drawnix is positioned as an out-of-the-box, open-source, and free tool product. It is built on top of the Plait framework, which is our company's open-source drawing framework representing significant technical accumulation in knowledge base products(PingCode Wiki).
Drawnix uses a plugin architecture, which is technically more complex than the previously mentioned open-source tools. However, this plugin architecture has its advantages: it supports multiple UI frameworks (Angular, React), integrates with different rich text frameworks (currently only supporting Slate framework), enables better business layer separation in development, allows development of various fine-grained reusable plugins, and can expand to more whiteboard application scenarios.
Repository Structure
drawnix/
├── apps/
│ ├── web # drawnix.com
│ │ └── index.html # HTML
├── dist/ # Build artifacts
├── packages/
│ └── drawnix/ # Whiteboard application core
│ └── react-board/ # Whiteboard react view layer
│ └── react-text/ # Text rendering module
│ └── mcp-server/ # MCP server (@mindnest/mcp-server) for AI mindmap editing
├── package.json
├── ...
└── README.md
└── README_en.md
Try It Out
https://drawnix.com is the minimal application of drawnix.
I will be iterating frequently on drawnix.com until the release of the Dawn version.
Development
npm install
npm run start
Docker
docker pull pubuzhixing/drawnix:latest
Dependencies
- plait - Open source drawing framework
- slate - Rich text editor framework
- floating-ui - An awesome library for creating floating UI elements
Contributing
Any form of contribution is welcome:
-
Report bugs
-
Contribute code
Thank you for supporting
Special thanks to the company for its strong support for open source projects, and also to the friends who contributed code and provided suggestions to this project.