No description
  • JavaScript 50.7%
  • CSS 28%
  • Nunjucks 21.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ricardo d0facd3f69 release: v1.0.0-beta.54
Publishes the upstream sync merged in 00f79cb: the page post type
(lib/globals/icon.js, scripts/app.js) plus the globalThis cleanup. Those
commits landed without a version bump, so npm has been serving beta.53
without them.
2026-10-07 18:42:22 +02:00
assets feat: fork @indiekit/frontend with floating selection toolbar 2026-02-13 21:57:54 +01:00
components chore: typecheck clean under upstream's client config 2026-09-13 14:32:22 +02:00
layouts feat: bundle Alpine into the app script instead of loading it from jsDelivr 2026-09-10 08:38:42 +02:00
lib Merge remote-tracking branch 'upstream/main' into upstream-sync 2026-09-28 18:32:54 +02:00
locales feat: offer a reload when a new build takes over, instead of forcing one 2026-09-08 21:09:19 +02:00
scripts style: globalThis over window (unicorn/prefer-global-this) 2026-09-28 18:35:32 +02:00
styles feat: bundle Alpine into the app script instead of loading it from jsDelivr 2026-09-10 08:38:42 +02:00
test/unit chore(frontend): re-organise files 2026-09-12 23:01:03 +01:00
.gitignore fix: connect-order-independent modal-dialog + toggle-switch (production hotfix) 2026-06-12 21:09:48 +02:00
CHANGELOG.md v1.0.0-beta.29 2026-08-16 23:22:42 +00:00
CLAUDE.md chore: typecheck clean under upstream's client config 2026-09-13 14:32:22 +02:00
index.js chore(frontend): re-organise files 2026-09-12 23:01:03 +01:00
package.json release: v1.0.0-beta.54 2026-10-07 18:42:22 +02:00
README.md feat: bundle Alpine into the app script instead of loading it from jsDelivr 2026-09-10 08:38:42 +02:00

@rmdes/indiekit-frontend

Frontend components and view templates for Indiekit admin dashboard.

This is a fork of @indiekit/frontend with custom UI enhancements, service worker improvements, and accessibility fixes (see below).

Installation

npm install @rmdes/indiekit-frontend

Or via npm overrides (recommended for replacing the default package):

{
  "overrides": {
    "@indiekit/frontend": "npm:@rmdes/indiekit-frontend@^1.0.0-beta.42"
  }
}

Note

This package is installed automatically as a dependency of @indiekit/indiekit

Custom Features in This Fork

This fork adds the following enhancements to the upstream package:

UI Enhancements

  • Floating Toolbar — Quick formatting access when text is selected in forms
  • Sidebar Navigation — Collapsible vertical sidebar with grouped navigation items
  • Media Browser — Modal for browsing and inserting uploaded media files
  • Better Form UX — Improved EasyMDE editor integration

Service Worker Improvements

  • Stale-While-Revalidate — Serve cached content immediately while revalidating in background
  • Auth Page Bypass — Never cache authentication/session pages (prevents stale login state)
  • Intelligent Timeouts — 5-second network timeout only when cached fallback exists
  • Update Notifications — Notify users when content has been updated

Sidebar Navigation

  • Grouped menu items (Main, Tools, Settings, Fediverse)
  • Collapsible sections
  • Better mobile responsiveness
  • Alpine.js-powered interactivity (bundled into the app script; no CDN)

What This Package Provides

The package exports functions used by Indiekit to configure the admin interface:

  • Templates — Nunjucks environment with plugin view paths
  • Styles — CSS bundle compiled from all plugin stylesheets
  • Scripts — JavaScript bundle with admin interactivity and service worker
  • Icons — App and shortcut icons generated from theme colors

Service Worker

The service worker provides offline support with a smart caching strategy:

  • Serves cached pages immediately while updating in background
  • Keeps authentication pages always fresh (no caching)
  • Falls back to offline page when network is unavailable
  • Handles cross-origin requests gracefully

Enable it in your base template:

<script>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/serviceworker.js');
  }
</script>

Configuration

The frontend is automatically configured by @indiekit/indiekit. No additional setup is required, but you can customize via environment variables and Indiekit configuration.

File Structure

indiekit-frontend/
├── layouts/         # Nunjucks page layouts
├── components/      # Nunjucks UI components
├── styles/          # Lightning CSS stylesheets
├── scripts/         # Client-side JavaScript
├── locales/         # Translation strings
└── assets/          # Static assets (icons, fonts)

Inter-Plugin Integration

All Indiekit plugins can extend the frontend by providing:

  • views/ — Nunjucks templates (automatically registered)
  • styles/ — CSS files (automatically bundled)
  • scripts/ — JavaScript (automatically bundled)
  • locales/ — Translation strings (automatically registered)

License

MIT - Original work by Paul Robert Lloyd, custom features by Ricardo Mendes.

For detailed technical documentation, see CLAUDE.md in this repository.