Skip to content

Changelog

A record of all notable changes to Apex Dashboard.

v3.1.1

Latest
October 13, 2026

The backend example now provides interactive sample data on static hosting, including CRUD, roles, workspaces, pagination, and reset. Changes are disposable. Real server authentication and persistence continue to work locally.

Setup instructions moved to the backend example guide, included in both apps. Server outages remain visible as connection errors.

v3.1.0

Released
October 13, 2026

Faster customization, an authenticated backend reference, smaller initial JavaScript, and reproducible checks for the dashboard and starter.

  • Page/resource scaffolding with navigation, fixtures, tests, and Storybook states; working form and CRUD recipes at /recipes.
  • A Node/SQLite backend example with cookie sessions, CSRF protection, and server-enforced role and tenant boundaries. Static previews provide local setup instructions.
  • Chromium, Firefox, and WebKit checks with 216 visual baselines across themes, mobile layouts, and RTL; CI tests the unpacked release ZIP and generated scaffolds.
  • Next.js 16.4, React 19.3, TypeScript 7, ESLint 10/Oxlint, Vitest 5, and updated Vite/Storybook tooling. TanStack Table 8 remains compatible with core 1.7.
  • Lazy customization/search, CSS route entrances, bundle budgets, and fixes for hydration, mobile focus, unchanged REST reads, unpacked lint roots, and Storybook static copying.

Use Node 24 LTS; Node 20 is unsupported. Starter versions now follow the dashboard release. Read the upgrade guide before merging into a customized app.

v3.0.0

Released
July 2026

Twelve dashboard variants, six layout presets, a data grid with pinning and inline editing, a blocks catalog, a world map, an AI module, RBAC, and a typed data layer replacing the direct mock-data imports.

Measured comparison between v2.3.0 and v3.0.0
Measuredv2.3.0v3.0.0
Route files5794
Prerendered HTML files173216
sitemap.xml URLs2868
Unit tests / files8 / 2636 / 26
E2E tests / files4 / 199 / 7
Largest JS chunk282 KB283 KB

Both columns were measured by building the tag, not carried over from notes. The surface roughly doubled and the largest chunk grew by 1 KB — that is what collapsing 13 chart tooltips into one primitive and moving the dataset out of the bundle bought.

Added

  • Six layout presets with a gallery — expressed in CSS against a class the pre-paint script writes, so switching preset changes no React state and cannot mismatch on hydration
  • Seven new dashboard variants (Project, Finance, HR, Marketing, Academy, Logistics, AI Usage), each owning at least two chart forms no other variant uses rather than recolouring the same six cards
  • Data grid — column pinning, inline editing, saved views shareable via ?view=, and row virtualization
  • CSV and real XLSX export with zero new dependencies, plus a print stylesheet. Called “Print / Save as PDF” rather than “PDF export” because with no server there is no headless Chrome
  • 114 copy-paste blocks in 14 categories, each a real file whose source is read from disk at build time; a test asserts every entry has a file and every file has an entry, and the catalog page renders catalog.length so its count cannot drift
  • World map from Natural Earth (public domain), projected offline into static path data — no d3-geo, no topojson, no runtime projection
  • AI module — assistant and usage dashboard, a scripted adapter and a typed AIAdapter. No API keys ship and no provider is called from the browser
  • RBAC — roles, a permission matrix and guards, documented in the source as UI affordances rather than security, because under static export they cannot be anything else
  • Typed data layer replacing direct mock-data imports across 23 files, with fixtures served as static JSON so the dataset leaves the JS bundle entirely
  • Seven new documentation pages, and a :focus-visible floor, prefers-reduced-motion support and a working skip link on 25 pages that previously pointed at nothing

Fixed

  • npm run start could not start — it was next start, which refuses to run under output: "export", and it failed after printing “Ready”. Six places promised that command. It now serves out/ with a zero-dependency server
  • The documented Dockerfile could not build an image: it copied .next/standalone and ran node server.js, neither of which exists in a static export
  • Dark-mode visitors got a light first paint — the pre-paint script restored five preferences but never read the theme
  • The colour-preset reset did nothing. Presets were inline styles, which shadow the .dark block and can never be un-set, so --primary was locked at its light value in both themes
  • The whole page scrolled sideways on any route with a wide table — two flex items refused to shrink below their content, which also made every overflow-x-auto below them inert
  • --primary and --success failed WCAG AA contrast in both themes, as did --muted-foreground and --destructive-foreground
  • perPage: 100 silently truncated — past 100 records rows vanished with no indication
  • The notification badge was cross-component stale: marking read on the page never updated the header
  • The components page documented ten entries that did not work — eight components that never existed and two wrong paths. A test now resolves every module and named export the docs mention

