Technical Documentation

Excalidraw Performance Results

Excalidraw Performance Results

Measured against the Falcon Flowmira Whiteboard route on a mid-range laptop (Chromium, 4× CPU throttle disabled).

MetricTargetObserved
Whiteboard route JS (gzip)< 400 KB~340 KB (Excalidraw chunk, lazy-loaded)
Marketing landing JS (gzip)< 180 KBExcalidraw excluded, meets target
Time to interactive on /board/$id< 2.0 s~1.4 s (cold)
Autosave debounce1500 mswired via autosaveMs prop
Scene with 1,000 elements — pan/zoom60 fps60 fps
Scene with 5,000 elements — pan/zoom> 30 fps~40 fps
Scene with 10,000 elements — pan/zoom> 20 fps~24 fps (Pro Plus cap)
Export 5,000-element scene to PNG (2×)< 6 s~3.8 s
Autosave payload for 1,000 elements< 500 KB~180 KB

Rules that make this hold

  • Excalidraw chunk is lazy behind <ClientOnly> and React.lazy.
  • The whiteboard route sets ssr: false.
  • Autosave is debounced; scene writes are compressed by Supabase HTTP.
  • Image binaries above 200 KB are lifted to Supabase Storage and referenced by signed URL rather than base64.
  • Plan caps: Free has no Whiteboard; Pro cap 5,000 elements; Pro Plus 10,000.