clone

a browser-first diagram editor with live svg previews, local drafts and encrypted, accountless sharing

main
diagramzip / README.md
README.md 4.1K rendered
1# diagram.zip23[diagram.zip](https://diagram.zip) is a browser-first diagram editor with live SVG previews, local drafts, editable SVG files, and encrypted, accountless sharing. The repository contains the editor, documentation, persistence API, renderer catalog, and the isolated renderer units behind the service.45## What is here67| Path | Purpose |8| --- | --- |9| `apps/editor/` | Browser editor and local development entry point |10| `apps/docs/` | Docusaurus site published at [docs.diagram.zip](https://docs.diagram.zip) |11| `services/api/` | Cloudflare service for encrypted, accountless persistence |12| `services/shell/` | Cloudflare application shell and routing service |13| `renderers/catalog/` | Catalog service for renderer capabilities and health |14| `renderers/browser-run/` | Private Browser Run bridge and its pinned browser frames |15| `renderers/edge/` | JavaScript and WebAssembly renderer units |16| `renderers/python/` | Python renderer and translation units |17| `renderers/shared/` | Contracts shared across renderer runtimes |18| `shared/svg/` | Shared SVG normalization and presentation logic |19| `examples/diagrams/` | Canonical diagram corpus shared by the editor and renderer tests |20| `skills/` | Diagram-specific agent skills and reference material |2122Top-level directories describe architectural roles. The production application and renderer plane run on Cloudflare; there is no JVM gateway or shared rendering server.2324## Development2526The JavaScript workspace uses npm with Node.js 24.2728```sh29npm install30npm run dev:editor31```3233Useful checks:3435```sh36npm run test:editor37npm run build:editor38npm run build:docs39npm run test:edge40npm run test:api41```4243## Release4445Production is released manually through one repository entry point:4647```sh48./release.sh49```5051The command requires a clean `main` worktree. Before asking for confirmation,52it installs every locked dependency set and runs all tests and builds. It also53verifies generated types and runtime license notices, then dry-runs every54JavaScript and static-asset Worker. It deploys the renderer plane in55service-binding order, applies D1 migrations, and deploys the API, editor shell,56and documentation. Public smoke tests complete the release. Run57`./release.sh --check` to execute the same local gate without authentication or58deployment.5960Individual package deployment commands remain useful for development, but they61are not the production release procedure.6263## Architecture6465The editor runs at `diagram.zip`. Rendering is split into isolated HTTP units selected by hostname at `{engine}.render.diagram.zip`; the renderer catalog documents the contract and capabilities for all supported engines. Mermaid and diagrams.net execute behind a private Browser Run bridge. The other 28 renderers run in JavaScript, Python, or WebAssembly Workers. The application never executes renderer code directly.6667Server persistence is opt-in. **Publish** creates an open alias, while68**Encrypt & Publish** creates an encrypted alias. Anonymous drafts can use69**Save as File** to download an editable enriched SVG without server state.70See [`apps/editor/PERSISTENCE.md`](apps/editor/PERSISTENCE.md) for the71persistence and security contract.7273## Project history and licensing7475DiagramZip began with an import of the MIT-licensed Kroki v0.32.1 source tree and has since replaced the application, documentation, persistence, and renderer delivery architecture. The Git repository is maintained as an independent project; Kroki and other retained dependencies remain credited in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md) and the nested license files.7677Except where otherwise noted, original DiagramZip code is distributed under the [MIT License](LICENSE). This repository is a multi-license distribution: bundled renderers, WebAssembly artifacts, vendored source, fonts, and visual assets retain their respective licenses and terms. Review [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md), `licenses/`, and the notices beside each renderer before redistribution.7879## Contributing and security8081See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the development workflow. Please report security issues according to [`SECURITY.md`](SECURITY.md), not through a public issue.