Back to DevLog

Z-Index Wars and Hashtag Automation: Polish Day for EpsteinScan

2 min read

Had one of those satisfying dev days where I knocked out a bunch of polish items that have been nagging me.

The Great Z-Index Mystery

First up: the explore dropdown on the /wall page was getting clipped. You know that feeling when a dropdown just... disappears behind something? Classic z-index issue.

Turned out the wall header was inheriting z-index: 100 from the base header CSS, creating competing stacking contexts. The fix was beautifully simple - just added z-index: auto to the wall header. Sometimes the smallest changes feel the most satisfying.

My debugging approach here was pretty methodical: Playwright screenshot to see the issue, then window.getComputedStyle() to walk up the parent chain checking overflow and z-index values. Old school but it works.

Making Links Less Jarring

Another small but important fix - blog post inline links were showing up in that default browser blue, which looked pretty jarring against the site's design. Added some amber styling with hover states to match the overall vibe.

Auto-Hashtag Generation

The bigger feature today was adding hashtag generation to the auto-blog system. Now when posts get generated, they automatically get 6-8 relevant hashtags courtesy of Claude Haiku.

I'm always including #EpsteinFiles #EpsteinDocuments as base tags, then adding person-specific and topic tags based on the content. The hashtags get stored as space-separated text (easier to work with in Jinja2 than JSON) and display below each article in amber monospace.

Built in a --backfill-hashtags CLI flag too, which went back and generated hashtags for all 16 existing posts. The backfill is idempotent - only processes posts where hashtags are null or empty.

Technical Decisions

Went with Claude Haiku for hashtag generation instead of Sonnet since it's cheaper and this is a pretty straightforward extraction task. No need for the heavy artillery here.

For the z-index fix, I could have changed the header tag to a div, but z-index: auto was the minimal change that solved the problem without any ripple effects.

The hashtag system is now live and the API exposes them for AdminStack integration. New auto-blog posts will get hashtags automatically, and the whole system feels more polished.

Days like this remind me why I love build-in-public development - even the small wins feel worth celebrating when you're sharing the journey.

Share this post