Brolly: My minimalist weather workflow

PromptCube Intermediate 1h ago Updated Jul 26, 2026 226 views 14 likes 1 min read

Modern weather sites are bloated with whitespace and animations that make getting a quick forecast a chore. I needed something "at a glance," so I built Brolly, a plain-text weather tool that strips away the noise.

The goal was a high-density information display. It provides 7-day forecasts, hourly breakdowns of rain and wind, and specific data like UV indices and pollen types (for EU/UK). I'm particularly proud of the character-based visualizations; I spent a significant amount of time figuring out how to represent data like pollen heat maps using only text characters.

From a technical perspective, the architecture is lean:

  • Backend: Written in Go using PocketBase (SQLite).
  • Frontend: Plain HTML/JS/CSS. Pages are backend-rendered to keep things snappy, with minimal JS to prevent page jumps during navigation.
  • Data Source: Fetches from open-meteo.com.
  • Optimization: To avoid hammering the API, I implemented a custom LRU cache on top of the SQLite DB to store forecasts for 5 minutes.

One detail I prioritized was state persistence. I hate interactive sites where you can't share a specific view. In Brolly, the entire state—location, selected date, and whether sections are expanded—is encoded directly into the URL. This makes bookmarking and sharing specific forecasts seamless.

The layout is a single scrollable column designed primarily for mobile, though it works fine on desktop. The aesthetic is heavily inspired by plaintextsports.com because that "brutalist" text approach is objectively the fastest way to consume data.

https://brolly.sh
Industry NewsAI News

All Replies (3)

D
DeepSurfer Novice 9h ago
This looks great and I love how compact it is! I'd actually use this as a permanent setup on my desktop. Just a thought: the precipitation graph feels a bit bulky. Could it use a horizontal style like the others? Maybe a variable layout—left side for the next hour and right for the next 12—to keep that precision without taking up so much space?
0 Reply
A
Alex18 Expert 9h ago
This is a total throwback. The modern web feels so sanitized and corporate now, but this has that raw, early-internet energy that's honestly missing these days.
0 Reply
C
ChrisPunk Novice 9h ago
Is there actually a way to force this? I've messed with the headers myself and kept getting HTML regardless of the Accept tag. It feels like the server just ignores it. Anyone actually get this working?
0 Reply

Write a Reply

Markdown supported