AdminKit Svelte

Full-featured admin dashboard with RBAC, data tables, and chart analytics

AdminKit Svelte is a $99 SvelteKit 5 starter for admin dashboard projects. Built with lucia, postgres-neon, drizzle, tailwind. 340 GitHub stars. Actively maintained.

AdminKit Svelte fills a gap in the SvelteKit ecosystem: a proper admin dashboard that doesn’t look like a Bootstrap theme from 2018. Built on shadcn-svelte components with Tailwind, it delivers a modern panel with collapsible sidebar navigation, breadcrumbs, and a responsive layout that actually works on tablets and phones.

The core feature set covers what most internal tools need. Lucia handles authentication with email/password and OAuth providers. Drizzle manages the Postgres schema with clean migrations. Role-based access control supports four default roles (super admin, admin, editor, viewer), and adding custom roles is straightforward thanks to a permissions table in the database.

What stands out

The data tables are the highlight. Built on TanStack Table for Svelte, they support server-side sorting, filtering, column visibility toggles, row selection, and bulk actions. For admin panels where you spend most of your time staring at tables, this level of polish saves weeks of custom work.

The analytics dashboard uses Layerchart for visualization — line charts, bar charts, area charts, and pie charts are pre-wired to sample data endpoints. Layerchart is significantly lighter than Chart.js alternatives and integrates naturally with Svelte’s reactivity.

The notification system is a nice touch. Toast notifications for actions, a notification dropdown with read/unread states, and email notifications via Resend for critical events.

Where it could improve

The starter assumes a single organization. If you need multi-tenancy — separate workspaces, org-level billing, cross-org admin views — you’ll need to architect that yourself. For a $99 starter targeting admin use cases, this feels like a notable omission.

Chart customization isn’t as plug-and-play as the rest of the UI. You’ll reference Layerchart documentation frequently, and some chart types require manual configuration that could have been abstracted into reusable components.

The seed data is minimal. The demo looks polished because the demo server has curated data, but when you run the seed script locally, you get a handful of placeholder rows that don’t showcase the tables and charts at their best.

Reviewed by Gio Rodriguez Editor, SvelteStarters

Tech Stack

Auth lucia
Database postgres-neon
ORM drizzle
Styling tailwind
Styling shadcn-svelte
Email resend
Deploy vercel
Deploy railway

Strengths

  • Role-based access control with granular permissions out of the box
  • Data tables handle sorting, filtering, pagination, and bulk actions
  • Chart dashboard uses lightweight Layerchart — no heavy dependencies
  • Dark mode and responsive sidebar layout work well on mobile

Weaknesses

  • No multi-tenant or workspace support — single-org only
  • Chart customization requires digging into Layerchart docs
  • Seed script only covers basic demo data — you'll build your own

Best for

Developers building internal tools, CRMs, or back-office panels for SaaS products

Not ideal for

Public-facing marketing sites or consumer apps where the admin aesthetic doesn't fit