Convert Figma logo to code with AI

ColorlibHQ logogentelella

Free Bootstrap 5 Admin Dashboard Template

21,424
6,833
21,424
1

Top Related Projects

Free Bootstrap Admin & Dashboard Template Built for AI-Assisted Development

11,956

Open-source components, blocks, and AI agents designed to speed up your workflow. Import them seamlessly into your favorite tools through Registry and MCPs.

41,280

Tabler is free and open-source HTML Dashboard UI Kit built on Bootstrap

A Free Responsive Admin Dashboard Template Built With Bootstrap 4. Elegant UI Theme for Your Web App!

Free Bootstrap 5 admin/dashboard template

Quick Overview

Gentelella is a free, open-source Bootstrap admin template. It provides a clean and intuitive user interface for building responsive web applications and dashboards. The template includes various UI components, plugins, and layouts that can be easily customized to fit different project requirements.

Pros

  • Rich set of pre-built UI components and pages
  • Responsive design that works well on desktop and mobile devices
  • Active community and regular updates
  • Easy to customize and extend

Cons

  • Large file size due to numerous included libraries and plugins
  • Some users report occasional conflicts between different JavaScript libraries
  • Learning curve for beginners to understand the structure and customize effectively

Code Examples

  1. Adding a custom chart using Chart.js:
<canvas id="myChart"></canvas>

<script>
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgba(255, 99, 132, 1)',
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            y: {
                beginAtZero: true
            }
        }
    }
});
</script>
  1. Creating a custom form with validation:
<form id="demo-form" data-parsley-validate>
  <label for="fullname">Full Name * :</label>
  <input type="text" id="fullname" class="form-control" name="fullname" required />

  <label for="email">Email * :</label>
  <input type="email" id="email" class="form-control" name="email" data-parsley-trigger="change" required />

  <label for="message">Message :</label>
  <textarea id="message" class="form-control" name="message"></textarea>

  <br/>
  <input type="submit" class="btn btn-success" value="Validate form">
</form>

<script>
$(document).ready(function() {
    $('#demo-form').parsley();
});
</script>
  1. Implementing a data table with sorting and searching:
<table id="datatable" class="table table-striped table-bordered" style="width:100%">
  <thead>
    <tr>
      <th>Name</th>
      <th>Position</th>
      <th>Office</th>
      <th>Age</th>
      <th>Start date</th>
      <th>Salary</th>
    </tr>
  </thead>
  <tbody>
    <!-- Add your table data here -->
  </tbody>
</table>

<script>
$(document).ready(function() {
    $('#datatable').DataTable();
});
</script>

Getting Started

  1. Download or clone the Gentelella repository from GitHub.
  2. Navigate to the project directory and open index.html in your browser to view the demo.
  3. Copy the necessary HTML structure, CSS, and JavaScript files to your project.
  4. Customize the template by modifying the HTML, CSS, and JavaScript files according to your needs.
  5. Refer to the documentation for detailed information on available components and customization options.

Competitor Comparisons

Free Bootstrap Admin & Dashboard Template Built for AI-Assisted Development

Pros of CoreUI Free Bootstrap Admin Template

  • More comprehensive UI component library with a wider range of pre-built elements
  • Better documentation and easier customization options
  • Regular updates and active community support

Cons of CoreUI Free Bootstrap Admin Template

  • Steeper learning curve for beginners due to its extensive features
  • Slightly larger file size, which may impact load times for smaller projects

Code Comparison

CoreUI:

<div class="sidebar sidebar-dark sidebar-fixed" id="sidebar">
  <div class="sidebar-brand d-none d-md-flex">
    <svg class="sidebar-brand-full" width="118" height="46" alt="CoreUI Logo">
      <use xlink:href="assets/brand/coreui.svg#full"></use>
    </svg>
  </div>
</div>

Gentelella:

