Layout, text cards and KPI comparison
Starting with v2.41, dashboard layout and styling are much closer to full-grown BI tools (the review was done against reference DataLens dashboards).
8× finer grid
The layout moved from 12 columns × 88px rows to 96 columns × 12.5px rows — each cell is 8× smaller on each axis. That gives you 5–6 KPI cards per row, narrow text dividers and precise alignment. Existing dashboards migrate automatically and for free: dashboards.json gained a layout_version; on first load of an old-format file every widget's coordinates are multiplied by 8 and the file is re-saved — widgets land pixel-for-pixel where they were.
While dragging or resizing, a grid overlay is shown at exactly the grid pitch (pin it with the “⊞ Grid” button), and the public share page now reproduces the author's layout instead of stacking widgets full-width.
Text cards
A new text widget type — the only one with no query source at all: section headers, descriptions, dividers. Settings: text, alignment, weight, plus the shared color and font-scale options; rendering is instant, with no server request.
Hideable titles
The “Hide title” checkbox (config.hide_title) removes the widget header — the card looks like pure content. In edit mode the header reappears as a translucent hover overlay (drag/edit/delete stay available); on the public page it isn't rendered at all.
KPI: compare to the previous period
KPI widgets gained config.compare (day/week/month/year) and config.compare_column (a date column): the value becomes “current period to date”, the server re-runs the same query for the previous equivalent period and returns the delta — the card shows “▲ +12% vs prev. month”. Works for spec- and chart-based widgets; honestly unavailable for raw SQL (same limitation as global filters). Period windows are correct, including the short-month clamp (March 30 → February 28).
Demo content at startup
The -demo flag is now on by default (disable with "demo": false in settings.json or -demo=false): startup creates three demo databases — demo.fdb (e-commerce), demo_support.fdb (support tickets with SLA/FCR) and demo_marketing.fdb (daily traffic by channel) — and five demo dashboards showcasing text section headers, KPI rows with period comparison, drill-down and multi-series lines. Data is generated relative to today's date, and dashboards are seeded only if missing — your edits survive restarts.