Skip to content

Bundle size

Lattice is server-driven, but it still ships a React runtime that renders the component tree in the browser. This page explains what that costs and how the bundle is split — and the breakdown at the bottom is live, regenerated by Sonda on every docs build, so it always reflects the current main.

The numbers come from the workbench app build (vite build) — a realistic app that exercises every Lattice feature — not the published package. The npm package itself ships unminified ES modules with React, Inertia, Radix, and TipTap externalized; your app’s bundler tree-shakes and minifies them, so the app build is the honest measure of what a user downloads.

Every component loads eagerly in the entry chunk, except the ones below. Each lazy-loads its heavy dependency from inside the component (React.lazy + dynamic import()), so that dependency loads only when the component renders:

  • The rich editor loads TipTap + ProseMirror.
  • The chart loads Recharts.
  • The date inputs load their zag-js date picker.

760.6 KB gzipped · 2417.0 KB raw JavaScript

DependencyRawGzipShare
Lattice code337.8 KB117.0 KB15.4%
TipTap + ProseMirror423.2 KB123.4 KB16.2%
recharts305.7 KB81.7 KB10.7%
React / React-DOM185.8 KB51.7 KB6.8%
@codemirror/view153.2 KB47.4 KB6.2%
Inertia95.3 KB35.2 KB4.6%
@lezer/javascript75.9 KB29.2 KB3.8%
@lezer/php94.2 KB26.4 KB3.5%
Radix UI75.3 KB24.8 KB3.3%
pusher-js55.5 KB18.1 KB2.4%
i18next48.1 KB15.2 KB2.0%
@codemirror/state45.0 KB14.1 KB1.9%
Everything else521.9 KB176.4 KB23.2%

Emitted JavaScript files

FileRawGzip
app-CsfqOCVi.js590.9 KB177.3 KB
code-block-view-C_CoW-fx.js526.0 KB177.6 KB
chart-view-CiUi4Moc.js423.8 KB116.4 KB
dist-DHG3I5r9.js284.0 KB88.8 KB
rich-editor-field-DkQfsrnq.js148.8 KB49.5 KB
date-picker-field-CuG1WeCk.js89.9 KB27.4 KB
ApiReference-DUq91DEC.js58.0 KB16.6 KB
instance-CfLoZ246.js43.0 KB13.6 KB
label-BVMtjzSP.js31.2 KB10.9 KB
sprite-CS_fyl_X.js28.0 KB9.0 KB
esm-CJdDFbav.js20.5 KB6.3 KB
CalendarDate-CPu9C4hq.js19.0 KB6.4 KB
floating-ui.dom-B0ujvShr.js18.0 KB7.1 KB
tree-Bsh310ue.js16.4 KB6.1 KB
timeline-XL3wFw7A.js16.3 KB5.4 KB
field-D9zW6Ewd.js14.1 KB5.3 KB
library-view-7049NaBY.js12.5 KB4.5 KB
debounce-CBXrtDuZ.js9.8 KB3.4 KB
code-block-BH5pWbYo.js9.3 KB3.8 KB
react-SIfiwpqq.js8.0 KB3.1 KB
page-props-ByxWZRFT.js7.4 KB3.0 KB
use-dependent-field-sthlLdHK.js7.3 KB2.9 KB
field-BiNjGyFZ.js5.2 KB2.2 KB
button-DwrlQJll.js4.5 KB1.2 KB
react-dom-prtvU8oi.js3.5 KB1.3 KB
dist-Dvl7tuJV.js3.5 KB1.5 KB
media-picker-Cu03FMjr.js3.1 KB1.4 KB
timezone-DL1s6QpV.js2.2 KB1.1 KB
use-effect-dispatcher-DJSxcI8N.js1.5 KB0.8 KB
icon-button-wXsPmbUA.js1.4 KB0.7 KB
dist-zUQp6X2f.js1.4 KB0.7 KB
input-D2kupwXl.js1.2 KB0.6 KB
subscriptions-Bk2sA_9W.js1.2 KB0.6 KB
media-image-dialog-D53wXa67.js0.8 KB0.5 KB
use-debounced-callback-BKUOyRnT.js0.8 KB0.5 KB
signature-lidkiDWc.js0.8 KB0.4 KB
color-CXV-Y5Qv.js0.7 KB0.4 KB
materialize-CWqnSEHR.js0.6 KB0.4 KB
jsx-runtime-0vZSBttN.js0.5 KB0.3 KB
clsx-CjueKrWZ.js0.4 KB0.3 KB
EchoStatus-CXr3cdbn.js0.3 KB0.3 KB
notifications-echo-CpDc6AIR.js0.3 KB0.2 KB
registry-context-B7Xx0uWy.js0.3 KB0.2 KB
format-context-BBqvsEPr.js0.3 KB0.2 KB
test-id-DkJ41bb8.js0.3 KB0.2 KB
library-B3Or4B9k.js0.2 KB0.2 KB

Open the full interactive treemap ↗ · Generated by Sonda 0.14.0 on Mon, 10 Aug 2026 09:57:23 GMT.

The breakdown above is JavaScript only. Lattice also ships a stylesheet you import into your Tailwind entry with @import "@lattice-php/lattice/css". The source file is small — theme tokens plus a few component styles — but it carries an @source directive, so your own Tailwind build scans Lattice’s components and generates the utility classes they use. The compiled CSS Lattice contributes to the workbench app (the same build measured above, exercising every feature) lands in the tens of kilobytes raw — a handful gzipped — and like the JS its real cost depends on which components you actually render and your own Tailwind configuration.