Local Hand-Drawn Whiteboard
Organize sketches with shapes, arrows and Chinese text locally in your browser, then export .excalidraw / SVG backups — no login, no upload, no collaboration.Processed locally · not saved by default
Operations
Whiteboard (local scene model)
Compose deterministic scenes from shapes + arrows + Chinese text; two presets, .excalidraw import/serialization round-trips, an explicit local draft, confirm-before-replace, a 48px brand bar and safety-policy audits.
Export & backup
Export a local scene as .excalidraw (re-importable with identical positions) or SVG (download content only, never injected into the DOM); PNG needs a real injected rasterizer and otherwise errors explicitly.
Real examples and limits
This delivery is a deterministic, testable scene element model: shape/arrow/Chinese-text .excalidraw serialization with position-stable re-import, SVG download text, an explicit local-draft switch (al:draw:v1:*), and confirm-before-replace semantics for new/preset/import — all covered by Node tests. The real Excalidraw React/Canvas engine, PNG rasterization and self-hosted fonts are NOT integrated this round; PNG export needs an injected real rasterizer and otherwise fails explicitly. No ads, collaboration, Firebase, Plus, official-account entries or runtime requests in the canvas area.
FAQ
Is canvas content uploaded?
No. The scene model, drafts and exports run locally; the runtime request allowlist permits only same-origin static assets and local Object URLs. Official collaboration / Firebase / Sentry hosts are rejected.
Is my canvas saved by default?
No. Text is not persisted by default; only an explicit Local draft switch writes al:draw:v1:enabled / :scene / :savedAt. Turning it off removes our keys and stops persistent writes; Clear this site only never touches other sites. On shared devices, leave drafts off.
Will New or a preset overwrite my canvas?
Never silently. When the current canvas has unsaved changes, the model returns confirm-required with a token and zh/en warning; applying requires that exact token, while cancelling leaves the original canvas hash unchanged. An empty canvas loads directly.
Is exported SVG displayed inline?
No. SVG is generated as download content only; arbitrary SVG text goes through a testable threat scan (script/on*/foreignObject/image/use/javascript:, etc.), the DOM policy is always download-only and safeText is always null. Chinese text is XML-escaped.
Can I draw real freehand strokes now?
The real canvas engine is not integrated in this round; there is no browser binary and the upstream baseline was not fully built. We provide a deterministic scene model and export/import contract tests. Real Canvas interaction, 390/768/1440 widths and on-device gestures are unverified and left to later acceptance.
When do related-site links work?
diagram, mind and shot are configuration-only (planned) and produce no broken links; usable links appear only after those sites go live.