nextcloud / nextcloud/whiteboard

Pick up upstream sticky notes (excalidraw#12064) in the next @nextcloud/excalidraw bump

Open
#1,336 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
215
Forks
39
Avg merge
1d 3h
Merged PRs (30d)
32

Description

Problem

Whiteboard has no sticky note tool. To get the equivalent of a note, a user has to draw a rectangle, assign a background color, enter bound text, and then manually reduce the font size so the text fits. In a teaching session with students that is four steps too many, and it has to be explained before the first exercise can start.

This is already solved upstream

excalidraw/excalidraw#12064 (feat(editor): sticky notes) was merged into master on 2026-09-10 and closes excalidraw/excalidraw#9696, which was filed from the Nextcloud side.

It adds a dedicated stickynote element and tool (N):

  • the text field is focused on creation — no extra keypress to start typing
  • the font auto-fits: fontSizeMax is the user's ceiling, the effective fontSize is derived from it, and the note only grows past its base height once the text still overflows at the minimum font
  • notes are their own color domain, so note colors don't fight the shape palette
  • the element skeleton API supports { "type": "stickynote", x, y, label: { text, fontSize? } }

What's missing here

package.json pins @nextcloud/excalidraw to 0.18.0-6135eb0 (published 2026-05-12). The newest published fork snapshot, 0.18.0-fe2343d, also predates the merge. So the feature can only arrive with a fork rebase onto a master state that includes #12064.

Request

Please include #12064 in the scope of #1115 (bump and release nextcloud/excalidraw), and treat the stickynote element as something the file format and the collaboration backend need to round-trip. Happy to test on a production instance once a snapshot is available.

Context

We generate course whiteboards from a JSON spec into .whiteboard files. Notes are currently emitted as rectangle + bound text, with a non-empty placeholder text that exists purely to carry our typography — an empty bound text is discarded on load, and the one recreated on first keystroke picks up the tool defaults (20px) instead. We also ship an on-board usage hint telling participants to double-click a field rather than reach for the free text tool. A native stickynote would let all of that go away.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with package.json and the bump and release work in issue #1115, then verify that the fork snapshot includes upstream Excalidraw PR #12064. Review the existing .whiteboard JSON generation and collaboration round-trip paths; done means stickynote elements survive both without the rectangle-plus-bound-text workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
backend, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.