Changelog
A record of all notable changes to Apex Dashboard.
v3.1.1
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
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
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 | v2.3.0 | v3.0.0 |
|---|---|---|
| Route files | 57 | 94 |
| Prerendered HTML files | 173 | 216 |
| sitemap.xml URLs | 28 | 68 |
| Unit tests / files | 8 / 2 | 636 / 26 |
| E2E tests / files | 4 / 1 | 99 / 7 |
| Largest JS chunk | 282 KB | 283 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.lengthso its count cannot drift - World map from Natural Earth (public domain), projected offline into static path data — no
d3-geo, notopojson, 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-visiblefloor,prefers-reduced-motionsupport and a working skip link on 25 pages that previously pointed at nothing
Fixed
npm run startcould not start — it wasnext start, which refuses to run underoutput: "export", and it failed after printing “Ready”. Six places promised that command. It now servesout/with a zero-dependency server- The documented Dockerfile could not build an image: it copied
.next/standaloneand rannode 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
.darkblock and can never be un-set, so--primarywas 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-autobelow them inert --primaryand--successfailed WCAG AA contrast in both themes, as did--muted-foregroundand--destructive-foregroundperPage: 100silently 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 2026Hardening release. A dev-server crash and three pieces of broken tooling are fixed, and CI now exists to stop a repeat.
Fixed
npm run devcrashed withcreateContext is not a functioninsrc/app/not-found.tsx. Core imported Radix'sSlotfrom theradix-uibarrel, which evaluates every primitive on import; several callReact.createContext()at module scope, which does not exist in the RSC graph. Fixed by core ^1.2.1npm run test,npm run lintandnpm run build-storybookcould not run at all — threeoverridesadded to silence audit findings had forced breaking majors onto jsdom, minimatch and react-docgen. All corrected- Auth pages had no heading element —
CardTitlerenders adiv, leaving nothing for screen readers. Now semantich1s - Icon-only buttons gained accessible names;
CLAUDE.mdno 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 customerpublic/_headerswith security headers and immutable asset caching, plussitemap.xmlandrobots.txt- Next.js 16.2.12, React 19.2.8 and latest across dependencies;
npm auditreports 0 vulnerabilities
v2.2.3
June 2026Fixed the starter template so it installs and builds cleanly.
Fixed
- Starter template (
seed/) now installs and builds — added the missing@dashboardpack/coredependency it imports throughout - Upgraded the starter's Storybook 8.6.17 → 10.4.1, fixing the
next@16peer-dependency ERESOLVE error onnpm install - Added
transpilePackagesand TypeScript core source-resolution so the shared package compiles
v2.2.2
May 2026Dependency 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 2026Dark 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 2026Full 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 2026User 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 2026Major 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 2026Initial 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.