Sitelet https://github.com/opencloud-eu/web-extensions/pull/572
Skip to content

feat: add collaborative whiteboard app - #572

Merged
tammi-23 merged 10 commits into
mainfrom
feat/excalidraw-app
Oct 5, 2026
Merged

tammi-23 merged 10 commits into
mainfrom
feat/excalidraw-app

Conversation

@tammi-23

Copy link
Copy Markdown
Contributor

This adds the excalidraw app: opencloud-eu/web#3111

Comment thread packages/web-app-excalidraw/src/ExcalidrawEditor.vue
Comment thread packages/web-app-excalidraw/CHANGELOG.md Outdated
Comment thread packages/web-app-excalidraw/README.md Outdated
@dschmidt

Copy link
Copy Markdown
Contributor

Thanks for taking care of the extraction

@AlexAndBear

Copy link
Copy Markdown
Member

Can you please add a tx config to the l10n folder, since we use translations in this project. You find examples in the other packages

Comment thread packages/web-app-excalidraw/README.md Outdated
Adds an Excalidraw whiteboard on top of the Groupware yjs infrastructure. The app
contributes the adapter between the .excalidraw file format and the shared Y.Doc
plus a thin React host; everything the user sees inside the editor is Excalidraw's
own UI, including the collaborator avatars it derives from the same awareness.

Also wires the yjs service into the dev stack and the e2e pipeline, which had no
collaboration backend before.
Comment thread packages/web-app-excalidraw/src/index.ts Outdated
The published 8.0.0 does not list yjs and y-protocols/awareness as
external modules yet, so the app bundled its own copy of yjs instead of
taking it from the host and failed with "Yjs was already imported".

The range carries a prerelease so that any 8.1.0 prerelease and the
final 8.1.0 match. minimumReleaseAgeExclude is version exact and needs
the alpha listed explicitly.
pnpm-lock.yaml conflicted with the renovate dependency updates on main.
Resolved by taking main's lockfile and reinstalling, so the extension-sdk
prerelease pin is re-resolved on top of the updated dependencies.
The app takes yjs from the host rather than bundling its own copy. Web
shares it since web#3398, which is not in 8.0.0, the version the CI
image serves. Without it the remote cannot evaluate, the app never
registers and the "New" menu entry the test clicks does not exist.

Uses the existing skipIfWeb fixture, same as web-app-unzip. Remove the
guard once an OpenCloud image ships web 8.1.0 or newer.
The image declares WORKDIR /app and CMD ["node", "src/server.ts"], but
woodpecker runs service containers in the workspace directory, so node
looked for src/server.ts inside the repository and the service died with
MODULE_NOT_FOUND before accepting any connection.
The requirement was only phrased relative to the extension-sdk version,
which a deployment cannot act on. The sdk pin covers the build side
only; which OpenCloud serves the app is up to the deployment, so the
minimum belongs in the docs. Same boundary the e2e guard uses.
@tammi-23
tammi-23 requested a review from AlexAndBear October 1, 2026 10:51

@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.

LGTM 馃憤

@tammi-23
tammi-23 dismissed AlexAndBear鈥檚 stale review October 5, 2026 10:38

Fixed in the meantime

@tammi-23
tammi-23 merged commit 94c92a1 into main Oct 5, 2026
5 checks passed
@tammi-23
tammi-23 deleted the feat/excalidraw-app branch October 5, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants