Skip to content

Developer docs

Rúfol is a pnpm monorepo on Vite+. The domain lives in pure TypeScript packages with no DOM and no framework. The apps import them.

Package What it holds
@draw/shapes The shape model: frames, drawables, bindings, styles, selection.
@draw/sketch The hand-drawn renderer: rough edges, fills, ink.
@draw/editor Editing state: the document, selection, gestures and undo.
@draw/brand The Rúfol tokens, fonts, logo and roughness words.
App What it is
apps/app The Rúfol whiteboard, a client-only SPA.
apps/site The landing page.
apps/docs This site.
apps/playground A scratch page to try the packages by hand.
Command What it does
vp install Install dependencies.
vp check Format, lint and type check the workspace.
vp run -r test Run every package’s tests.
vp run ready The full gate: check, tests and every build.
vp run @draw/docs#dev Preview this site.

Architecture decision records live in docs/decisions/ and research notes in docs/research/. They are Markdown files in the repository, read next to the code, and are not published on this site.

Read the documentation workflow before your first change. Every change ships with its docs.