<div class="col-md-3 left_col">
  <div class="left_col scroll-view">
    <div class="navbar nav_title" style="border: 0;">
      <a href="index.html" class="site_title"><i class="fa fa-paw"></i> <span>Gentelella Alela!</span></a>
    </div>
  </div>
</div>

Both templates offer robust admin dashboard solutions, but CoreUI provides a more extensive component library and better documentation. However, Gentelella may be easier for beginners to grasp and has a smaller file size. The code comparison shows different approaches to sidebar implementation, with CoreUI using more modern SVG icons and Gentelella opting for Font Awesome icons.

11,956

Open-source components, blocks, and AI agents designed to speed up your workflow. Import them seamlessly into your favorite tools through Registry and MCPs.

Error generating comparison

41,280

Tabler is free and open-source HTML Dashboard UI Kit built on Bootstrap

Pros of Tabler

  • More modern and actively maintained, with frequent updates
  • Extensive component library and UI elements
  • Better documentation and examples

Cons of Tabler

  • Steeper learning curve due to more complex structure
  • Larger file size and potentially slower load times
  • May require more customization for specific use cases

Code Comparison

Tabler (using CSS custom properties):

<div class="card">
  <div class="card-body">
    <h3 class="card-title">Card title</h3>
    <p class="card-text">Some quick example text.</p>
  </div>
</div>

Gentelella (using traditional CSS classes):

<div class="x_panel">
  <div class="x_title">
    <h2>Panel title</h2>
    <div class="clearfix"></div>
  </div>
  <div class="x_content">
    <p>Some quick example text.</p>
  </div>
</div>

Tabler uses a more modern approach with CSS custom properties and a simpler structure, while Gentelella relies on traditional CSS classes and a more complex nested structure. Tabler's code is generally more concise and easier to read, but may require more familiarity with modern CSS practices.

A Free Responsive Admin Dashboard Template Built With Bootstrap 4. Elegant UI Theme for Your Web App!

Pros of StarAdmin-Free-Bootstrap-Admin-Template

  • More modern and sleek design with a clean, minimalist aesthetic
  • Includes a dark theme option out of the box
  • Better mobile responsiveness and touch-friendly UI elements

Cons of StarAdmin-Free-Bootstrap-Admin-Template

  • Fewer pre-built pages and components compared to Gentelella
  • Less extensive documentation and community support
  • Limited customization options without upgrading to the pro version

Code Comparison

StarAdmin-Free-Bootstrap-Admin-Template:

<nav class="navbar default-layout col-lg-12 col-12 p-0 fixed-top d-flex flex-row">
  <div class="text-center navbar-brand-wrapper d-flex align-items-top justify-content-center">
    <a class="navbar-brand brand-logo" href="index.html">
      <img src="images/logo.svg" alt="logo" />
    </a>
  </div>
</nav>

Gentelella:

<div class="top_nav">
  <div class="nav_menu">
    <nav>
      <div class="nav toggle">
        <a id="menu_toggle"><i class="fa fa-bars"></i></a>
      </div>
    </nav>
  </div>
</div>

Both templates use Bootstrap as their foundation, but StarAdmin has a more modern approach to layout and styling. Gentelella offers more flexibility and customization options, while StarAdmin focuses on a cleaner, out-of-the-box design. The code snippets show differences in navbar structure and class naming conventions between the two templates.

Free Bootstrap 5 admin/dashboard template

Pros of Vali Admin

  • More modern and cleaner design aesthetic
  • Better responsiveness and mobile-friendly layout
  • Lighter weight and faster loading times

Cons of Vali Admin

  • Less extensive documentation and examples
  • Smaller community and fewer third-party extensions
  • Limited customization options compared to Gentelella

Code Comparison

Vali Admin (SCSS):

.app {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
  overflow-x: hidden;
}

Gentelella (SCSS):

body {
  color: $body-color;
  background: $body-bg;
  font-family: "Helvetica Neue", Roboto, Arial, "Droid Sans", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.471;
}

