MIDNIGHT BUREAU BLOG EXPANSION

by Tobin M. Albanese

PORTFOLIO — IN PROGRESS Sat Feb 01 2025

Why expand now. Readers land on a single post from search, bounce, and never discover the rest. The expansion focuses on discovery: topic/entity filters, cross-search with portfolio entries, and clean printing so deep reads don’t feel like wrestling a billboard on letter paper.

Project Image 1

Unified taxonomy. I’m merging tags, topics, and entities into one shared schema used by both the blog and the portfolio. One label = one ID = one facet across the whole site. That lets the archive page, post pages, and portfolio listings stay in sync without custom exceptions.

Project Image 2

Search architecture. For a hosted index, I’ll consider Typesense/Algolia with per-record weights for title, deck, headings, and resource labels. For a zero-dependency fallback, Lunr.js builds a client-side index at build-time with chunked loading. Either path supports synonym maps (“U.S.” ↔ “United States”) and typo tolerance without smearing relevancy.

Project Image 3

Archive navigation. Year-month slices stay, but the UX adds quick-jumps for Topics (World & Diplomacy, Security, Energy, etc.) and Entities (countries, orgs, people). Pagination becomes cursor-based so I can prefetch the next slab while you’re still reading.

Project Image 4

Long-form readability. Better typography, hyphenation, and rhythm (narrower measure on mobile, larger first-line height), sticky subhead mini-TOC for long reads, and a “focus” toggle that hides chrome. Pull-quotes and figures get semantic markup so they survive print/export.

Project Image 5

Print & offline mode. A real @media print stylesheet (CMYK-safe colors, link URLs inline, no nav, no ads), plus an optional Service Worker to cache the current post, its images, and linked resources for subway reading.

Accessibility & performance. Keyboard-first filters, visible focus states, and color contrast that clears WCAG 2.2 AA. Images lazy-load with correct intrinsic sizes; headings are linearized for screen readers; Lighthouse budgets keep CLS and LCP honest.

Analytics you can defend. Events are boring on purpose: filter use, search queries (with privacy guardrails), time-on-section, and print/export clicks. The goal is editorial feedback, not surveillance: no keystroke logging, no cross-site tracking.

Risks & next steps. Index bloat on the client is the main risk; mitigations include splitting by route and compressing the index. Next steps: migrate legacy tags → unified IDs, ship entity filter, wire cross-search with portfolio, then layer print and offline.


Resources & Links