Production Checklist
Use this list right before you ship. Each item is one line; click through to the deep guide for the how and why. If you can tick every box, you’re production-ready.
Security
Section titled “Security”- Sanitize external data before assigning to
grid.rows— validate types, ensure unique row IDs, strip unexpected fields. - No
innerHTMLfrom user input in custom renderers. UsetextContent, or sanitize with DOMPurify first. See Renderer security. - CSP allows
style-src 'self'— the grid injects styles viaadoptedStyleSheets. See Styles not applying (CSP). - Target browsers meet the minimum — Chrome/Edge 123, Firefox 121, Safari 17.5. See Browser support.
- Trusted Types policy installed if you enforce
require-trusted-types-for 'script'. See Trusted Types.
Performance
Section titled “Performance”- Only the features you use are imported (or use
/features/*side-effect imports for tree-shaking). Avoid@toolbox-web/grid/allin production. - Fixed
rowHeightset for datasets over a few thousand rows. See Performance guide. - Column virtualization enabled if you render 50+ columns. See
ColumnVirtualizationPlugin. - Server-side loading considered for million-row datasets. See
ServerSidePlugin. - Bundle size measured — your final grid bundle is within the bundle budget.
Reliability
Section titled “Reliability”- Async data fetches handle failure —
grid.loadingtoggled, errors caught, user shown a message. - Grid configuration wrapped in try/catch as a safety net — TBW configuration errors include import hints, but should not crash your app.
- Stable
getRowIdif your rows can be re-fetched / re-sorted — keeps selection, focus, and edit state correct. - Automated tests cover the critical paths (sort, filter, edit, selection) and use the stable selector contract — not visual indices or framework-generated class names.
Accessibility
Section titled “Accessibility”- Grid has an accessible name — via
<tbw-grid-header title="…">,gridAriaLabel,gridAriaLabelledBy, oraria-label. - Tab → arrow keys → Enter → Escape all work as described in the Accessibility guide.
- Tested with at least one screen reader (NVDA, VoiceOver, or JAWS) — see Testing with screen readers.
- Forced-colors / Windows High Contrast verified visually.
Monitoring (optional but recommended)
Section titled “Monitoring (optional but recommended)”- Track sort / filter / selection events (
sort-change,filter-change,selection-change) to understand how users use the grid in production. - Sentry / equivalent captures any uncaught grid errors with the TBW error code intact (it’s in the message).
See also
Section titled “See also”PerformanceProfiling, virtualization tuning, and scale-tier reference
AccessibilityWCAG 2.1 AA, screen reader testing, focus management
TroubleshootingCommon deployment issues and fixes
Automated testingPlaywright, Cypress, and WebdriverIO recipes
Error CodesTBW error code reference
AI assistants: For complete API documentation, implementation guides, and code examples for this library, see https://toolboxjs.com/llms-full.txt