Skip to content

feat(apollon): add collaborative Apollon UML editor app - #598

Merged
dschmidt merged 12 commits into
mainfrom
feat/web-app-apollon
Oct 13, 2026
Merged

dschmidt merged 12 commits into
mainfrom
feat/web-app-apollon

Conversation

@dschmidt

@dschmidt dschmidt commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds web-app-apollon: collaborative UML diagrams in OpenCloud Web, built on the Apollon editor from TUM.

  • Registers for .apollon files and adds a "UML diagram" entry to the "New" menu. A new file starts with a choice of diagram type (all 13 Apollon types).
  • Collaboration through the Yjs session of the app wrapper, like the Excalidraw app: live sync, remote cursors, selection highlights, a presence bar and following a collaborator's viewport.
  • Saving, the unsaved-changes guard and closing come from the OpenCloud frame. Read-only without write access, follows the light or dark theme.
  • File format: the bare Apollon model as JSON, as the Apollon VS Code extension reads and writes it.

Screenshots

Apollon-2026-10-07_06.58.38.mp4

Notes

Known limitations

  • Two users changing the same element at the same time: the last change wins.
  • A file that is not in the exact output format of the app can be shown as unsaved although nothing changed. The app wrapper compares the serialized text with the file content, so this is not specific to this app.
  • Apollon's own labels are English only.
  • No export to SVG, PNG or PDF.

Related Issue

None.

How Has This Been Tested?

  • Against the published @tumaet/apollon 5.4.0: unit tests of the Yjs adapter (14), type check and the e2e test (create, choose a type, draw, save, reload) in Chromium and Firefox against OpenCloud 8.1.0.
  • Manually with two browsers and two users, against a local Apollon build from before the upstream reviews (2026-10-07), not repeated with 5.4.0: live sync, cursors, selection and presence, following a viewport, read-only shares, public links (view and edit), theme switch, an external write to the open file, and a file that is not an Apollon model.

Types of changes

  • Bugfix
  • Enhancement (a change that doesn't break existing code or deployments)
  • Breaking change (a modification that affects current functionality)
  • Technical debt (addressing code that needs refactoring or improvements)
  • Tests (adding or improving tests)
  • Documentation (updates or additions to documentation)
  • Maintenance (like dependency updates or tooling adjustments)

Opens and edits .apollon files with the Apollon editor, on top of the Yjs
session of the app wrapper: live sync, remote cursors, selection highlights
and a presence bar. A new file starts with a choice of diagram type.

Needs an Apollon release with a host-owned Y.Doc and the editor-free model
helpers (ls1intum/Apollon#858, #860). Until then the pinned 5.3.1 lacks these
APIs, so type check, unit tests and build fail.
@dschmidt
dschmidt force-pushed the feat/web-app-apollon branch from 2581907 to 4b0131f Compare October 12, 2026 17:33
5.4.0 is the first release with the model helpers, the host-owned Y.Doc
and the two collaboration fixes the app depends on.
@dschmidt
dschmidt marked this pull request as ready for review October 12, 2026 22:14
@dschmidt
dschmidt force-pushed the feat/web-app-apollon branch from 6440180 to f97839d Compare October 13, 2026 08:37

@JammingBen JammingBen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works like a charm!

Could you please add a CHANGELOG.md file with version 1.0.0 so we can release it?

Comment thread pnpm-workspace.yaml Resolved
@dschmidt

Copy link
Copy Markdown
Contributor Author

Thanks for testing! I added packages/web-app-apollon/CHANGELOG.md with version 1.0.0 in 923a686.

@dschmidt
dschmidt merged commit 98d26a1 into main Oct 13, 2026
5 checks passed
@dschmidt
dschmidt deleted the feat/web-app-apollon branch October 13, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants