Future Feature Ideas & Improvements

A backlog of enhancements to the canvas timeline base, beyond the features already implemented. Effort tags: S small, M medium, L large.

Rendering & performance

Visible-only / incremental stacking

Stacking currently runs over all items on each pan/zoom. Cache row assignments and recompute only on data change or when new items enter the viewport.
Effort: L · Unblocks 100k+ at 60fps

Spatial index (interval tree / bucketed)

Replace the linear visible-item scan and hit-test with an interval index keyed on time, plus a per-row index for O(log n) hit-testing.
Effort: L

OffscreenCanvas + worker rendering

Move stacking and tile rendering to a worker via OffscreenCanvas to keep the main thread free during heavy interaction.
Effort: L

Layer caching / dirty rectangles

Cache the static background+grid+labels layer and only repaint item/overlay layers on interaction.
Effort: M

Interaction

Multi-touch pinch-zoom & momentum pan

Pointer-events-based pinch zoom and inertial panning for touch/trackpad.
Effort: M

Rubber-band multi-select

Drag a selection box on empty space to select all items inside it.
Effort: M

Snap-to-item / magnetic edges when dragging

Snap an item's edge to neighboring item edges or the current-time line while moving/resizing.
Effort: S

Keyboard navigation & focus

Arrow-key item traversal, Enter to open, Esc to deselect, drawn focus ring — also the basis for a11y.
Effort: M

Visualization

Item clustering at low zoom

Collapse dense item clusters into a single "+N" glyph when zoomed out; expand on zoom-in. Pairs well with the minimap density histogram already computed.
Effort: M

Dependency arrows between items

Draw Gantt-style finish-to-start arrows from item relationships.
Effort: M

Per-item progress fill & milestones

A progress fraction rendered as a partial fill; diamond milestone markers (a richer point type).
Effort: S

Background time regions / shading

Non-interactive background bands (weekends, business hours, SLA windows) behind all groups — a type:'background' analogue.
Effort: S

Configurable fonts, icons & sprite atlas

Per-item leading icon drawn from a sprite atlas; configurable font stack and per-group fonts.
Effort: M

Data & integration

Windowed/virtualized data source

A formal data-source interface that fetches only the visible time window (pairs with the higher-risk async-pagination feature) with prefetch and LRU eviction.
Effort: L

Export to PNG/SVG & print

toDataURL() export of the current view, plus an SVG path for crisp print/report embedding.
Effort: M

Server-driven "timeline views"

Persist filter + text-mapping + theme + window as a shareable view document (extends the higher-risk saveable-view feature).
Effort: M

Platform & quality

TypeScript types & documented public API

Ship .d.ts, promote underscore-prefixed capabilities to a stable public surface, semver the API.
Effort: M

Accessibility mirror

Off-screen DOM list reflecting items/groups for screen readers and as a no-canvas fallback.
Effort: L

Playwright visual + interaction CI

Headless-browser screenshot diffs and interaction tests, plus a performance regression gate on the stress test.
Effort: M

Theme tokens & system prefers-color-scheme

Expose theme as overridable design tokens and auto-pick light/dark from the OS setting.
Effort: S

← Risks · Back to demos