Vali Admin focuses on a flexible, modern layout structure using Flexbox, while Gentelella sets more specific global styles for typography and colors. This reflects Vali Admin's emphasis on simplicity and responsiveness, compared to Gentelella's more comprehensive styling approach.

Both templates offer robust admin dashboard solutions, but Vali Admin is better suited for projects requiring a lightweight, modern design, while Gentelella excels in feature-rich applications with extensive customization needs.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Gentelella v4 — Free Admin Dashboard Template

npm version npm downloads jsDelivr GitHub stars License: MIT Made with Vite 8 No jQuery PWA Ready

Gentelella v4 is a free, open-source admin dashboard template built with vanilla JavaScript, SCSS, and Vite 8. No Bootstrap. No jQuery. No SPA framework. A modern alternative to Bootstrap admin templates for SaaS dashboards, CRM systems, internal tools, e-commerce backends, and project management apps.

58 production-ready HTML pages, 20 ECharts chart variants, fully interactive inbox / kanban / calendar / file manager / settings, a live theme generator, a component playground, a ⌘K command palette, dark mode, and PWA support. MIT-licensed. Free for personal and commercial use.

Built for 2026 by Colorlib. Live demo →

Gentelella v4 admin dashboard preview — light theme Gentelella v4 admin dashboard preview — dark theme

Inbox · Kanban · Theme generator
Inbox client with folders, reader pane, and compose modal Kanban board with drag-and-drop task management Live theme generator with real-time color customization

Generate your own screenshots — npm run build && npm run screenshots boots Playwright and captures 22 key pages × light + dark = 44 PNGs to docs/screenshots/.


Why Gentelella v4

The original Gentelella has been a free Bootstrap admin template since 2014 — 3M+ downloads, 4.5k+ GitHub stars. v4 is a ground-up redesign:

  • No Bootstrap, no jQuery — vanilla JavaScript + SCSS. ~178 MB node_modules (down from ~600 MB on v2).
  • Vite 8 build system — instant HMR, multi-page app with auto-discovered entry points, hashed assets.
  • Light + dark mode with prefers-color-scheme detection and pre-paint script (no flash of incorrect theme).
  • PWA-ready — installable on desktop and mobile, offline shell, service worker.
  • AI-assisted development — ships with helper files for Claude Code, Cursor, GitHub Copilot, and any agents.md-compatible tool.

Perfect for: SaaS dashboards, CRM, ERP, internal admin panels, project management tools, e-commerce backends, analytics dashboards, HR/payroll, booking systems, content management.

Features

  • 🎨 Live theme generator — pick a primary color, watch every chart, button, badge, and link restyle in real time. Copy or download the generated SCSS tokens. Demo: theme.html
  • 🧪 Component playground — every reusable component on one page, side-by-side with its exact HTML and a Copy button. Demo: playground.html
  • ⌘K command palette — fuzzy search across all 58 pages and inline actions
  • 📬 Real inbox client — folders, reader pane, compose modal, reply/forward, J/K/R/S/# keyboard shortcuts, search across the active folder
  • 📱 PWA — installable on macOS / Windows / iOS / Android, offline shell, service worker
  • ↔️ Sidebar rail mode — desktop hamburger collapses sidebar to icon-only with hover tooltips and click-to-flyout submenus
  • 🌗 Dark mode — prefers-color-scheme aware, pre-paint script prevents flash, manual toggle persists in localStorage
  • ♿ Accessibility — skip-link, keyboard focus rings, ARIA labels on interactive controls, semantic landmarks, screen-reader-friendly DataTables

What you get

