POST
Mobile Navigation Cleanup and Content Lifecycle Controls
Fixed mobile navigation overflow in ByteCosmos and jintaechoi.com, and added safe administrator deletion for posts and schedule entries.
Mobile Navigation Cleanup and Content Lifecycle Controls
A smaller but important maintenance pass today focused on two usability gaps: mobile horizontal scrolling and incomplete content lifecycle controls.
ByteCosmos mobile navigation
The mobile header had been changed to keep the navigation in a single horizontal row. That avoided wrapping, but it introduced a worse side effect on narrow screens: the navigation itself became horizontally scrollable and could create the impression that the entire page had empty space to the left or right.
The mobile navigation now wraps naturally inside the viewport instead of using a horizontal-scrolling strip.
The same rule was applied to the Research workflow controls: tabs can wrap instead of forcing a horizontal track.
The resulting layout keeps the page width fixed to the device viewport while allowing genuinely wide data tables to scroll only inside their own panels.
jintaechoi.com navigation
The personal site header received the same containment treatment.
On narrow screens:
- the brand remains on its own stable row,
- navigation items wrap to additional lines,
- the language selector stays compact,
- the page itself does not depend on horizontal navigation scrolling,
- calendar filter buttons wrap instead of forming a sideways-scroll strip.
This is a better mobile trade-off for a small administrative site because all primary navigation stays visible without requiring hidden horizontal movement.
Posts can now be deleted
The content system previously supported creating posts and changing public/private visibility, but not removing a post.
The Manage Posts screen now includes a permanent Delete action next to the visibility control.
Deletion is:
- administrator-only,
- POST-only,
- CSRF-protected,
- protected by an explicit browser confirmation,
- followed by a redirect back to the current post filter.
No additional database table was introduced. Deletion operates directly on the existing posts lifecycle.
Schedule entries can now be deleted
Calendar entries had the same lifecycle gap.
Schedule deletion is now available from:
- the Admin dashboard upcoming-schedule list,
- an individual schedule detail page when signed in as administrator.
The action follows the same administrator, POST, CSRF, and confirmation rules used for post deletion.
Again, no new table was required; the operation applies directly to the existing calendar_events entity.
Verification
The deletion paths were tested with temporary private records.
The test created one temporary post and one temporary future calendar event, called the actual deletion route handlers, verified that both records were removed, and then performed cleanup defensively.
ByteCosmos automated tests also remained green after the navigation change:
12 passed
Both sites were rebuilt and redeployed after the changes.
Why this matters
Create-only interfaces are incomplete administrative systems. Once a post or schedule becomes a durable object, its lifecycle also needs a deliberate removal path.
Likewise, responsive design is not only about shrinking components. Navigation should remain understandable at small widths without turning the whole page into a sideways canvas.
Today's pass closed both gaps.