TeamGraph turns your team into reusable people records and displays them three ways — an organization chart, a card grid, or a directory list — from one Gutenberg block or shortcode. A drag-and-drop builder lives in wp-admin; no page builder required.
Accessible by construction, not by fallback. Most org chart plugins draw a diagram and bolt on a text alternative. TeamGraph inverts that: every view is real, semantic HTML — the chart is a nested list, laid out with pure CSS. Screen readers announce the reporting hierarchy natively, keyboard focus is visible everywhere, visitors without JavaScript get the complete chart, and on phones the tree reflows into a readable list instead of forcing you to pinch-zoom a boardroom diagram.
On the front end (Gutenberg block or [teamgraph] shortcode):
In wp-admin (fast React screens under “TeamGraph”):
Structured data, not drawings
Members are a custom post type (“reports to” is the post hierarchy; the biography is the post content), departments and locations are taxonomies, and every safeguard is enforced server-side: capability checks per action, reporting-cycle prevention, and color validation. Deleting a manager automatically moves their reports up a level — no orphaned branches, no blocked deletes — and deleted members go to a trash you can restore from, rebuilding their branch.
TeamGraph ships with its complete, unminified source. The two admin bundles in build/ (admin.js and block.js) are compiled from src/ with @wordpress/scripts, which minifies its production output; the corresponding sources and the build configuration are included in the plugin so the compiled files can be reproduced and reviewed.
src/admin/ — the wp-admin React screens. All screens share one bundle and mount by the root element’s data-page attribute.src/block/ — the block editor bundle for the TeamGraph Chart block.webpack.config.js and package.json — the build configuration.To rebuild the bundles from source, run this in the plugin directory:
npm install && npm run build
Everything else runs unbuilt: the PHP in includes/ is plain source, and the front end in assets/frontend/ is hand-written vanilla JavaScript and CSS with no build step and no dependencies.