SurfaceWhat's in it
Dashboards4 variants — operations, analytics (heatmap, funnel, cohort matrix), sales (gauge, radar, pipeline), system health (resource bars, deployment list, error log)
AuthSign-in · social (Google, GitHub) · register · forgot password · 2FA · lock screen · 403 / 404 / 500
FormsGeneral form · advanced controls · 6-step wizard · drag-and-drop upload · validation · date-range picker · multi-select · rich text editor
TablesDataTables — sort, search, paginate, row selection, CSV export · 23-row + 50-row demos
Charts20 ECharts variants — line, area, stacked area, bar, horizontal bar, mixed bar/line, donut, pie, radar, gauge, scatter, heatmap, funnel, candlestick, polar bar, treemap, sankey, calendar heatmap, gantt + dashboard mini-line
App pagesCalendar (full CRUD) · inbox (folders, compose, reader) · chat (8 threads) · kanban (drag-drop) · file manager (tree + grid) · notifications · invoice (editable line items) · profile · settings (persisted) · FAQ
E-commerceStorefront · product detail · order list · order detail · pricing tiers
AdminContacts · user management (search, filters, role editor) · maintenance · coming-soon
UI libraryComponent playground · theme generator · 120+ icons in 14 categories · typography · 18 widget variants · media gallery · general elements (banners, accordion, drawer, popover, timeline)
MapLeaflet customer map
MarketingLanding page with hero, stats band, features, showcase, testimonials, FAQ
LayoutsFixed sidebar / fixed footer / nested page / blank starter

Plus: 10 SCSS partials · build-time + runtime shell (no FOUC) · data-page attribute auto-highlights nav · mobile drawer + desktop rail mode · light/dark with prefers-color-scheme + pre-paint · cross-document view transitions · skip-to-content · keyboard focus-visible · accordion sidebar with sessionStorage memory · localStorage-persisted settings · per-page <meta description>, Open Graph, and Twitter Card tags auto-injected at build time.

Upgrade to a Premium Dashboard

Need advanced features, dedicated support, and production-ready code? Explore our handpicked collection of professional admin templates on DashboardPack.

Apex Dashboard — Next.js 16 admin template with shadcn/ui
Apex Dashboard
Next.js 16 + React 19 + Tailwind CSS v4 + shadcn/ui. 5 dashboard variants, 20+ app pages, 125+ routes, full CRUD.
Zenith — ultra-minimal Next.js admin dashboard with shadcn/ui
Zenith Dashboard
Next.js 16 + React 19 + Tailwind CSS v4 + shadcn/ui. Achromatic design, 50+ pages, 6 dashboards, live theme customizer.
Haze — Nuxt 4 admin dashboard with 92+ pages and 5 dashboards
Haze
Nuxt 4 + Nuxt UI v4 + Tailwind CSS v4. 92+ pages, 7 layouts, 5 dashboards, RTL, i18n, mock API layer.
TailPanel — modern React and Tailwind CSS admin panel
TailPanel
React + TypeScript + Tailwind CSS + Vite. 9 dashboard designs, dark and light themes.
Admindek — feature-rich Bootstrap 5 dashboard with dark mode
Admindek
Bootstrap 5 + vanilla JS. 100+ components, dark/light modes, RTL support, 10 color presets.
SvelteForge Premium — SvelteKit admin dashboard with multi-tenant support
SvelteForge Premium
SvelteKit + Tailwind CSS v4. 30+ wired-up modules, multi-tenant from row zero, dark/light/system mode.

View All Premium Templates →

Tech stack

  • Vite 8 with Rolldown — multi-page app, 58 auto-discovered entry points
  • SCSS with @use modules — no Bootstrap, no framework
  • Vanilla ES2022 — no jQuery, no SPA framework, no build-time JSX
  • Apache ECharts 6 — lazy-imported, modular (only chart types actually used)
  • DataTables.net 2 core — re-skinned from scratch to match the design system
  • Leaflet 1.9 — lazy-imported on the map page only
  • Inter font from Google Fonts
  • Playwright (devDep) — for the screenshot pipeline and smoke tests

3 production deps, 10 dev deps, ~178 MB node_modules (was ~600 MB on the old Gentelella).

Documentation

Full docs live at https://gentelella.colorlib.com/docs/ — covering every part of v4:

