Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Co-authored-by: renovate[bot] <29139614+renovate[bot]>

Git stats


Failed to load latest commit information.
Latest commit message
Commit time
September 28, 2022 13:32
September 28, 2022 13:32
June 14, 2021 23:08
May 13, 2021 14:03
September 17, 2022 21:15



Documentation | Live Editor

pintora Spanish for "female painter"

Pintora is an extensible javascript text-to-diagrams library that works in both browser and Node.js.

Expressing your thoughts in a diagram is better than a thousand words. With the help of pintora.js, you can create diagrams with intuitive text.

Heavily inspired by Mermaid.js and PlantUML.


  • In browser side, output SVG or Canvas.
  • In Node.js side, output PNG/JPG/SVG file.
  • Outputs are clean and self contained, won't pollute the page with global style.
  • Modular and highly extensible, provide a plugin system for diagram developer to write and distribute their own diagrams. Here is a tutorial Write a custom diagram | Pintora.

Diagram types

  • Sequence Diagram
  • Entity Relationship Diagram
  • Component Diagram
  • Activity Diagram
  • Mind Map
  • Gantt Diagram
name preview
Sequence Diagram
Entity Relationship Diagram
Component Diagram
Activity Diagram
Mind Map
Gantt Diagram
DOT Diagram

📖 Documentation

Check the online documentation and demo for more details.

💻 Editor Support

  • VSCode extension pintora-vscode, providing syntax highlight and preview support for .pintora file and markdown code fence.

Related Projects

🔭 Roadmap

  • Sequence Diagram and Entity Relationship Diagram
  • Pintora node.js cli
  • PlantUML style Component diagram
  • Theme config
  • PlantUML style Activity Diagram
  • Mind Map
  • Gantt Diagram
  • Class Diagram
  • Universal style customization solution
  • Load diagram implementation and canvas renderer only when needed

If you have good thoughts or feature requests, please feel free to start a new discussion.