v2.3.0

July 2026

Hardening release. A dev-server crash and three pieces of broken tooling are fixed, and CI now exists to stop a repeat.

Fixed

  • npm run dev crashed with createContext is not a function in src/app/not-found.tsx. Core imported Radix's Slot from the radix-ui barrel, which evaluates every primitive on import; several call React.createContext() at module scope, which does not exist in the RSC graph. Fixed by core ^1.2.1
  • npm run test, npm run lint and npm run build-storybook could not run at all — three overrides added to silence audit findings had forced breaking majors onto jsdom, minimatch and react-docgen. All corrected
  • Auth pages had no heading element — CardTitle renders a div, leaving nothing for screen readers. Now semantic h1s
  • Icon-only buttons gained accessible names; CLAUDE.md no longer ships inside the customer zip

Added

  • Continuous integration — there was none before, which is why the defects above shipped
  • npm run check:rsc, which cannot pass locally and fail for a customer
  • public/_headers with security headers and immutable asset caching, plus sitemap.xml and robots.txt
  • Next.js 16.2.12, React 19.2.8 and latest across dependencies; npm audit reports 0 vulnerabilities

v2.2.3

June 2026

Fixed the starter template so it installs and builds cleanly.

Fixed

  • Starter template (seed/) now installs and builds — added the missing @dashboardpack/core dependency it imports throughout
  • Upgraded the starter's Storybook 8.6.17 → 10.4.1, fixing the next@16 peer-dependency ERESOLVE error on npm install
  • Added transpilePackages and TypeScript core source-resolution so the shared package compiles

v2.2.2

May 2026

Dependency refresh with security overrides for transitive vulnerabilities.

Dependencies

  • Next.js 16.2.4 → 16.2.6 (fixes 13 published Next.js CVEs)
  • React / React-DOM 19.2.5 → 19.2.6, lucide-react 1.11.0 → 1.16.0, framer-motion 12.38 → 12.40, storybook 10.3.5 → 10.4.1, zod 4.3.6 → 4.4.3, plus minor bumps to other direct deps
  • react-day-picker pinned to ^9.14.0 (@dashboardpack/core peer dep blocks the v10 major bump)
  • npm overrides added for transitive vulns: postcss ^8.5.15, elliptic ^6.6.1, brace-expansion ^5.0.6, fast-uri ^3.1.2, ws ^8.20.1
  • npm audit: 4 vulnerabilities (1 high, 3 moderate) → 0

v2.2.1

April 2026

Dark mode contrast pass (the original contrasty palette that the rest of the family now mirrors).

Dark mode contrast

  • Cards now lift clearly off the background (card surface L 0.125 → 0.19); popover, border, and muted layers bumped proportionally to preserve hierarchy
  • Removed the green tint from dark surfaces (chroma 0) so the accent color switcher reads true on every preset
  • Sidebar lightened (L 0.06 → 0.11) and given a right border so it reads as a distinct rail rather than blending into the main background
  • Sidebar collapse button switched to bg-card and the chevron is no longer at 50% opacity (was failing WCAG 3:1 non-text contrast)

Sidebar UX

  • Nav scrollbar fades in only on hover/focus (new scrollbar-fade utility) so the sidebar reads cleaner when idle

Internal

  • Layout init script moved to next/script with beforeInteractive strategy, resolving the React script-tag warning while preserving no-flash behavior
  • Patch dependency updates: Next 16.2.4, lucide-react 1.11.0, react-hook-form 7.74.0, vitest 4.1.5, jsdom 29.1.0, libphonenumber-js 1.12.42

v2.2.0

April 2026

Full dependency update across the entire stack.

Dependencies

  • Next.js 16.1.6 to 16.2.3
  • React and React DOM 19.2.3 to 19.2.5
  • Storybook 8.6.x to 10.3.5 (addon-essentials and blocks consolidated into core)
  • TypeScript 5 to 6
  • ESLint 9 to 10
  • lucide-react 0.564.x to 1.8.0 (brand icons replaced with inline SVGs)
  • @dashboardpack/core now installed from npm registry (^1.1.0)
  • All remaining dependencies bumped to latest versions

v2.1.0

February 2026

User management, Storybook component library, internationalization, and performance optimizations.

User Management

  • Users list page with DataTable, role/status filters, and CRUD operations
  • User detail page with profile card, permissions grid, and account details
  • Create and edit forms with React Hook Form + Zod validation
  • 25 mock users with roles, permissions, and departments

