Build hierarchical organizational charts with names, roles, departments and colour coding. Zoom and export as PNG or PDF.
Click Add Node to create your first person or role
Org Chart Maker is a free, browser-based tool for creating hierarchical organizational charts. Add people or roles as nodes, set their reporting relationships, colour-code by team or department, and export the result as a PNG image or PDF document.
It handles any tree structure: flat teams with one leader, deep reporting chains, or multi-root charts where several independent teams are shown side by side. Clicking any node reveals a selection panel with quick actions — add a direct report, edit, remove, or delete an entire branch. The chart auto-saves every change in your browser.
Typical uses: company structures, project team hierarchies, department maps, responsibility matrices, reporting line diagrams, and training materials.
+ icon that appears.+ / − buttons, reset to 100% with 1:1, or click Fit to make the full chart visible at once. Scroll to pan around large charts.Nodes are stored as a flat array with parentId references. On each render, this is converted to a tree structure in memory, then a recursive layout algorithm computes every node's x and y position.
The layout uses the Reingold–Tilford variant: first, each subtree's width is computed bottom-up (subtreeWidth = max(nodeWidth, sum of children widths + gaps)). Then nodes are placed top-down — each parent is horizontally centred over its children by offsetting it by (subtreeWidth − nodeWidth) / 2. This produces compact, non-overlapping trees without deep recursion.
Connector lines use elbow routing: each line goes vertically from the parent's bottom-center to a midpoint Y, then horizontally to the child's X, then vertically to the child's top-center. This avoids diagonal crossing lines that are hard to follow in dense charts.
The chart is rendered as absolutely-positioned div nodes over an SVG connector layer, all inside a scrollable container with a CSS scale() transform for zoom. Export uses html2canvas at 2× DPR scale fed into jsPDF, both loaded on-demand via dynamic import(). State persists to localStorage via Alpine.js reactive watchers.
Let us know what's wrong with Org Chart Maker.
Thank you — report received!