Brolly: A Minimalist Plain-Text Weather Forecast Service

Brolly: A Minimalist Plain-Text Weather Forecast Service

Brolly is a minimalist weather forecast service that delivers meteorological data in a plain-text format. By stripping away complex UI elements, Brolly provides a high-density, low-latency alternative to modern weather applications, making it particularly useful for users who prefer a terminal-like aesthetic or require data that is easily parseable by AI agents.

Structured Plain-Text Forecasts

Brolly organizes weather data into distinct, self-contained sections using ASCII separators and simple tables. This structure ensures that the information remains readable across different screen sizes and devices.

Current and Daily Overviews

The service provides an immediate snapshot of current conditions, including temperature (with "feels like" metrics), wind speed, UV index, and Air Quality Index (AQI). This is followed by a daily summary that lists temperature ranges, average wind speeds, and precipitation levels.

Weekly and Hourly Trends

Brolly includes a weekly forecast table and an hourly breakdown of conditions. A notable feature is the inclusion of historical data (e.g., "Yesterday"), allowing users to compare current trends with recent past weather—a feature often missing from standard weather apps.

ASCII Visualizations

Instead of graphical charts, Brolly uses text-based visualizations to represent data trends over time:

  • Precipitation: Represented by a bar-style graph using hash symbols (#).
  • UV and Air Quality: Plotted on a simple Y-axis with hash symbols to show peaks and troughs throughout the day.
  • Pollen Levels: Indicated by a linear scale using markers (e.g., . for low, - for medium, = for high) to show peak times for different pollen types.

Technical Architecture and AI Integration

Brolly is built using Golang and SQLite, emphasizing a lightweight architecture that promotes fast load times and simplicity.

LLM Compatibility

Because the output is structured and devoid of UI noise, it is highly optimized for Large Language Models (LLMs). Users have reported that pasting Brolly's output into AI models like Qwen and Gemini allows the models to accurately summarize the "gist" of the weather without the hallucinations or parsing errors often caused by complex HTML structures.

Development Philosophy

The creator of Brolly utilized a hybrid development approach, manually designing the architecture and structure while using AI to implement significant portions of the code to increase velocity. This balance was intended to maintain the "joy of focusing on a problem" while leveraging modern productivity tools.

Community Feedback and Feature Requests

While the minimalist approach is widely praised, the Hacker News community has highlighted several areas for potential improvement:

Accessibility and Usability

  • Unit Customization: Users have requested the ability to toggle between Celsius and Fahrenheit, particularly for US-based locations.
  • Visual Enhancements: Suggestions include adding a dark mode for visually impaired users and incorporating Unicode weather symbols (e.g., cloud or sun icons) for quicker visual scanning.
  • Location Handling: Some users noted that searching for specific city-state combinations (e.g., "Raleigh, NC") failed, while searching for the city name alone worked.

Integration and API

  • Curl Support: Many users compared Brolly to wttr.in, requesting a true text/plain response that would allow the site to be "curled" directly into a terminal without receiving HTML wrappers.
  • URL Structure: The current use of obfuscated URL parameters (e.g., /forecast/RWFP2qW8) has been criticized as less user-friendly and less SEO-efficient than descriptive slugs (e.g., /forecast/uk-london).
  • Geolocation: Suggestions were made to implement GeoIP services to automatically set the starting location based on the user's IP address.

"This is how the web used to feel." — @popalchemist

Sources