Skip to content

austinginder/minn-admin

Repository files navigation

Minn Admin

A reimagined WordPress admin experience. Fast, focused and beautiful.

Minn Admin serves a modern, minimal dashboard at /minn-admin/ on your WordPress site. It's a single-page app built on the WordPress REST API with no React, no build step, and one vanilla-JS file. It lives alongside the classic wp-admin, which stays fully available.

Minn Admin — Overview

Launch in WordPress Playground

Features

  • Overview — stat cards, a real Traffic chart with hover details when an analytics plugin is installed (Koko Analytics, WP Statistics, Burst, Independent Analytics, AnalyticsWP), and a recent-activity feed
  • Content — posts, pages and custom post types sorted by publish date (scheduled posts lead with their go-out dates), with search, category/tag filters, status pills, bulk actions (set status or trash, with shift-click range select), and row actions: right-click or hover for quick publish/draft/trash, view, and a block-editor escape
  • Media — grid/list library, uploads, drag-and-drop, a preview overlay with arrow-key navigation and in-place title & alt text editing, a right-click menu, and a built-in image editor: rotate and crop, saved as a new copy with originals untouched
  • Comments — full moderation (pending / approved / spam / trash) with inline replies and a right-click menu for the same verbs
  • Orders — WooCommerce orders with summary cards, line-item detail and status changes (when WooCommerce is active)
  • Users — directory with search, a role filter, create/edit users, roles, passwords, and per-user login sessions with one-click sign-out
  • AI Access — generate revocable application passwords for AI agents plus a site-tailored agent guide (markdown REST reference) to hand to a coding agent; configuration work stays out of Minn by design
  • Extensions — install plugins and themes from WordPress.org or zip upload, activate, deactivate, delete, per-item and bulk updates, a Themes tab with screenshots, and cards wearing real wp.org icons (linked to the directory) with linked author lines
  • Post Types & Taxonomies — see every registered post type and taxonomy and manage definitions through whoever owns them: ACF, Custom Post Type UI, or Minn's own store when neither is active; code-registered ones shown read-only
  • Settings — General (with timezone picker), Writing, Reading, Discussion and Permalinks (structure presets + custom, with automatic rewrite flushing), plus built-in maintenance mode
  • Editor — a calm, block-aware writing surface that stores native Gutenberg markup (zero lock-in: open any post in the block editor, any time). Markdown typing conventions (**bold**, `code`, ## headings, lists, quotes, fences, dividers…), a link popover on ⌘K, text alignment, table & image controls in island-style cutouts, complex blocks preserved byte-for-byte as configurable islands rendered with the site's real front-end styles, slash commands with type-to-filter, syntax-highlighted code blocks, word count · reading time, scheduling and one-click publish. Paste cleanup turns Word / Google Docs / web HTML into the safe subset; paste or drag an image and it uploads to the library at the caret with an inline caption. The publish sidebar edits the slug, visibility (public / password / private), per-post discussion and sticky. Deleting an embed or a table row offers an Undo toast. Revision diffs open a side-by-side, word-marked diff of any revision against the current content. An outline panel lists headings as a clickable, live-updating table of contents; focus mode (⌘⇧D) fades all but the current paragraph with typewriter scroll; outline mode (⌘⇧O) leaves just the writing and the outline. The internal link picker searches your own posts from the link popover, and a themed date-time picker handles scheduling. ⌘⏎ publishes; the help dialog documents every shortcut. Where this is heading: the editor roadmap
  • Never lose work — post locking on WordPress's own _edit_lock (Minn, the classic editor and Gutenberg all honor each other, with takeover), plus a localStorage crash net that snapshots every edit within ~1.2s (before the first autosave) and offers recovery on the next open. Status-aware autosave: drafts save in place, published posts back up to revisions (only Update goes live), with a backup-restore banner.
  • Page builders — build a page with Divi, Elementor, Brizy, Beaver Builder, Etch, Bricks or WPBakery and keep managing it from Minn: builder-owned pages are marked, edited through the builder's own chrome-free surface via Edit in ⟨builder⟩ (no wp-admin screen), and fenced so a stray Minn edit can't break the builder's canvas. + New can start a page in any active builder. Third parties register via the minn_admin_page_builders filter
  • System — a developer diagnostics page: a health strip over WordPress / PHP / database (largest tables, an autoloaded-options breakdown with top offenders, expired-transient bloat, cron health) / server facts, an installed extensions manifest (plugins, must-use, themes with versions), live debug toggles that safely rewrite wp-config.php, a clickable debug-log viewer, and one-click Copy report as markdown
  • SEO panel — Yoast SEO / Rank Math title, meta description and focus keyword in the editor sidebar
  • Command palette — ⌘K / Ctrl-K everywhere
  • Plugin surfaces — bundled adapters for Gravity Forms (readable entries with real field labels + a Forms view with activate/deactivate), Gravity SMTP (email log with a real HTML preview and resend), Simple History, WP Activity Log, Activity Log (Aryo) and Stream (audit logs), Redirection, Safe Redirect Manager and Simple 301 Redirects (redirects: list, search, create, edit and delete), ACF (editor panels) and Yoast / Rank Math (SEO panel), plus one-filter APIs for any plugin to register views, editor panels, traffic data or block-inspector forms
  • Dark & light themes, bundled fonts, zero external requests from the app, responsive down to phones

Install

  1. Download or clone into wp-content/plugins/minn-admin.
  2. Activate through the Plugins screen.
  3. Visit /minn-admin/. It's also linked from the admin bar and the wp-admin menu.

Pretty permalinks recommended (clean routes like /minn-admin/content); without them the app falls back to /?minn_admin=1 with hash routing. Updates are delivered through the normal WordPress updates UI via GitHub Releases.

Extending

Any plugin can add a view to Minn with one filter: a declarative descriptor, no JavaScript required. See docs/for-plugin-authors.md, and docs/extension-api.md for the design rationale.

Documentation

Development

Edit and go. There's no build step. Lint with node --check assets/js/app.js and php -l minn-admin.php. Commit messages follow Emoji-Log.

License

MIT © Austin Ginder

About

A reimagined WordPress admin experience. Fast, focused and beautiful, served at /minn-admin/

Resources

License

Stars

27 stars

Watchers

2 watching

Forks

Contributors