All in one open-source whiteboard tool with mind, flowchart, freehand and etc.
  • TypeScript 93.1%
  • SCSS 6%
  • JavaScript 0.8%
Find a file
jesse 39722b4911 ci: optimize workflow execution (#9)
## 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
2026-05-28 03:23:13 +02:00
.forgejo/workflows ci: optimize workflow execution (#9) 2026-05-28 03:23:13 +02:00
.github/workflows ci: optimize workflow execution (#9) 2026-05-28 03:23:13 +02:00
.vscode feat(drawnix): init drawnix package 2024-06-17 20:45:21 +08:00
apps refactor: rename @mindest/mindest to @mindnest/mindnest (#8) 2026-05-27 15:40:28 +02:00
deferred feat: add iThoughtsX-style mind map popup toolbar components 2026-04-29 13:13:42 -04:00
docs feat(drawnix): support nested summary rendering 2026-05-04 10:44:02 -04:00
issues fix(drawnix): guard blank-area marquee drops 2026-05-05 17:24:26 -04:00
notes docs(drawnix): plan style settings button 2026-05-04 16:48:31 -04:00
packages refactor: rename @mindest/mindest to @mindnest/mindnest (#8) 2026-05-27 15:40:28 +02:00
plans-cc docs(drawnix): plan markdown save format 2026-05-25 16:30:25 -04:00
scripts refactor: rename @mindest/mindest to @mindnest/mindnest (#8) 2026-05-27 15:40:28 +02:00
sessions feat(drawnix): support nested summary rendering 2026-05-04 10:44:02 -04:00
.dockerignore ci: a tiny docker image (#127) 2025-04-15 12:10:07 +08:00
.editorconfig Initial commit 2024-06-17 09:36:17 +08:00
.gitignore feat(mcp-server): complete Phase 1–6 implementation with docs, tests, and project config 2026-04-30 21:16:55 -04:00
.mcp.json feat(mcp-server): complete Phase 1–6 implementation with docs, tests, and project config 2026-04-30 21:16:55 -04:00
.prettierignore Initial commit 2024-06-17 09:36:17 +08:00
.prettierrc Initial commit 2024-06-17 09:36:17 +08:00
CFPAGE-DEPLOY.md Add files via upload (#154) 2025-06-23 09:36:55 +08:00
CHANGELOG.md build: release 0.4.0 2026-04-19 20:49:46 +08:00
Dockerfile ci: update base image and github action (#396) 2026-04-17 20:38:41 +08:00
eslint.config.mjs build: update tooling and project docs 2026-04-28 13:25:17 -04:00
jest.config.ts Initial commit 2024-06-17 09:36:17 +08:00
jest.preset.js Initial commit 2024-06-17 09:36:17 +08:00
LICENSE chore: update README (#21) 2024-10-29 19:32:52 +08:00
nx.json build: update tooling and project docs 2026-04-28 13:25:17 -04:00
package-lock.json refactor: rename @mindest/mindest to @mindnest/mindnest (#8) 2026-05-27 15:40:28 +02:00
package.json refactor: rename @mindest/mindest to @mindnest/mindnest (#8) 2026-05-27 15:40:28 +02:00
README.md feat(mcp-server): complete Phase 1–6 implementation with docs, tests, and project config 2026-04-30 21:16:55 -04:00
tsconfig.base.json refactor: rename @mindest/mindest to @mindnest/mindnest (#8) 2026-05-27 15:40:28 +02:00

Drawnix logo and name

Open-source whiteboard tool (SaaS), an all-in-one collaborative canvas that includes mind mapping, flowcharts, freehand and more.

Product showcase

Whiteboard with mind mapping, flowcharts, freehand drawing and more

Featured|HelloGitHub

plait-board%2Fdrawnix | Trendshift

中文

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 mapNew 🔥🔥🔥
  • 🤖 MCP server (@mindnest/mcp-server) — AI assistants (Claude Desktop, Claude Code, …) can create, query, and edit .drawnix mindmaps 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.

PingCode

License

MIT License