Changelog
A record of all notable changes to Zenith Dashboard.
v1.2.0
Latest
July 2026Hardening release following a full audit for security, performance, accessibility, SEO, and workflow.
Added
- Continuous integration — the repo had none, which is why v1.1.3's four regressions shipped. Five jobs now run per push and PR: verify (typecheck, lint, RSC safety, tests, build) on Node 20.9 and 24, plus Storybook, E2E, the
seed/starter, andnpm audit npm run check:rsc— fails the build if a core module without"use client"imports theradix-uibarrel. Unlike the crash itself, it does not depend on bundler tree-shaking, so it cannot pass locally and fail for a customerpublic/_headers— security headers plusimmutablecaching for content-hashed assets, replacing the host default of four-hour revalidation- Per-page metadata on all 68 routes. Previously all 184 exported pages shared one title. Client pages get theirs from a sibling server
layout.tsx, since"use client"modules cannot export metadata sitemap.xmlandrobots.txtgenerated at build time; setNEXT_PUBLIC_SITE_URLto change the hostenginesand.nvmrcpinning Node ≥ 20.9.0, with CI running that floor- Route-coverage E2E suite — 53 routes checked for status, a rendered heading, and zero console or page errors
Fixed
- The E2E suite had been broken since the landing page was added — it still expected the dashboard at
/. Retargeted, plus corrected lazy-chart and theme-toggle assertions. 59 tests pass, up from 1 - Auth pages had no heading element —
CardTitlerenders adiv, so seven pages exposed nothing for screen readers to navigate to. Now semantich1s with identical styling - Duplicate
<title>tags on nine auth pages, from React 19 hoisting plus the new route metadata - Six icon-only buttons had no accessible name; view toggles also gained
aria-pressed - All four ESLint errors resolved — lint is at 0 errors, 1 warning
- Removed five unused Next.js boilerplate SVGs and a stale
@storybook/addon-essentialsentry
v1.1.4
July 2026Critical fix release. v1.1.3 shipped four regressions that broke a fresh install, plus a full dependency refresh.
Fixed
npm run devcrash —TypeError: createContext is not a functioninsrc/app/not-found.tsx. Core'sButtonimportedSlotfrom theradix-uibarrel, which eagerly evaluates every Radix primitive; several callReact.createContext()at module scope. Sincenot-found.tsxis a Server Component, the barrel landed in the RSC graph wherecreateContextdoes not exist. Now imports@radix-ui/react-slotdirectly. Requires@dashboardpack/core^1.2.1npm run testcould not run — theundici^8.5.0 override forced jsdom onto an incompatible major, so the test environment failed to load. Override removednpm run lintcould not run — thebrace-expansion^5 override broke minimatch's API, and ESLint 10 removed thecontext.getFilename()APIeslint-plugin-reactdepends on. Override is now version-scoped andeslintis pinned to ^9npm run build-storybookcould not run — the@babel/core^8 override brokereact-docgen, which callsloadPartialConfigsynchronously. Override removednpm run lintwalkedstorybook-static/after a Storybook build, reporting ~10,000 findings in minified bundles. Generated output is now inglobalIgnores
Dependencies
- Next.js 16.2.12, React 19.2.8,
radix-ui^1.6.7,lucide-react^1.27.0,recharts^3.10.1,react-dropzone^19.1.1, all@tiptap/*^3.29.0, plus latest across every remaining direct dependency - Dev: Storybook 10.5.4, Vitest 4.1.10, Playwright 1.62.0, jsdom 30,
@testing-library/jest-dom7 - Removed
@storybook/nextjs— declared but never used (the framework is@storybook/react-vite). Dropped 381 packages and about half the audit findings - The
seed/starter was on core ^1.1.0 with the same crash; it is now aligned with the main template - ESLint stays on ^9 and TypeScript on ^6 — ESLint 10 breaks
eslint-config-next, and Next.js 16 rejects the TypeScript 7 compiler API npm auditnow reports 0 vulnerabilities, down from 27. Those traced to just two root advisories:brace-expansion(reached only via minimatch 3 inside ESLint — now overridden to minimatch ^10) andsharp(overridden to ^0.35.3; build-time only, and unused under static export)
v1.1.3
May 2026Dependency refresh: @dashboardpack/core 1.2.0 unblocks react-day-picker v10.
Dependencies
@dashboardpack/core^1.1.0 → ^1.2.0, lifting thereact-day-pickerpeer range to ^10.0.0react-day-picker^9.14.0 → ^10.0.1 — no app-level changes needed- Next.js 16.2.6 → 16.2.9, React 19.2.6 → 19.2.7,
radix-ui^1.4.3 → ^1.6.0, plus minor bumps across remaining deps
Fixed
- Kanban page TypeScript error from
radix-ui1.6.0's new--radix-${string}CSS property index signature
v1.1.2
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
v1.1.1
May 2026Higher-contrast dark mode and dependency refresh with security overrides for transitive vulnerabilities.
Dark mode contrast
- Bigger lightness steps between background → card → muted → border so cards visibly lift and input borders read clearly
- Background 0.145 → 0.075, card 0.17 → 0.19, popover → 0.21, secondary/muted/accent 0.215 → 0.235, border/input 0.265 → 0.28
- Sidebar 0.205 → 0.11 (now darker than background, matching the Apex Next.js family), sidebar-accent 0.265 → 0.20, sidebar-border 0.265 → 0.26
- Distinctive purple sidebar-primary and near-white primary preserved. Light mode untouched.
Dependencies
- Next.js 16.2.3 → 16.2.6 (fixes 13 published Next.js CVEs)
- React / React-DOM 19.2.5 → 19.2.6, lucide-react 1.8.0 → 1.16.0, framer-motion 12.38 → 12.40, tiptap 3.22.3 → 3.23.6, 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: 12 vulnerabilities (3H / 3M / 6L) → 6 low (all dev-only storybook chain)
v1.1.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)
- Tiptap packages updated to 3.22.3
- @dashboardpack/core updated to ^1.1.0
- All remaining dependencies bumped to latest versions
v1.0.0
February 2026Initial release of Zenith 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.