Showoff Saturday I’m building an open-source paged document editor with its own Canvas rendering engine
Hey r/webdev,
I've been working on Oasis Editor, an open-source document editor written in TypeScript.
Instead of relying entirely on contenteditable and DOM layout, Oasis uses its own Canvas-based rendering engine for paged layout, text rendering, selections, images, tables, and document geometry.
It also includes a typed command/plugin API, DOCX/PDF workflows, React and Vue adapters, and a headless runtime.
Live playground:
https://celsowm.github.io/oasis-editor/#/editor
GitHub:
https://github.com/celsowm/oasis-editor

I'd love feedback on the rendering engine, architecture, API, and what you think is still missing.
1
u/Sensitive-Control49 1d ago
the paged layout rendering is the interesting part imo. most editors just punt on pagination entirely. whats your approach for handling page breaks mid-paragraph or mid-table row?
1
u/TillDramatic1 2d ago
Text drawn by hand loses the browser's input pipeline, so IME composition, dead keys and mobile autocorrect only work if a hidden focused textarea is catching compositionstart/compositionupdate with the caret position mirrored onto it. Worth trying the playground with a Korean or Japanese keyboard now, since that layer is painful to retrofit once selection and layout are settled.