TopicDoc
Setup, build, deploygetting-started
Directory layoutproject-structure
Shell injection + lazy modulesarchitecture
Tokens, dark mode, theme generatortheming
Adding pages + sidebar entriesadding-pages
Component playgroundplayground
ECharts factoriesecharts
DataTables, row selection, CSVtables
Inputs, validation, custom controlsforms
showModal, showToast, openMenuoverlays
⌘Kcommand palette
Inbox clientinbox
Kanban boardkanban
Vite multi-page setupvite-build
Service worker, manifest, offlinepwa
Hosts, subpath, cache headersdeployment
IntelliSense via .d.tstypescript
Seed vs HTTP backend (?api=1)data-adapter
Coming from old Gentelellamigration-v2
Common questionsFAQ

Quick start

git clone https://github.com/ColorlibHQ/gentelella.git
cd gentelella
npm install
npm run dev

Open http://localhost:9173/production/index.html. The dev server hot-reloads SCSS, JS, and HTML. Override the port with PORT=4000 npm run dev.

Production build

npm run build

Outputs static HTML + hashed JS/CSS to dist/. Deploy the dist/ folder to any static host (Netlify, Vercel, Cloudflare Pages, S3, GitHub Pages).

To deploy under a subpath (e.g. https://example.com/admin/):

BASE_PATH=/admin/ npm run build

npm package

The package is consumable as an npm dependency for granular imports:

npm install gentelella
import { mountShell, showModal, showToast } from 'gentelella';
import 'gentelella/scss/v4/main.scss';

Subpath exports: gentelella/v4/* (JS modules), gentelella/scss/* (styles), gentelella/types (TypeScript declarations).

CDN (jsDelivr)

The package ships the pre-built dist/ and the unbundled src/, so every file is reachable via jsDelivr without a bundler. Useful for prototyping, design-system inspection, or pulling individual ES modules:

<!-- Pull individual ES-module helpers — paths under src/v4/ are stable -->
<script type="module">
  import { showModal } from 'https://cdn.jsdelivr.net/npm/gentelella@4/src/v4/modal.js';
  import { showToast } from 'https://cdn.jsdelivr.net/npm/gentelella@4/src/v4/toast.js';
  showToast('Hello from CDN', { variant: 'success' });
</script>

Browse the 58 built demo pages straight from CDN — every reference page renders with all assets resolved:

https://cdn.jsdelivr.net/npm/gentelella@4/dist/production/index.html
https://cdn.jsdelivr.net/npm/gentelella@4/dist/production/inbox.html
https://cdn.jsdelivr.net/npm/gentelella@4/dist/production/kanban.html
…

Heads-up on hashing. Vite emits content-hashed asset filenames in dist/assets/ and dist/js/ (main-v4-DDS6x4g-.css etc.), so direct CDN URLs for those chunks change on every release. The main src/main-v4.js entry also imports SCSS source, so it isn't browser-loadable — use it through your bundler. For an AdminLTE-style single-file <script src> drop-in with a stable URL, use the npm package with your own bundler instead. Gentelella v4's CDN strength is browsing the demo HTML pages and importing individual src/v4/* ES-module helpers.

Scripts

npm run dev              Start Vite dev server (port 9173)
npm run build            Production build to dist/
npm run build:dev        Non-minified build (debugging)
npm run preview          Serve dist/ to preview the production build (port 9174)
npm run analyze          Build + open the bundle treemap
npm run new -- <slug>    Scaffold a new page (see `--help` for flags)
npm run screenshots      Boot Playwright + capture 44 PNGs to docs/screenshots/
npm run smoke            Boot dev server, hit every page, assert HTTP 200
npm run deploy:preview   Build + sync to R2 with per-file cache headers
npm run lint             ESLint across src/
npm run format           Prettier write across src/

AI-assisted development

Gentelella v4 ships with helper files for the major AI coding tools — drop the repo open in any of them and the assistant gets immediate, accurate context about the architecture, conventions, and recipes:

ToolFile
Claude CodeCLAUDE.md
Cursor.cursor/rules/project.mdc
GitHub Copilot.github/copilot-instructions.md
Aider, Cline, Codex, Continue (and other agents.md tools)AGENTS.md

Each file documents the hard rules (vanilla DOM only, single entry point, shell opt-in via body attributes, NAV as one constant, overlay helpers, CSS custom properties for colors, subpath-safe URLs), anti-patterns to avoid, and copy-pasteable recipes for adding pages, charts, modals, and toasts.

Project layout

src/
├── main-v4.js                 Entry — mounts shell, initializes charts/tables
├── v4/
│   ├── shell.js               Runtime: mobile drawer, theme toggle, dropdowns
│   ├── shell-render.js        Pure: nav config + sidebar/topbar/footer HTML
│   ├── charts.js              ECharts factories (revenue, sales, donut, …)
│   ├── tables.js              DataTables init for [data-datatable]
│   ├── menus.js               Popover menus + side panels
│   ├── modal.js               Modal dialog system
│   ├── toast.js               Toast notifications
│   ├── command-palette.js     ⌘K fuzzy search
│   ├── calendar.js            Month-grid calendar
│   ├── inbox.js               Inbox folder + message list
│   ├── kanban.js              Drag-and-drop kanban board
│   ├── file-manager.js        Tree + grid file browser
│   ├── form-controls.js       Date range, multi-select, rich text
│   ├── settings.js            localStorage-backed settings page
│   ├── details.js             Project / order / contact detail panels
│   ├── markup.js              Pure string helpers for JS-rendered content
│   ├── data-adapter.js        Seed + HTTP adapters for backend hydration
│   ├── product-images.js      Product gallery zoom
│   └── product-mockups.js     SVG product mockups
└── scss/v4/
    ├── main.scss              @use aggregator
    ├── _tokens.scss           CSS custom properties (colors, sidebar, fonts, radii)
    ├── _layout.scss           Sidebar, topbar, main, grid, footer, responsive
    ├── _components.scss       Buttons, cards, tables, status, toggles, progress
    ├── _forms.scss            Inputs, selects, validation, input groups
    ├── _widgets.scss          Stat cards, activity, donuts, sparklines, todos
    ├── _pages.scss            Pagination, alerts, calendar, inbox, invoice, …
    ├── _datatable.scss        DataTables UI overrides
    ├── _auth.scss             Login + error layouts
    └── _apps.scss             Chat, kanban, file manager, settings

production/                    58 entry HTML pages — one per surface
public/                        Static assets copied as-is
dist/                          Build output (gitignored)
types/gentelella.d.ts          TypeScript declarations
vite.config.js                 Multi-page Vite config

Customization

Design tokens

Every color, radius, sidebar dimension, and font setting lives as a CSS custom property in src/scss/v4/_tokens.scss. Edit :root, save, the Vite dev server reloads.

Want a different brand color? Change --primary and --primary-dk. Every chart, every button, every active nav item updates — ECharts reads these variables at chart-init time.

Adding a page

The fast way:

npm run new -- reports --title "Reports" --pretitle "Admin" \
  --breadcrumb "Home > Admin > Reports" --nav-group "Admin" --icon "profile"

This creates production/reports.html with the standard skeleton and (with --nav-group) inserts a sidebar entry into the NAV array of src/v4/shell-render.js. Vite auto-discovers the new entry — no config change needed. Run npm run new -- --help for all options, or use --dry-run to preview without writing.

The manual way:

  1. Copy any existing page in production/ (e.g. profile.html) as your starting point.
  2. Update the <title>, data-page, and data-breadcrumb attributes.
  3. Replace the <main> content with your markup using the v4 components.
  4. Optionally add a new sidebar item by editing the NAV array in src/v4/shell-render.js.

The shell auto-marks the matching nav item active based on data-page.

Adding a chart

Add a factory function to src/v4/charts.js following the revenueLine / salesBar pattern, register it in the charts map, then drop a <div data-chart="your-name" style="width:100%;height:300px"></div> into any page. Colors come from the design tokens automatically.

Adding a sortable table

Mark up a regular <table class="table" data-datatable> with <thead> and <tbody>. The init runs automatically. Use <th data-orderable="false"> to disable sorting on a column, and data-page-length="25" on the table to change the page size.

Sidebar navigation

The sidebar is rendered from a single source — the NAV array in src/v4/shell-render.js. Edit there, every page updates.

TypeScript / IntelliSense

Type declarations for the public JS surface ship in types/gentelella.d.ts and are wired up via the types field in package.json. VS Code resolves IntelliSense automatically — no tsconfig required, no rewrite. Covers mountShell, showModal, showToast, openMenu, seedAdapter/httpAdapter, chart/table init, and the NAV schema.

Markup helpers

For pages that build content from data (orders rows, inbox threads, kanban cards), src/v4/markup.js exposes pure string-returning helpers — statTile(), statusBadge(), customerCell(), activityItem(), visitorRow(), emptyState(), banner(), skeletonRows(), plus escapeHtml(). Live examples on the Playground. Static pages keep their hand-written HTML — these are for JS-driven content where the boilerplate adds up.

SEO and metadata

Every page is built with SEO in mind:

  • Semantic HTML5 — <main>, <nav>, <aside>, <header>, semantic <h1> page titles
  • Per-page <meta description> auto-derived from the breadcrumb
  • Open Graph + Twitter Card tags injected at build time
  • PWA manifest + theme-color (light + dark variants)
  • Pre-paint theme script — eliminates flash of incorrect theme on load
  • Skip-to-content link + ARIA landmarks for screen reader navigation
  • Cache-Control-aware deploy (scripts/deploy-preview.sh) — long-cache for hashed assets, short-cache for HTML, no-cache for service worker

Deployment

Static template — deploy dist/ anywhere that serves files.

HostNotes
Netlify / Vercel / Cloudflare PagesDrop in, no config needed. Set BASE_PATH=/ (default).
GitHub PagesBASE_PATH=/your-repo/ npm run build, push dist/ to gh-pages.
S3 / CloudFrontUpload dist/. Set the bucket as a static site, point CloudFront at it.
Any nginx / Apachecp -r dist/* /var/www/html/.
Cloudflare R2Use the built-in npm run deploy:preview for per-file cache headers.

No backend. No environment variables required (other than BASE_PATH if you're deploying under a subpath).

What's intentionally NOT included

  • No backend. Forms post to # and don't persist. The dashboard is a UI template — wire up your own API.
  • No auth. The login form is a redirect; there's no session, no token, no validation.
  • No real-time. No WebSockets, no SSE, no polling. Activity feeds and stats are static.
  • No state management. Toggles and todo checkboxes flip via direct DOM mutation.
  • No formal accessibility audit. Skip-link, focus rings, ARIA labels and landmarks are wired, but no systematic screen-reader testing has been done. PRs welcome.

Roadmap

Shipped in 4.0.0 — full list in changelog.md. Still planned:

  • Image optimization — compress public/images/*.jpg and ship AVIF + JPG fallback
  • Lighthouse audit + tuning to 95+ Performance / 100 A11y / 100 SEO / 100 PWA
  • JSON-LD structured data on landing + marketing pages
  • sitemap.xml generator (auto-built from production/*.html)
  • Per-page chart-type tree-shaking to slim the ECharts vendor chunk
  • RTL support (logical-properties pass)
  • i18n extraction pattern

Want any of these prioritized? Open an issue.

License

MIT — free for personal and commercial use. See LICENSE.txt.

Credit

Gentelella has been a free Bootstrap admin template since 2014, originally by Aigars Silkalns at Colorlib. v4 is a ground-up redesign for 2026 — Bootstrap and jQuery are gone, replaced by a self-contained design system.

If Gentelella v4 saves you time, consider starring the repo on GitHub — it helps other developers find the project.