WP Admin Dashly
A lightweight WordPress plugin that allows each logged-in user to personalize their own WordPress admin dashboard interface, without affecting any other user's experience.
by Rahul Walunje · github.com/rahulwalunje/wp-admin-dashly · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/rahulwalunje/wp-admin-dashly/archive/refs/heads/main.zipPer-user WordPress admin personalization — colors, fonts, and layout, without affecting anyone else.
WP Admin Dashly is a lightweight WordPress plugin that allows each logged-in user to personalize their own WordPress admin interface independently. Settings are stored per user, so every team member gets their own look without impacting others.
Features
- Color controls — Customize the sidebar background, admin bar, accent color, and menu text independently
- Typography — Choose from 10 font families (system default, Inter, Roboto, Poppins, DM Sans, Nunito, Lato, Open Sans, Plus Jakarta Sans, Merriweather) with an adjustable base font size
- Layout — Control corner roundness applied across buttons, inputs, and cards
- 12 built-in themes — Default, Midnight, Minimal, Nord, Ocean, Forest, Rose, Slate, Sunset, Indigo, Corporate, Charcoal
- Custom presets — Save your own named presets and apply them in one click (up to 25 per user)
- Live preview — See changes applied to the real admin chrome in real time before saving
- Per-user isolation — Every user's settings are stored independently; no changes affect other users
- Master toggle — Disable all styling without losing saved settings
- Frontend admin bar — Applies your chosen admin bar color on the frontend for logged-in users
- Clean uninstall — Removes all stored data from the database when the plugin is deleted
Requirements
- WordPress 6.0 or higher
- PHP 7.4 or higher
- Node.js 18+ and npm (only required to build from source)
Installation
Option A — Install from zip (recommended)
- Download the latest
wp-admin-dashly.zipfrom Releases - Go to wp-admin → Plugins → Add New → Upload Plugin
- Upload the zip and activate
Option B — Build from source
# 1. Clone or copy the plugin into wp-content/plugins/
cd wp-content/plugins/wp-admin-dashly
# 2. Install dependencies and build
npm install
npm run build
# 3. Activate in wp-admin → Plugins
# 4. Navigate to wp-admin → Admin Dashly
If you skip
npm run build, the plugin will display a friendly notice on the settings page.
Usage
Once activated, each logged-in user will find an Admin Dashly entry in the WordPress admin menu. From there they can:
- Pick a preset theme as a starting point
- Adjust individual colors, fonts, and layout controls
- Save their preferences — changes apply immediately across all admin pages
- Optionally save the current configuration as a named custom preset
Changes are scoped entirely to the logged-in user and have no effect on other users or the public frontend.
Architecture
wp-admin-dashly/
├── wp-admin-dashly.php ← Plugin bootstrap
├── uninstall.php ← Cleanup on delete
├── includes/
│ ├── class-wpad-plugin.php ← Singleton, wires all hooks
│ ├── class-wpad-defaults.php ← Default preferences, presets, font list
│ ├── class-wpad-preferences.php ← user_meta read / write / sanitize
│ ├── class-wpad-rest-controller.php ← REST API routes
│ ├── class-wpad-admin-page.php ← Admin menu + React mount point
│ └── class-wpad-style-injector.php ← CSS output on every admin page
├── src/
│ ├── index.js ← React entry point
│ ├── App.js ← Settings UI
│ ├── api.js ← REST helpers via @wordpress/api-fetch
│ ├── livePreview.js ← Real-time CSS variable application
│ └── index.css ← Settings page styles
└── build/ ← Compiled assets (generated by npm run build)
REST API
All routes are under the namespace wp-admin-dashly/v1. Every route requires the user to be logged in; WordPress handles nonce verification automatically via X-WP-Nonce.
| Method | Endpoint | Description |
|---|---|---|
GET |
/preferences |
Retrieve the current user's preferences |
POST |
/preferences |
Save the current user's preferences |
DELETE |
/preferences |
Reset preferences to defaults |
GET |
/presets |
List built-in presets and available font families |
POST |
/custom-presets |
Save current settings as a named custom preset |
DELETE |
/custom-presets/{id} |
Delete a custom preset |
Per-user storage
All preferences are stored as a single JSON object in WordPress user meta under the key wpad_preferences. There is no shared global state — each user's data is completely independent.
Development
npm start # Watch mode — rebuilds on every file change
npm run build # Production build
The build uses @wordpress/scripts (webpack with WP-aware externals). The UI is built with @wordpress/components, which is already bundled with WordPress and adds zero weight to the plugin.
License
GPL-2.0-or-later — consistent with WordPress core.