The Blog page presents writing as an early-2000s personal journal. Each entry is a self-contained card with a pixel-art avatar, a teal Win98-style title bar showing the post name and date, and a dashed metadata block at the bottom that records the author’s current mood and the song they were listening to when they wrote it. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/web-surfer/llms.txt
Use this file to discover all available pages before exploring further.
FileText and BookOpen Lucide icons are associated with this section.
Purpose
This section is where the portfolio owner shares thoughts, tutorials, rants, or retrospectives. Styled as a retro journal rather than a modern blog, it reinforces the site’s Y2K personality. The “Currently Listening” and “Current Mood” metadata fields are both a period-accurate detail and a warm, personal touch that differentiates the page from a generic content list.Layout and Structure
The page uses amax-w-3xl mx-auto space-y-10 single-column layout — deliberately narrow to feel like a personal journal rather than a content hub.
A centred heading block at the top reads "My Online Journal" with an italic subheading: "Thoughts, rants, and code snippets."
Each blog entry card is a bg-white border border-gray-300 shadow-md box with three zones:
- Title bar:
bg-win-teal text-whitestrip containing the post title (font-bold text-lg) and timestamp (font-courier text-xs), styled to look exactly like a Win98Window title bar. - Body area: A horizontal flex layout with a hidden-on-mobile avatar column on the left (pixel-art generated avatar + username
"WebDev99"intext-win-blue) and the post content on the right infont-times text-sm leading-relaxed. - Metadata footer: A
bg-gray-100 border border-dashedblock showing “Current Mood:” and “Currently Listening:” values, followed by a"Read More..."link intext-win-blue font-boldaligned right.
win98-button reads "Older Entries >>".
The blog entry data array is declared as a module-level constant. The default dataset contains three entries. There is no CMS or API; all posts are defined in source code.
Blog Entry Data Structure
| id | Title | Date | Mood | Music |
|---|---|---|---|---|
| 1 | Just discovered CSS | October 24, 2002 @ 11:45 PM | 🤯 Mind Blown | Linkin Park - In The End |
| 2 | Late night coding session | September 15, 2002 @ 02:10 AM | 😴 Sleepy but determined | Eiffel 65 - Blue (Da Ba Dee) |
| 3 | New layout!!! | August 01, 2002 @ 04:20 PM | 😎 Cool | Smash Mouth - All Star |
How to Customize
Add new journal entries
Append objects to the blog data array, following the data structure above. Each entry needs a unique
id (used as the React key and for the avatar seed URL), a date string, title, mood, music, and content. The date is rendered verbatim — use any format you like.Change the avatar service
Avatars are generated from
https://api.dicebear.com/7.x/pixel-art/svg?seed=${entry.id}. Swap the seed to a username string for a consistent per-author avatar, or point the src at a static image in public/ to use a real photo.Replace the username label
The hardcoded
"WebDev99" username below each avatar is a plain string. Replace it with your actual handle, or make it a per-entry field if you want multiple author voices.