Skip to content

Changelog

A record of all notable changes to Zenith Dashboard.

v1.2.0

Latest
July 2026

Hardening 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, and npm audit
  • npm run check:rsc — fails the build if a core module without "use client" imports the radix-ui barrel. Unlike the crash itself, it does not depend on bundler tree-shaking, so it cannot pass locally and fail for a customer
  • public/_headers — security headers plus immutable caching 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.xml and robots.txt generated at build time; set NEXT_PUBLIC_SITE_URL to change the host
  • engines and .nvmrc pinning 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 elementCardTitle renders a div, so seven pages exposed nothing for screen readers to navigate to. Now semantic h1s 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-essentials entry

v1.1.4

July 2026

Critical fix release. v1.1.3 shipped four regressions that broke a fresh install, plus a full dependency refresh.

Fixed

  • npm run dev crash — TypeError: createContext is not a function in src/app/not-found.tsx. Core's Button imported Slot from the radix-ui barrel, which eagerly evaluates every Radix primitive; several call React.createContext() at module scope. Since not-found.tsx is a Server Component, the barrel landed in the RSC graph where createContext does not exist. Now imports @radix-ui/react-slot directly. Requires @dashboardpack/core ^1.2.1
  • npm run test could not run — the undici ^8.5.0 override forced jsdom onto an incompatible major, so the test environment failed to load. Override removed
  • npm run lint could not run — the brace-expansion ^5 override broke minimatch's API, and ESLint 10 removed the context.getFilename() API eslint-plugin-react depends on. Override is now version-scoped and eslint is pinned to ^9
  • npm run build-storybook could not run — the @babel/core ^8 override broke react-docgen, which calls loadPartialConfig synchronously. Override removed
  • npm run lint walked storybook-static/ after a Storybook build, reporting ~10,000 findings in minified bundles. Generated output is now in globalIgnores

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-dom 7
  • 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 audit now 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) and sharp (overridden to ^0.35.3; build-time only, and unused under static export)

v1.1.3

May 2026

Dependency refresh: @dashboardpack/core 1.2.0 unblocks react-day-picker v10.

Dependencies

  • @dashboardpack/core ^1.1.0 → ^1.2.0, lifting the react-day-picker peer range to ^10.0.0
  • react-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-ui 1.6.0's new --radix-${string} CSS property index signature

v1.1.2

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

v1.1.1

May 2026

Higher-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 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)
  • 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 2026

Initial 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.