The Blog page recreates the personal “web-log” format popular in the early 2000s, where authors posted short opinion pieces and updates directly to their homepage. Each post is rendered as an HTMLDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-domain/llms.txt
Use this file to discover all available pages before exploring further.
<table> that visually mimics a Windows 98 window — a pattern that would have been entirely standard on sites of that era. A set of BeveledButton category filters lets visitors narrow posts by type, with the filtered list updating reactively via a single activeCategory state variable.
Page Header
The page opens with a centred heading block:Visual appearance: The “My Web-Log” heading is rendered in the VT323 bitmap font at size 5xl in white, with a bright pink (#FF1493) 2px offset drop shadow for a neon-sign pop. Beneath it, the tagline “Thoughts, rants, and broken code.” sits in
font-comic inside a white box with a solid black border — like a label sticker over the page background.Category Filters
FourBeveledButton elements provide category filtering. The active category is tracked via state:
active prop that reflects whether it is the currently selected category:
Visual appearance: Buttons are displayed in a
flex justify-center gap-2 row centred on the page. The active prop on BeveledButton applies a pressed/sunken bevel shadow (shadow-win-btn-active) to the selected category, so “All” appears pressed-in by default. Inactive buttons use the raised bevel shadow (shadow-win-btn).Hardcoded Post Data
Three posts are defined in the top-level constant array (M in the compiled source):
Filtered Post List
The displayed posts are derived from the full list using theactiveCategory state:
Post Card Structure
Each post is rendered as an HTML<table> styled to look like a Win98 application window — a historically accurate technique for the time period the site is parodying:
Visual appearance: The title bar row uses
bg-titlebar (the same blue as Win98 active title bars), white bold font-comic text for the post title, and a right-aligned light grey date stamp. The body row is white with standard font-comic text-gray-800 body copy and a blue underlined “Read More >>” link. The footer row is light grey (bg-gray-200) with right-aligned category metadata in a smaller font. The outer table has the full Win98 raised-bevel border (border-4 border-win-gray shadow-win-out).Individual Post Navigation
The “Read More >>” link in each post card navigates to/blog/:slug using the React Router Link component. The slug is drawn directly from the post data object. The individual Blog Post page (ke component in the source) renders its own full post view at that route, complete with a mood indicator, currently-playing song, and animated GIF.
The post body content shown in the list view is placeholder lorem ipsum text — all three posts display the same stub paragraph. Only the title, date, category, and slug are unique per post. The full post content is rendered on the detail route at
/blog/:slug.Blog Post Detail Route
The detail page (/blog/:slug) renders:
- A back link to
/blog - A full
<table>window with a large title bar showing the slug in uppercase - A metadata row showing
Mood: ☕ CaffeinatedandListening to: Linkin Park - In The End.mp3 - Two prose paragraphs of body content
- A
<img>GIF from Giphy - A closing sign-off:
Peace out, / - The Webmaster - A footer bar:
[ Comments have been closed since 2007 due to spam ]
Component Dependencies
| Component | Source | Usage |
|---|---|---|
BeveledButton (d) | components/BeveledButton.js | Category filter buttons |
Link | React Router | Post list “Read More” links |
useState | React 18 | activeCategory filter state |
useParams (T) | React Router | Blog post detail slug extraction |