IWBlog: File-Based Writing in a Retro Interface

Dalrymple Ramos

Project overview

IWBlog is a retro 2000s-inspired blog platform built for the IndieWeb community who want a nostalgic, chaotic alternative to modern minimalist design.

Draggable windows, CRT scanlines, and a Winamp-inspired panel carry the early-web feel through the interface. Local Markdown supplies the articles, while Last.fm supplies recent-track metadata.

Built with

table of contents

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.