Open source
Built on open source.
Glyph is built on the shoulders of dozens of open-source projects. This page lists every one of them, their license, and what they do for us.
Diagram engines
18| Project | License | Used for |
|---|---|---|
| Mermaid Renders the Mermaid engine. We bundle Mermaid 11 directly. | MIT | client-side rendering of Mermaid diagrams |
| PlantUML Renders the PlantUML engine. We do NOT bundle PlantUML; we proxy to the official public server at plantuml.com. | GPL v3 (server, not bundled) | remote rendering of PlantUML diagrams via /api/plantuml |
| Graphviz (via @hpcc-js/wasm) Graphviz DOT rendering compiled to WebAssembly. | Apache-2.0 / EPL-1.0 | client-side DOT rendering |
| Vega + Vega-Lite (vega-embed) Grammar-of-graphics charts. | BSD-3-Clause | scientific chart rendering |
| Plotly.js Publication-quality scientific + 3D + 4D plots. | MIT | Plotly engine rendering |
| Nomnoml Sketchy UML / whiteboard diagrams. | MIT | Nomnoml engine rendering |
| WaveDrom Digital timing diagrams + register bit-fields. | MIT | WaveDrom engine rendering |
| KaTeX LaTeX math typesetting. | MIT | math equation rendering |
| smiles-drawer 2-D molecular structures from SMILES. | MIT | SMILES engine rendering |
| 3Dmol.js Interactive 3-D molecular visualisation. | BSD-3-Clause | 3-D protein and molecule viewer |
| Cytoscape.js Network / graph visualisation. | MIT | Cytoscape engine rendering |
| bpmn-js BPMN 2.0 modeler (Camunda). MIT terms plus one extra condition: the bpmn.io watermark linking back to bpmn.io must stay fully visible in rendered diagrams. | bpmn.io license (MIT + watermark clause) | the dedicated /bpmn workspace |
| bpmn-io ecosystem bpmn-js-properties-panel, @bpmn-io/properties-panel, camunda-bpmn-js-behaviors, zeebe-bpmn-moddle, bpmnlint and bpmnlint-loader. | MIT | BPMN properties editing, Zeebe/Camunda extensions, and BPMN linting |
| @mermaid-js/layout-elk Mermaid's ELK-based layout engine. | MIT | ELK layout for Mermaid diagrams |
| three.js WebGL 3D engine. | MIT | Floorplan-3D engine rendering + camera controls |
| @xyflow/react (React Flow) Node-based UI framework for the Weave canvas. | MIT | Weave workspace canvas + minimap |
| markmap-lib / markmap-view Mindmaps from Markdown bullets. | MIT | Markmap engine rendering |
| resvg-js Rust-based SVG → PNG rasteriser used server-side. | MPL-2.0 | server-side PNG / PDF export via /api/export |
Canvas, layout & documents
3| Project | License | Used for |
|---|---|---|
| elkjs The Eclipse Layout Kernel compiled to JavaScript. Lazily imported (elk.bundled.js) so the ~150KB cost is only paid on first auto-layout. | EPL-2.0 | one-click auto-layout on the Weave / canvas graphs |
| PDF.js (pdfjs-dist) Mozilla's PDF renderer. Text extraction runs entirely in the browser — no PDF is uploaded to our servers. | Apache-2.0 | reading PDFs for Evidence + Study ingest (worker served from /pdf.worker.min.mjs) |
| DOMPurify XSS sanitiser for HTML and SVG. | MPL-2.0 OR Apache-2.0 | sanitising every rendered SVG / HTML fragment (lib/sanitize.ts) |
The platform voice (on-device)
3| Project | License | Used for |
|---|---|---|
| kokoro-js Runs the Kokoro-82M speech model in the listener's browser. The text being read never reaches our servers. | Apache-2.0 | read-aloud in the learning surfaces |
| Kokoro-82M (model weights) The voice model itself, by hexgrad. Downloaded once by the listener's browser from the Hugging Face CDN and cached locally — we do not redistribute the weights. | Apache-2.0 | on-device speech synthesis |
| Transformers.js + phonemizer @huggingface/transformers runs the ONNX model in WebGPU/WASM; phonemizer turns text into phonemes. | Apache-2.0 / MIT | model execution and text preprocessing for the voice |
Editor + UI
11| Project | License | Used for |
|---|---|---|
| Monaco Editor VS Code's editor in the browser. | MIT | the code editor pane |
| Next.js React framework + Vercel deployment target. | MIT | application framework |
| React UI library. | MIT | component model |
| Tailwind CSS Utility-first CSS. | MIT | styling |
| Lucide Icon set. | ISC | UI icons |
| Zustand State management. | MIT | client state |
| Papa Parse CSV parsing. | MIT | Data → Chart panel |
| lz-string URL-safe compression. | MIT | shareable diagram links |
| jsPDF Client-side PDF generation. | MIT | PDF export |
| html-to-image DOM → PNG. | MIT | PNG fallback export path |
| plantuml-encoder Client-side encoder for PlantUML URLs. | MIT | encoding PlantUML source for /api/plantuml proxy |
Icon library
9| Project | License | Used for |
|---|---|---|
| Material Design Icons (mdi) Pictogrammers' Material Design Icons, bundled via @iconify-json/mdi. | Apache-2.0 | the built-in offline icon library |
| Tabler Icons Paweł Kuna's Tabler set, bundled via @iconify-json/tabler. | MIT | the built-in offline icon library |
| Phosphor Phosphor Icons core set, bundled via @iconify-json/ph. | MIT | the built-in offline icon library |
| Health Icons Resolve to Save Lives' public-health icon set, bundled via @iconify-json/healthicons. | MIT | the built-in offline icon library (biology / medical diagrams) |
| Remix Icon Remix Design's icon set, bundled via @iconify-json/ri. | Apache-2.0 | the built-in offline icon library |
| Carbon IBM's Carbon Design System icons, bundled via @iconify-json/carbon. | Apache-2.0 | the built-in offline icon library |
| Lucide (icon set) Lucide Contributors' icon set, bundled via @iconify-json/lucide. | ISC | the built-in offline icon library |
| Font Awesome 6 Solid Dave Gandy / Fort Awesome. The one bundled pack whose license requires attribution wherever its icons are used — if you publish artwork containing fa6-solid icons, credit Font Awesome alongside it. | CC-BY-4.0 (attribution required) | the built-in offline icon library |
| Iconify Free public icon API providing 200,000+ icons across hundreds of collections (Healthicons, MDI, Tabler, Logos, Simple-Icons, Noto, Lucide, etc.). | MIT / various per collection | the Icon library modal's optional online tier + Biology/Weave icon search |
AI
2| Project | License | Used for |
|---|---|---|
| Anthropic Claude API Generates diagrams from natural-language descriptions, refines them iteratively, explains errors, restyles to journal palettes, converts to LaTeX/TikZ. | Commercial API | /api/ai, /api/tikz |
| OpenAI API Alternative AI provider — handles diagram generation, refine, vision (Photo → Engine). | Commercial API | /api/ai with X-User-Ai-Provider: openai or BYOK |
Backend
9| Project | License | Used for |
|---|---|---|
| Supabase Postgres + Auth + Realtime + Storage backbone. Stores profiles, plans, cloud-synced workspaces, API keys, encrypted BYOK, audit log. | Apache-2.0 | every backend persistence path |
| Supabase Auth (@supabase/ssr) GitHub + Google OAuth sign-in with cookie-based sessions; no password storage. | MIT | sign-in, /auth/callback, session refresh |
| Stripe Billing for Starter and Plus plans — checkout sessions, webhooks, customer portal. | Commercial API | /api/stripe/checkout, /api/stripe/portal, /api/stripe/webhook |
| Upstash Redis (optional) Cross-container rate-limit storage when configured. Falls back to in-memory. | Apache-2.0 (client) / Commercial (service) | lib/server/rate-limit.ts KV backend |
| Anthropic SDK (@anthropic-ai/sdk) TypeScript client for the Anthropic API. | MIT | server-side calls from /api/ai/* |
| OpenAI SDK (openai) TypeScript client for the OpenAI API. | Apache-2.0 | server-side calls from /api/ai/* when OpenAI is the provider |
| Stripe Node Server SDK for checkout, portal and webhook verification. | MIT | /api/stripe/* |
| undici Node's HTTP client, used for outbound fetches with explicit timeouts. | MIT | server-side HTTP (proxied renders, provider calls) |
| yaml YAML parser / stringifier. | ISC | front-matter and config parsing |
Attribution conditions
Two dependencies attach conditions beyond a notice file. bpmn-js is MIT-licensed on the condition that the bpmn.io watermark linking back to bpmn.io stays fully visible in rendered BPMN diagrams. Font Awesome 6 Solid is CC-BY-4.0, which requires attribution wherever its icons are used — credit Font Awesome alongside any artwork or export containing them.
Trademark notice
Glyph is the name of this studio. Mermaid, PlantUML and Font Awesome are separate projects this studio renders or bundles, and their names are used here nominatively — to identify the syntax and assets this studio is compatible with. "Mermaid" is a trademark of Mermaid Chart Inc, "PlantUML" a trademark of Arnaud Roques, and "Font Awesome" a trademark of Fonticons, Inc. No endorsement by, or affiliation with, their respective owners is implied.