Beem Slide

Present mode

A presenter console with the next page, notes, a timer and a laser — built for a room.

Present mode is not a fullscreen toggle with extra steps. The assumption is that you are standing up, the deck is on a projector you cannot read from where you stand, and the useful screen is the one in front of you.

Playback

Hit Present on the deck. The canvas goes fullscreen and scales to whatever the display is — there is no letterboxing arithmetic to do, because the canvas is a fixed 1920 × 1080 either way.

KeyDoes
Space PgDnNext page
PgUpPrevious page
Home / EndFirst / last page
OOverview grid — every page at once, click to jump
LLaser pointer
B / WBlank the screen to black / white
NSpeaker notes
POpen the presenter console in a second window
H or ?The shortcut list, in case this page is not to hand
EscLeave

B is the one worth remembering. When a question turns into a conversation, a black screen puts the attention back in the room.

The presenter console

P opens a separate window meant for the laptop while the deck itself is mirrored to the projector. It carries the current page, the page coming next, the notes for where you are, and a timer counting from when you started.

Drag that window to your own screen and put the deck on the external display. The two stay in step.

Speaker notes

Notes are per page, and the normal way to write them is in the app — open notes and type. They are stored next to the deck in slides/<id>/notes.json, which means they are plain text in your repository: they diff, they review, and a colleague's edits arrive with a git pull rather than being locked inside somebody's browser.

Keeping them out of index.tsx is deliberate. Editing a note does not invalidate the page module, so writing notes never re-renders the deck underneath you.

A deck can also carry notes in its source — an array aligned index-for-index with the page array:

export const notes = [
  'Open with the analyst quote from yesterday.',
  undefined,
  'Pause here. The chart is the hand-off.',
];

Which one is read depends on where the deck is running. The dev server reads notes.json, because that is the file the notes editor writes. A static build has no dev endpoint to ask, so it falls back to the module's notes export — so if you present from beem-slide build output, put the notes you need in the source.

On this page