hasraltechno/multidash

Free & open-source admin dashboard template built with Next.js 16, React 19, TypeScript, Tailwind CSS v4 and Radix UI. Light/dark mode, accessible charts, reusable UI kit.

TypeScript

2

36 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Multidash: MIT-licensed React 19 dashboard UI kit with 35 accessible Radix components and TanStack Table v9 (r/reactjs)

I've been working on Multidash, an open-source admin dashboard template. The part most relevant here is `@multidash/ui`, a package of 35 React 19 components built on Radix UI primitives and Tailwind CSS v4. Demo: [https://multidash-app.vercel.app](https://multidash-app.vercel.app) Source:…

2

Oct 9, 2026

README

Multidash

Release License: MIT Live demo Next.js Tailwind CSS TypeScript

Free & open-source admin dashboard template built with Next.js 16, React 19, TypeScript, Tailwind CSS v4 and Radix UI.

Clean, accessible and responsive — with light/dark mode, colorblind-safe charts and a reusable component library you can drop into any Next.js project.

Multidash dashboard preview

Live demo · Get Multidash Pro · Report a bug


✨ Features

  • ⚡ Next.js 16 App Router + React 19
  • 🔷 TypeScript in strict mode — every component, page and helper is fully typed
  • 🎨 Tailwind CSS v4 with a single token file for rebranding
  • 🌗 Light / dark / system theme plus a theme customizer — primary color, backgrounds, card style, radius and monochrome
  • 📊 Charts with Recharts — colorblind-safe palette, tooltips, screen-reader data tables
  • 🧩 35 UI components (@multidash/ui) built on Radix UI primitives — each with docs, live examples and copy-paste code
  • 📱 Fully responsive — minimizable sidebar on desktop (⌘B), drawer on mobile
  • ♿ Accessible — keyboard navigation, ARIA labels, reduced-motion support
  • 📦 Turborepo monorepo — share the UI package across apps

Included pages

PageDescription
OverviewKPI cards, revenue area chart, orders bar chart, recent orders, traffic sources
TablesBasic, standard and advanced (TanStack Table) tables with sorting, faceted filters, column visibility, selection and pagination
FormsProfile and notification settings layouts
UI ElementsDocs for every component: live examples, source code and installation steps
TypographyHeading, paragraph, list, quote and code styles with copyable classes
PricingPlan cards, feature comparison, FAQ and a Pro waitlist form
Error pages404, 500 and maintenance screens
Sign in / Sign upAuthentication page UI
⌘K searchCommand palette over every page and component

🚀 Getting started

Requirements: Node.js 20+ and pnpm (corepack enable pnpm).

git clone https://github.com/hasraltechno/multidash.git
cd multidash
pnpm install
pnpm dev

Open http://localhost:3000.

CommandDescription
pnpm devStart the dev server
pnpm buildProduction build
pnpm typecheckType-check all packages

Environment variables

All optional — copy apps/demo/.env.example to apps/demo/.env.local to use them.

VariablePurpose
NEXT_PUBLIC_SITE_URLPublic site URL for Open Graph and canonical links
RESEND_API_KEY, RESEND_SEGMENT_IDStore waitlist signups as Resend contacts
WAITLIST_WEBHOOK_URLOr send waitlist signups to any JSON webhook

📁 Project structure

multidash/
├── apps/
│   └── demo/                 # Next.js dashboard app
│       ├── app/(dashboard)/  # Pages with sidebar layout
│       ├── app/(auth)/       # Sign in / sign up
│       ├── components/       # App-specific components & charts
│       └── lib/              # Navigation, mock data, helpers
└── packages/
    ├── ui/                   # @multidash/ui — shared components & theme tokens
    └── typescript-config/    # Shared tsconfig presets

🎨 Customization

Set your own domain in apps/demo/lib/site.ts (productionUrl) or via the NEXT_PUBLIC_SITE_URL environment variable — it is used for Open Graph and canonical URLs.