Storybook

  • Storybook 10.x with 15 component stories across core, form, and dashboard tiers
  • Dark mode decorator and responsive viewport presets
  • Auto-docs enabled for all stories

Internationalization (i18n)

  • Custom i18n with React Context and type-safe translation keys
  • 3 languages: English, German, French
  • ~80 translation keys covering sidebar, header, and dashboard
  • Locale switcher in Theme Customizer and Settings

Performance

  • Bundle analyzer integration with npm run analyze
  • Dynamic imports for chart components on dashboard home
  • LazyChart wrapper using IntersectionObserver for viewport-triggered rendering

v2.0.0

February 2026

Major update covering Phases 1-9 of the product roadmap.

Dashboard Variations

  • eCommerce dashboard with sales charts, order status donut, top products
  • CRM dashboard with pipeline funnel, deal stages, lead sources
  • SaaS dashboard with MRR/ARR tracking, subscription plans, churn metrics

App Pages

  • Chat application with real-time messaging UI and conversation list
  • Email/Inbox client with folders, compose dialog, and search
  • File Manager with grid/list views, upload, and storage stats
  • Kanban board with drag-and-drop task management
  • Calendar with monthly view and event management
  • Multi-step wizard form with validation
  • User profile page with overview, activity, and connections tabs
  • Pricing page with plan comparison

Advanced Components

  • TanStack Table upgrade with column filtering, sorting, pagination, CSV export, mobile responsive cards
  • Date Picker, Date Range Picker
  • Combobox/Autocomplete, Multi-Select, Phone Input
  • File Uploader (react-dropzone), OTP Input, Color Picker
  • Accordion, Alert, Carousel, Collapsible, Scroll Area, Slider, Toggle Group, Resizable

Charts Showcase

  • New /charts page with Radar, Radial Bar, Treemap, Scatter, and Composed charts
  • 10 chart types total (Area, Bar, Line, Pie, Sparkline, Radar, RadialBar, Treemap, Scatter, Composed)

Theme Customizer

  • Live customizer drawer with color presets, density options
  • 6 color presets: Default, Ocean, Sunset, Forest, Berry, Slate
  • 3 density levels: Compact, Default, Comfortable
  • Reset to defaults

Layout Options

  • Horizontal top-nav layout alternative
  • Boxed container option (max-width centered)
  • All layouts persist to localStorage

RTL Support

  • Full right-to-left text direction support
  • CSS logical properties across all components
  • Toggle in Theme Customizer

Auth & Utility Pages

  • Reset Password, Two-Factor Authentication, Email Verification, Lock Screen
  • 500 Server Error, 403 Forbidden error pages
  • Coming Soon and Maintenance pages

Testing Infrastructure

  • Vitest unit testing with jsdom environment
  • Playwright E2E tests with Chromium
  • Representative test suites for utilities, data, and components

v1.0.0

February 2026

Initial release of Apex Dashboard.

Dashboard

  • Overview page with stats cards, revenue chart, traffic pie chart, and goals progress
  • Analytics page with detailed chart breakdowns
  • Collapsible sidebar with icon-only mode
  • Responsive header with search, notifications, and user menu

Pages

  • Orders page with data table, sorting, filtering, and CRUD operations
  • Products catalog with grid and list views
  • Customers management with detail panels
  • Billing page with plan selection and payment history
  • Invoices list with status badges
  • Notifications center with read/unread states
  • Settings page with profile, appearance, and notification preferences
  • Help and support page

Authentication

  • Sign-in page with email/password form and social login buttons
  • Sign-up page with form validation using React Hook Form and Zod

UI Components

  • 25+ vendored shadcn/ui components (Button, Card, Dialog, Table, Tabs, etc.)
  • Command palette (Cmd+K) for quick navigation
  • Toast notifications via Sonner
  • Confirm dialog for destructive actions

Theming

  • Dark, light, and system theme modes
  • OKLCh color tokens for perceptually uniform colors
  • Semantic color system (primary, success, warning, destructive)
  • 5-color chart palette
  • Custom dark sidebar in both light and dark modes

Tech Stack

  • Next.js 16 with App Router
  • React 19
  • TypeScript 6 with strict mode
  • Tailwind CSS v4
  • Recharts for data visualization
  • Lucide React icons
  • React Hook Form + Zod for form validation
  • Radix UI primitives

Documentation

  • Built-in documentation site at /docs
  • Installation guide, folder structure, theming, components, and deployment docs

Back to the Introduction or view the Deployment Guide.