Kavoryn Documentation
Welcome to the official developer guide for Kavoryn — a modern, responsive SaaS workspace template built with Next.js App Router, TypeScript, and rich dashboard components.
77 Routes
Complete SaaS suiteDashboards, projects, Kanban board, contacts, interactive calendar, messaging, shop, and CMS.
Zero jQuery
Modern React 19All interactive controls, modals, tabs, drag-and-drop boards, and dropdowns use clean React state.
SVG Charts
Zero chart bloatNative SVG implementations of Flot, Morris, Chart.js, Chartist, Peity, and Sparklines.
Dark / Light
Built-in theme engineSeamless theme switching via CSS custom properties and client persistence in localStorage.
Getting Started
Kavoryn is configured as a standard Next.js 16 project with TypeScript. Requires Node.js 20.9.0 or newer (Node 22 recommended).
1. Installation
Install the project dependencies using npm:
npm install2. Development Server
Run the development server with Turbopack:
npm run devOpen http://localhost:3000 in your browser to view the application.
3. Production Build & Verification
Validate TypeScript types and compile an optimized production build:
npm run typecheck
npm run build
npm startProject Directory Structure
Organized following official Next.js App Router best practices, separating routes, shared components, static data, and styles:
src/
├── app/
│ ├── (dashboard)/ # Workspace pages wrapped in the shared App Shell layout
│ │ ├── layout.tsx # Shell layout (Header, Sidebar, Navigation)
│ │ ├── page.tsx # Main Dashboard route (/)
│ │ ├── projects/ # Projects view (/projects)
│ │ ├── kanban/ # Drag-and-drop Kanban (/kanban)
│ │ ├── documentation/ # This documentation page
│ │ └── ... # Other workspace routes (CMS, Shop, Tables, etc.)
│ ├── (auth)/ # Standalone authentication routes (Login, Register, Lock)
│ ├── layout.tsx # Root HTML layout, font setup, and UI Provider
│ ├── not-found.tsx # Global 404 page
│ └── error.tsx # Error boundary
├── components/
│ ├── layout/ # AppShell, Header, Sidebar, Brand, NavEntry
│ ├── pages/ # Page view components (Projects, Kanban, Shop, etc.)
│ ├── ui/ # Reusable controls (Modals, Icons, DataTables, Toasts)
│ └── charts/ # Native responsive SVG charts (Flot, Chart.js, etc.)
├── data/ # Typed mock data records, navigation menu, and route map
├── hooks/ # Custom React hooks (e.g. useStorage for local persistence)
├── lib/ # Utility helpers (date formatting, CSV export)
├── styles/
│ ├── kavoryn.css # Custom branding, dark mode, responsive adapters
│ └── original.css # Core dashboard design system styles
public/ # Static assets, logos, and profile imagesTheming & Customization
The visual styling is managed through CSS custom properties defined in src/styles/kavoryn.css.
Dark Mode
Dark theme is triggered dynamically by changing the data-theme-version attribute on <body>:
// Toggle dark / light mode programmatically:
document.body.setAttribute('data-theme-version', isDark ? 'dark' : 'light');Color Customization
To change the primary brand color throughout the entire application, edit the CSS variables in src/styles/kavoryn.css:
:root {
--primary: #886cc0; /* Main brand purple */
--rgba-primary-1: rgba(136, 108, 192, 0.1);
--kv-sidebar: 264px; /* Sidebar width */
--kv-header: 88px; /* Header height */
}Interactive Workspace Features
📌 Kanban Task Board
Supports native HTML5 drag-and-drop between columns, column task counter updates, accessible "Move to" select controls, task creation modals, and instant localStorage persistence.
💬 Realtime Messaging UI
Live chat interface with conversation switching, message composition, timestamps, and responsive mobile sliding drawer for conversation selection.
📅 Interactive Calendar
Calendar grid with month-by-month navigation, category filters (Work, Personal, Urgent), day selection, and modal-based event scheduling.
📊 Data Tables & Export
Features instant search, column sorting, customizable page sizes, pagination controls, and one-click CSV data export.
Next.js Routes Directory
Browse all 76 Next.js application routes available in the workspace.
| Page Title | Next.js Route | Category | Layout |
|---|---|---|---|
| Dashboard | / | Workspace & Dashboard | Workspace |
| Dashboard Dark | /dashboard-dark | Workspace & Dashboard | Workspace |
| Projects | /projects | Workspace & Dashboard | Workspace |
| Contacts | /contacts | Workspace & Dashboard | Workspace |
| Kanban Board | /kanban | Workspace & Dashboard | Workspace |
| Calendar | /calendar | Workspace & Dashboard | Workspace |
| Messages | /messages | Workspace & Dashboard | Workspace |
| Content | /cms/content | CMS | Workspace |
| Add Content | /cms/content/new | CMS | Workspace |
| Menus | /cms/menus | CMS | Workspace |
| Email Templates | /cms/email-templates | CMS | Workspace |
| Add Email Template | /cms/email-templates/new | CMS | Workspace |
| Blog | /cms/blog | CMS | Workspace |
| Add Blog Post | /cms/blog/new | CMS | Workspace |
| Blog Categories | /cms/categories | CMS | Workspace |
| Profile | /profile | Apps & E-Commerce | Workspace |
| Edit Profile | /profile/edit | Apps & E-Commerce | Workspace |
| Post Details | /posts/details | Apps & E-Commerce | Workspace |
| Email Compose | /email/compose | Apps & E-Commerce | Workspace |
| Email Inbox | /email/inbox | Apps & E-Commerce | Workspace |
| Email Read | /email/read | Apps & E-Commerce | Workspace |
| App Calendar | /apps/calendar | Apps & E-Commerce | Workspace |
| Product Grid | /shop/products | Apps & E-Commerce | Workspace |
| Product List | /shop/products/list | Apps & E-Commerce | Workspace |
| Product Detail | /shop/products/details | Apps & E-Commerce | Workspace |
| Product Order | /shop/orders | Apps & E-Commerce | Workspace |
| Checkout | /shop/checkout | Apps & E-Commerce | Workspace |
| Invoice | /shop/invoice | Apps & E-Commerce | Workspace |
| Customers | /shop/customers | Apps & E-Commerce | Workspace |
| Widgets | /widgets | Workspace & Dashboard | Workspace |
| Maps | /maps | Workspace & Dashboard | Workspace |
| Table Bootstrap Basic | /tables/basic | Tables | Workspace |
| Table Datatable Basic | /tables/data | Tables | Workspace |
| Starter Page | /starter | Workspace & Dashboard | Workspace |
| Login | /auth/login | Authentication | Standalone |
| Register | /auth/register | Authentication | Standalone |
| Forgot Password | /auth/forgot-password | Authentication | Standalone |
| Lock Screen | /auth/lock | Authentication | Standalone |
| Element | /forms/elements | Forms | Workspace |
| Validation | /forms/validation | Forms | Workspace |
| Pickers | /forms/pickers | Forms | Workspace |
| Wizard | /forms/wizard | Forms | Workspace |
| Rich Text Editor | /forms/editor | Forms | Workspace |
| Modal | /ui/modal | UI Kit | Workspace |
| Notifications | /plugins/toastr | Plugins | Workspace |
| Typography | /ui/typography | UI Kit | Workspace |
| Searchable Select | /plugins/select2 | Plugins | Workspace |
| Chartjs | /charts/chartjs | Charts | Workspace |
| Peity | /charts/peity | Charts | Workspace |
| Badge | /ui/badge | UI Kit | Workspace |
| Tab | /ui/tab | UI Kit | Workspace |
| Error 403 | /errors/403 | Error Pages | Standalone |
| Dropdown | /ui/dropdown | UI Kit | Workspace |
| Flot | /charts/flot | Charts | Workspace |
| Card | /ui/card | UI Kit | Workspace |
| Image Gallery | /plugins/lightgallery | Plugins | Workspace |
| Error 404 | /errors/404 | Error Pages | Standalone |
| Morris | /charts/morris | Charts | Workspace |
| List Group | /ui/list-group | UI Kit | Workspace |
| Popover | /ui/popover | UI Kit | Workspace |
| Grid | /ui/grid | UI Kit | Workspace |
| Sparkline | /charts/sparkline | Charts | Workspace |
| Range Sliders | /plugins/noui-slider | Plugins | Workspace |
| Chartist | /charts/chartist | Charts | Workspace |
| Button Group | /ui/button-group | UI Kit | Workspace |
| Error 503 | /errors/503 | Error Pages | Standalone |
| Dialogs | /plugins/sweetalert | Plugins | Workspace |
| Progressbar | /ui/progressbar | UI Kit | Workspace |
| Carousel | /ui/carousel | UI Kit | Workspace |
| Sortable Lists | /plugins/nestable | Plugins | Workspace |
| Alert | /ui/alert | UI Kit | Workspace |
| Error 500 | /errors/500 | Error Pages | Standalone |
| Accordion | /ui/accordion | UI Kit | Workspace |
| Error 400 | /errors/400 | Error Pages | Standalone |
| Pagination | /ui/pagination | UI Kit | Workspace |
| Button | /ui/button | UI Kit | Workspace |
Backend & Database Integration
The template is architected so that mock data and local storage state can be swapped out with real database connections and API endpoints without altering UI markup.
Data Layer Location
All initial dataset models reside in src/data/ (e.g. projects.ts, contacts.ts, messages.ts).
Connecting to a Backend (Prisma, Supabase, Firebase, or REST API)
Create standard Next.js Route Handlers or Server Actions in src/app/api/...:
// Example Route Handler: src/app/api/projects/route.ts
import { NextResponse } from 'next/server';
export async function GET() {
// Fetch from your database (e.g., Prisma, Supabase, Postgres)
// const projects = await prisma.project.findMany();
return NextResponse.json({ success: true, data: [] });
}Production Deployment
Kavoryn deploys seamlessly on any Node.js hosting platform or container environment.
Vercel (Recommended)
- Push your codebase to GitHub, GitLab, or Bitbucket.
- Import the repository into the Vercel dashboard.
- Vercel automatically detects Next.js, sets the build command to
npm run build, and deploys.
Node.js Self-Hosted / Docker
To host on your own VPS or server, build the application and start the server:
npm run build
npm start -p 3000