All colors live in packages/ui/src/styles/globals.css. Change --primary (and --primary-text) to rebrand; chart colors (--chart-1 … --chart-5) are a validated colorblind-safe order — keep the order if you swap hues.

The theme customizer presets live in apps/demo/app/theme-presets.css — add your own by following the same pattern.

Status colors (info, success, warning, destructive, highlight) each have three roles, so bright fills never compromise text contrast:

TokenUse forExample
--successFills and solid backgroundsbg-success, fill-warning
--success-foregroundText on a solid backgroundtext-success-foreground
--success-textColored text on the page or a soft tinttext-success-text

Use a component anywhere in the app:

import { Button } from "@multidash/ui/components/button"

<Button variant="outline">Click me</Button>

💎 Multidash Pro

Need more? Multidash Pro builds on this free version with everything you need to ship a real product:

FreePro
Overview dashboard✅✅
Base UI components✅✅
Data tables with sorting, filters & selection✅✅
Analytics, E-commerce, CRM, SaaS & Finance dashboards—✅
Kanban, Calendar, Chat, Inbox, Invoice apps—✅
Working authentication & role-based access—✅
Database layer (Drizzle ORM)—✅
Payments — Stripe, Midtrans & Xendit—✅
i18n (English, Bahasa Indonesia)—✅
Data table CSV/Excel export & server-side pagination—✅
Priority support—✅

👉 See pricing & join the waitlist

🤝 Contributing

Issues and pull requests are welcome — see CONTRIBUTING.md. If Multidash saves you time, please consider giving it a ⭐ — it really helps!

📄 License

MIT © Hasral Techno

accessibility
admin-dashboard
admin-template
dark-mode
dashboard
dashboard-template
nextjs
open-source
radix-ui
react
react19
recharts
shadcn-ui
tailwindcss
tanstack-table
turborepo
typescript
ui-components

hasraltechno/multidash

Free & open-source admin dashboard template built with Next.js 16, React 19, TypeScript, Tailwind CSS v4 and Radix UI. Light/dark mode, accessible charts, reusable UI kit.

TypeScript

2

36 commits

updated Oct 12, 2026

See the code

See what people are saying

SourceMessageScoreDate

Multidash: MIT-licensed React 19 dashboard UI kit with 35 accessible Radix components and TanStack Table v9 (r/reactjs)

I've been working on Multidash, an open-source admin dashboard template. The part most relevant here is `@multidash/ui`, a package of 35 React 19 components built on Radix UI primitives and Tailwind CSS v4. Demo: [https://multidash-app.vercel.app](https://multidash-app.vercel.app) Source:…

2

Oct 9, 2026

README

Multidash

Release License: MIT Live demo Next.js Tailwind CSS TypeScript

Free & open-source admin dashboard template built with Next.js 16, React 19, TypeScript, Tailwind CSS v4 and Radix UI.

Clean, accessible and responsive — with light/dark mode, colorblind-safe charts and a reusable component library you can drop into any Next.js project.

Multidash dashboard preview

Live demo · Get Multidash Pro · Report a bug


✨ Features

  • ⚡ Next.js 16 App Router + React 19
  • 🔷 TypeScript in strict mode — every component, page and helper is fully typed
  • 🎨 Tailwind CSS v4 with a single token file for rebranding
  • 🌗 Light / dark / system theme plus a theme customizer — primary color, backgrounds, card style, radius and monochrome
  • 📊 Charts with Recharts — colorblind-safe palette, tooltips, screen-reader data tables
  • 🧩 35 UI components (@multidash/ui) built on Radix UI primitives — each with docs, live examples and copy-paste code
  • 📱 Fully responsive — minimizable sidebar on desktop (⌘B), drawer on mobile
  • ♿ Accessible — keyboard navigation, ARIA labels, reduced-motion support
  • 📦 Turborepo monorepo — share the UI package across apps

