IWBlog explores an early-web aesthetic through draggable windows, CRT styling, and a Winamp-inspired interface. Under that presentation, its writing comes from local Markdown files.
Implementation focus#
My implementation focus is keeping the distinctive interface connected to ordinary content and external status data. The project uses Next.js, React, TypeScript, SWR, Framer Motion, gray-matter, remark, and the Last.fm API.
The inspected content loader and Last.fm helper show two separate data paths: local writing and recent-track metadata.
Keep posts in a file-based pipeline#
The loader reads Markdown files, parses frontmatter, converts the body to HTML, and sorts posts by date. This gives articles a content source independent of the position or decoration of an interface window.
It also makes metadata quality a content-maintenance responsibility. A file-based pipeline still needs consistent dates, titles, and descriptions.
Give external music data an accurate role#
The Last.fm helper requests a recent track and maps its artist, album, title, artwork, URL, and now-playing flag. That path supplies listening metadata; it does not serve an audio stream.
A player-shaped panel can use that information, but its visual styling should not imply that the metadata endpoint supplies music playback.
Result and limitations#
The source demonstrates a retro interface over a reviewable content pipeline. It does not establish measured reading engagement or broad accessibility testing. Guestbook presentation also should not be treated as evidence of a completed persistent backend.
The companion article explains the boundary between retro presentation and file-based content.