Xyren XYREN
← All update notes
mobile admin cms

Updates April 17th — Mobile-first admin and update notes

The entire admin dashboard is usable on a phone now. The nav is unified between desktop and mobile. And this page — the one you're reading — is running on the new update-notes CMS.

A
Austen Green
Author

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:

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

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