Included pages

PageDescription
OverviewKPI cards, revenue area chart, orders bar chart, recent orders, traffic sources
TablesBasic, standard and advanced (TanStack Table) tables with sorting, faceted filters, column visibility, selection and pagination
FormsProfile and notification settings layouts
UI ElementsDocs for every component: live examples, source code and installation steps
TypographyHeading, paragraph, list, quote and code styles with copyable classes
PricingPlan cards, feature comparison, FAQ and a Pro waitlist form
Error pages404, 500 and maintenance screens
Sign in / Sign upAuthentication page UI
⌘K searchCommand palette over every page and component

🚀 Getting started

Requirements: Node.js 20+ and pnpm (corepack enable pnpm).

git clone https://github.com/hasraltechno/multidash.git
cd multidash
pnpm install
pnpm dev

Open http://localhost:3000.

CommandDescription
pnpm devStart the dev server
pnpm buildProduction build
pnpm typecheckType-check all packages

Environment variables

All optional — copy apps/demo/.env.example to apps/demo/.env.local to use them.

VariablePurpose
NEXT_PUBLIC_SITE_URLPublic site URL for Open Graph and canonical links
RESEND_API_KEY, RESEND_SEGMENT_IDStore waitlist signups as Resend contacts
WAITLIST_WEBHOOK_URLOr send waitlist signups to any JSON webhook

📁 Project structure

multidash/
├── apps/
│   └── demo/                 # Next.js dashboard app
│       ├── app/(dashboard)/  # Pages with sidebar layout
│       ├── app/(auth)/       # Sign in / sign up
│       ├── components/       # App-specific components & charts
│       └── lib/              # Navigation, mock data, helpers
└── packages/
    ├── ui/                   # @multidash/ui — shared components & theme tokens
    └── typescript-config/    # Shared tsconfig presets

🎨 Customization

Set your own domain in apps/demo/lib/site.ts (productionUrl) or via the NEXT_PUBLIC_SITE_URL environment variable — it is used for Open Graph and canonical URLs.

All colors live in packages/ui/src/styles/globals.css. Change --primary (and --primary-text) to rebrand; chart colors (--chart-1 … --chart-5) are a validated colorblind-safe order — keep the order if you swap hues.

The theme customizer presets live in apps/demo/app/theme-presets.css — add your own by following the same pattern.

Status colors (info, success, warning, destructive, highlight) each have three roles, so bright fills never compromise text contrast:

TokenUse forExample
--successFills and solid backgroundsbg-success, fill-warning
--success-foregroundText on a solid backgroundtext-success-foreground
--success-textColored text on the page or a soft tinttext-success-text

Use a component anywhere in the app:

import { Button } from "@multidash/ui/components/button"

<Button variant="outline">Click me</Button>

💎 Multidash Pro

Need more? Multidash Pro builds on this free version with everything you need to ship a real product:

FreePro
Overview dashboard✅✅
Base UI components✅✅
Data tables with sorting, filters & selection✅✅
Analytics, E-commerce, CRM, SaaS & Finance dashboards—✅
Kanban, Calendar, Chat, Inbox, Invoice apps—✅
Working authentication & role-based access—✅
Database layer (Drizzle ORM)—✅
Payments — Stripe, Midtrans & Xendit—✅
i18n (English, Bahasa Indonesia)—✅
Data table CSV/Excel export & server-side pagination—✅
Priority support—✅

👉 See pricing & join the waitlist

🤝 Contributing

Issues and pull requests are welcome — see CONTRIBUTING.md. If Multidash saves you time, please consider giving it a ⭐ — it really helps!

📄 License

MIT © Hasral Techno

accessibility
admin-dashboard
admin-template
dark-mode
dashboard
dashboard-template
nextjs
open-source
radix-ui
react
react19
recharts
shadcn-ui
tailwindcss
tanstack-table
turborepo
typescript
ui-components