SvGrid Roadmap - What We Are Building Next
15 planned features for the SvGrid Svelte 5 data grid, grouped by area, plus 100 recently shipped. An honest, living account - the full accounting lists workarounds available today.
Editing
- Custom calendar systems for the date editor (Hijri, Buddhist, fiscal-year, custom holidays) - Gregorian date / datetime / time editors already ship as editorType.
Menus
- Custom column menu items / actions API to extend the built-in menu with your own commands - Row + cell context menus already accept a custom item list; this is the column-header menu half.
- Programmatic api.openColumnMenu(colId) / api.openContextMenu(rowId, colId) - Both menus open on interaction today; this exposes them on SvGridApi.
- Menu theming hooks: danger styling + disabled state - Per-item icons and separators already ship on SvMenuList; danger styling is what is left.
Views (@svgrid/enterprise)
- Gantt view - task bars on a time axis with dependency arrows, critical path and drag-to-reschedule - Demo 45 already renders a Gantt-shaped timeline as a recipe - one wide cell per row with an absolutely-positioned bar - and the scheduler ships the two hard halves underneath: a working-time axis (buildAxis, with break and collapsed segments) and a dependency model carrying the four link types FS / SS / FF / SF plus a graph builder. What is missing is a first-class view over that model: summary/rollup rows, drawn dependency arrows, critical path, and drag-to-reschedule that writes back through the dependency graph.
Export (@svgrid/enterprise)
- PDF export layout extensions: cover page, repeating section headers, multi-section reports - Branded headers/footers/logo (demo 57) plus the portrait / landscape toggle with auto-landscape for wide grids already ship, and the Print path has a boardroom cover page (demo 39). Bringing the cover page and the multi-section pass to PDF export is what is left.
- PDF export with charts and KPI strip alongside the table
- Server-side export pipeline that streams large datasets without the browser-memory ceiling
- Saveable export templates / presets the user can reuse across reports
Data adapters and integrations
- Packaged first-class adapters for OData and Firestore - Supabase now ships as a real adapter (schema introspection, realtime, auth) alongside the REST shape adapters and the GraphQL demo. OData and Firestore are what is left.
- Streaming adapter for Kafka / Pulsar / Redpanda over a thin server proxy
- Auth helpers for data adapters: OAuth flow, signed-URL refresh - Static and computed request headers (so Bearer works today) plus Supabase auth already ship; the OAuth + signed-URL refresh helpers are what is left.
Templates and starters
- Remaining industry template: telco service-assurance - Studio now ships 18 sample apps, including support/ticketing, fleet/field-service, and ecommerce + inventory for retail ops, alongside CRM, clinic, HR, ATS, insurance, invoicing and more.
SvelteKit
- Streaming SSR for generated screens - return promises from load so a slow dataset streams in after first paint - The load function and the CRUD form actions both ship now (see below); streaming is the piece still outstanding.
Mobile
- In progress: Touch row dragging - confirm the pointer path on real hardware - Shipped in 2.6.7: a pointer-based path with a long-press start so scrolling still works, hit-testing, edge autoscroll and drop on lift. The mechanics are now covered by an automated real-touch test (tests/e2e/mobile/row-drag-touch.spec.ts) that drives Chromium through CDP touch input rather than jsdom: scroll-vs-drag arbitration at the slop, long-press start, drop on lift, cancel on interruption and a second finger mid-drag all pass. What is left is genuinely WebKit-on-hardware - momentum and rubber-banding, iOS back-swipe near the left edge, the URL bar resizing mid-drag - so #66 stays open on a short device checklist in the Row dragging doc.
Recently shipped
- Rich-text + Markdown cells - SvRichCell paints formatted values through a strict sanitizer, and the richtext editorType edits them
- SvelteKit starter with an auth scaffold - cookie sessions, PBKDF2 over Web Crypto, and role gating enforced in the load and the action
- Pivot dashboard starter - a pivot cube, a linked chart and a drill-through rail over one fact table, from npm create @svgrid
- SSR-native SvelteKit output - Studio emits +page.server.ts with a load function and CRUD form actions, so a generated screen renders on the server instead of fetching after it mounts
- SvGrid UI in the box - 84 components (SvButton, SvCalendar, SvDateTimePicker, SvDockLayout, SvToaster, selects, dialogs, split panes) export from @svgrid/grid itself, no extra install
- In-panel chart editing - retype, re-group, re-measure and restyle a chart from the panel (Type, Group by, Split by, Value, Aggregate, Format) without reopening the wizard
- Every chart type in the picker - the panel offered 4 of 15; it now offers each type the current columns can feed, with the controls that type actually uses
- Candlestick / OHLC with an ordinal date axis that skips non-trading days
- Chart series palette tokens (--sg-chart-1..8), so a theme can recolour the data and not just the chrome
- Client-side tree data - treeData nests rows by parent id (or nested children via flattenTreeData), with treegrid keyboard + ARIA
- Row-grouping display modes - groupRows banners, a single combined Group column, or one column per grouped field
- Group footers - a subtotal row per group, plus paging that budgets data rows instead of group banners
- Async editor options - editorOptions may return a Promise, per column or per row, with loading state and caching
- Two-condition column filters - AND / OR on one column, in the menu and via api.setFilter
- Filter-row operator picker - pick the condition per column inline, matching the column menu
- AI that builds the grid - generate columns and whole runnable apps from a prompt (@svgrid/mcp + Studio)
- Engine-level full-width detail row API - isDetailRow + renderDetailRow snippet
- Range-charting + cross-filtering - "Chart selected range" context item, click a category to filter the grid
- Saved pivot layouts - serializable PivotLayout with a toolbar preset menu
- Built-in responsive mode - auto-unpin, touch scrolling, and per-column hideBelow under a breakpoint
- Variable row height on <SvGrid> - rowHeight as a number or a per-row function
- Formula engine as a first-party adapter (createHyperFormulaSheet)
- Per-column valueParser - transform the committed value before it is stored
- Per-column validate() returning a message string, boolean, or null
- Programmatic api.startEditing() / api.stopEditing()
- Cascading multi-level menus with roving focus and full WAI-ARIA keyboard navigation
- Custom aggregation functions on the Pivot Designer - pass your own function as agg
- Per-measure pivot value formatters (currency, percent, accounting, custom)
- Keyboard-accessible row resize - focus the handle, arrow keys resize (Shift = 1px)
- Column spanning (colSpan) + row spanning - merged cells across rows/columns
- Built-in row dragging - managed, unmanaged, drop zones, grid-to-grid
- Full-row editing mode (fullRowEdit) with commit-on-blur
- Built-in row + cell context menu API driven by Svelte snippets
- Built-in cell flash / animated change highlight on ColumnDef
- Keyboard-accessible column resize + per-column aria labels on filter/menu buttons
- Column pinning (left / right) - menu + api.setColumnPinning()
- getRowId() stable row identity on <SvGrid>
- cellClass / rowClass conditional class callbacks
- api.getColumnWidths() / setColumnWidth()
- between operator in the column menu (Number + Date)
- clearAllFilters() / getFilters() on SvGridApi
- api.getDisplayedRows() (post-pipeline)
- Built-in tooltip API on ColumnDef (string or value-driven)
- Built-in notes prop + corner indicator
- Find-in-grid (Ctrl+F) + api.openFind / setFindQuery / getFindHits
- cellEditor slot for custom inline editors (Snippet on ColumnDef)
- Built-in select & rich-select editors (editorType: 'select' | 'rich-select')
- Built-in textarea editor (editorType: 'textarea')
- Built-in undo / redo stack + Ctrl+Z / Ctrl+Y / api.undo() / canUndo()
- api.selectCells() / getSelected() + onCellSelectionChange event
- Engine-level row pinning prop (pinnedTopRows / pinnedBottomRows)
- Built-in header drag-to-reorder (enableColumnReorder + onColumnOrderChange)
- Locale-aware text filtering (accent-insensitive, ICU lowercase via filterLocale)
- Set filter - tree, async, Excel-mode patterns via api.setFacetFilter
- Sparkline cell renderer (line / area / bar / win-loss) as a first-class column type
- Per-column sortable / filterable flags on ColumnDef
- Built-in time + date-time editors (editorType: 'time' | 'datetime')
- Built-in color picker editor (editorType: 'color')
- Built-in password + rating editors (editorType: 'password' | 'rating')
- Built-in list + chips editors (editorType: 'list' | 'chips')
- Pivot drill-through (click any pivot value to see contributing source rows)
- Pivot subtotal + grand-total rows + style controls
- Conditional formatting in pivot cells (heatmap, data bars)
- Pivot OLAP-style hierarchical row / column axes
- Pivot value charts (charts driven by the pivot model)
- Export pivot grid to Excel
- Theme-matched export styling (palette, fonts, alternating rows)
- Branded export with custom header, footer, and embedded logo
- Image cells round-tripped into Excel exports
- Multi-sheet workbook exports
- Grouped grid export with collapsed group rows preserved
- Password-protected (encrypted) Excel export
- Server-side row model contract with sort / filter / page pushdown
- Server-side grouping + aggregation pushdown
- GraphQL adapter (server-side sort + filter + page)
- REST data loading with loading / error / empty / ready states
- WebSocket live-update pattern with insert / update / delete deltas
- Real-time collaboration (multi-user cursors + edits)
- Transaction API for row-level applyTransaction with optimistic updates
- Chart.js sync (grid edits flow live into a chart and back)
- Integrated charts (charts rendered against the grid model)
- Excel / CSV import with column mapping and per-row validation
- Industry template - CRM sales pipeline
- Industry template - Healthcare EMR
- Industry template - Logistics fleet dispatch
- Industry template - Industrial / HMI dashboard
- Industry template - Test & measurement systems monitor
- Industry template - Real-time order operations
- Industry template - Manufacturing ops console
- Industry template - Compliance review queue
- Industry template - Field-service work orders
- Kanban board mode (board prop)
- Starter - Admin dashboard (KPI cards + grid + chart)
- Starter - Admin template shell
- Starter - Reporting workspace
- Starter - Seller / marketplace operator panel
- Starter - Side-drawer record editor
- Starter - Mobile card view layout
- Excel / PDF / styled-HTML export + Print (@svgrid/enterprise) - CSV / TSV / JSON export is free in @svgrid/grid
- Staged / batch editing mode via createStagedEditing (@svgrid/enterprise)