Hello everyone!
This one's a different kind of update. No new features, no new game content — instead, the entire admin dashboard got pulled apart and rebuilt to work on a phone. If you've ever tried opening /admin/plugin-access on your phone during a raid to gate a plugin for someone, you know exactly why this post exists.
Mobile-first admin
Every admin page has been audited for mobile behaviour, and every one of them that had a problem got fixed. The worst offenders were the tables — several of them overflowed the viewport horizontally, and a few had form inputs inside table cells, which is invalid HTML and doesn't survive contact with a narrow screen.
The fix pattern is consistent across the app now:
- Tables that are mostly read-only get an
overflow-x-autowrapper so they scroll horizontally without hijacking the whole page. - Tables that carry interactive form inputs (plugin access, backups) switch to a card layout below the
smbreakpoint — each row becomes a standalone card with labelled inputs stacked vertically. The table version still renders on desktop. - The user-management table hides non-essential columns (Status, Last Activity, Joined, Roles) on narrow screens. The important ones — the user's name, email, and an Actions button — always stay visible, and the hidden data surfaces inline under the email on phones so you don't lose the at-a-glance picture.
- Filter rows stack vertically below
sm. Selects go full-width. Primary action buttons get a minimum 44×44px hit area so they're actually tappable.
The live world map on a phone
The Leaflet world map page was almost usable on a phone — Leaflet itself does touch well out of the box — but the coordinate display was wired only to mousemove, so touch users never saw their tap position. That's fixed now, and the Leaflet zoom and legend controls got bumped up to a mobile-friendly size. The map container also uses dvh now instead of vh so that the iOS dynamic address bar doesn't cut the bottom of the map off.
Unified navigation
The bigger change: the top nav and the mobile hamburger menu used to be two completely separate lists of links. Every time I added an admin page I had to remember to add it in both places. I'd already forgotten once this week (the Launcher Versions page was missing from mobile for a full commit).
That's gone. The Admin and Dev Tools menus are now driven by a single config/admin-menu.php. The desktop dropdown iterates over it, the mobile hamburger menu iterates over it, and a new page shows up in both places from a one-line edit. Active-state highlighting, dividers, and gates all survive the unification.
The hamburger button itself got bumped to 44×44px while I was there, and the top-level <meta viewport> picked up viewport-fit=cover so safe-area insets behave on notched phones.
Update notes CMS
The page you're reading right now is the other thing that landed this week. The admin area has a new section under /admin/articles for writing and scheduling update posts. It's a Livewire editor with a live markdown preview, tag support, and a published_at field that also acts as a scheduler — set it to a future datetime and the post won't appear on the public /updates listing until that moment arrives.
The /updates public page itself is new too — a chronological listing grouped by month, with a featured card for the latest post and tag chips you can click to filter. Each post renders on its own /updates/:slug page with prev/next navigation between sibling posts.
It's intentionally a standalone layout — it doesn't drag in the admin chrome or the Jetstream nav. The idea is that someone showing up from Discord to read patch notes gets a page that looks like it was designed for that, not a dashboard.
The note-taking loop
Alongside the CMS, there's a new folder in the repo — article-notes/pending/ — where each substantive commit gets a short note appended. The next time I sit down to write an update post, I'm not mining git log blind — I'm pulling from real-time notes I wrote when I was actually in the code. The convention for the notes is documented in CLAUDE.md; if a note file gets past 400 lines, it splits.
Changelog
- Entire admin dashboard audited and refactored for mobile. Tables wrap or become cards below
sm; filter bars stack; tap targets ≥ 44×44px. - Plugin Access and Backups pages get a card layout on phones (the table was rendering invalid HTML on narrow screens).
- User management hides non-essential columns on small screens, shows status inline under the email on phones.
- Live World Map uses
dvhheights, bigger Leaflet touch targets, and updates coordinates on touch as well as mousemove. - GE Dashboard forces a single-column chart grid on phones.
- Admin Users show/edit/create/game-data pages stack their headers and tighten padding on small screens.
- Mega-menu overlay goes full-screen on phones with proper safe-area insets.
- Top nav hamburger hit area raised to 44×44. Viewport meta picked up
viewport-fit=cover. - Desktop dropdown and mobile nav now iterate over a single
config/admin-menu.php. - Launcher Versions page added to both nav contexts (it had been missing from mobile).
- New
/admin/articlesLivewire CRUD for writing, scheduling, and publishing update posts with markdown preview and tags. - New public
/updateslanding page and/updates/:slugarticle page with prev/next navigation and a typography-first layout. article-notes/folder for ongoing commit-time note-taking, with a template and a roll-over rule.
So what's next? Getting some real update posts scheduled out across the next few months, and then turning attention back to the game side — the Android beta from last week has a short list of real-player issues waiting for a triage pass.
All the best, Austen