Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Brolly, a plain-text weather forecast site (brolly.sh)
137 points by jsax 9 hours ago | hide | past | favorite | 45 comments
The UK MET office recently redesigned their site, adding a lot of additional whitespace, scrolling, and animations. This significantly reduced its usability for me, and left me wanting an ‘at a glance’ weather site.

I made https://brolly.sh, a minimalist, plain text weather forecasting site. You can use it to view weather from around the world, with: 7 day forecast; Previous day log (so you can confirm it definitely was cooler / hotter / wetter / drier yesterday!); Hourly rain, wind, temperature, conditions; Hourly UV, air quality and pollen, including pollen type specific forecasts within the EU / UK; Location search and last 5 locations; Location specific units.

I mostly made the site for myself, if anyone else also benefits from it that’s an added advantage.

You can check out the weather in York, UK at https://brolly.sh/forecast/RWFP2qW8, or search for a location at https://brolly.sh

The site is deliberately styled as a single long scrollable column, to work on mobile phones. You can view it on desktop too, there's just a lot of horizontal padding. I naturally took a lot of inspiration from plaintextsports.com. Despite not being a sports fan, I love its aesthetic. But, you'll hopefully see that this site isn't a rip off, and has its own deliberate look and feel.

Visualisations are really important to showing information at a glance. I spent a lot of time designing the different visualisations and making them work with only characters. My favourite is the hourly heat map used for pollen count.

It's also frustrating to have an interactive site, where you can't share a page with a friend and have them see what you're seeing. To solve this, all page state (i.e. location, selected day, expanded / collapsed sections), is stored in the URL. You can share or bookmark the specific view, and know that you'll always be able to come back to it.

The site uses PocketBase. It’s written in Go and plain HTML/JavaScript/CSS. All pages are backend rendered, with light JavaScript to handle re-loading content without page jumps when using interactive features like next / previous day navigation. Weather forecasts are fetched from open-meteo.com, which has a very generous free tier. However, I also built a custom LRU cache on top of PocketBase’s SQLite DB to cache forecasts for 5 minutes, and avoid putting unnecessary pressure on the open-meteo API.

 help



I was thoroughly confused at why the website was showing the weather for York. Since I studied there (and it's straight up a lovely place), I visit quite often and subsequently check the weather. I thought I had set it but couldn't remember doing so. As someone else said, this being text-based makes it particularly digestible to LLMs. Out of curiosity, I looked up weather MCPs and stumbled upon this: https://github.com/weather-mcp/weather-mcp

Love it. This reminds me of wttr.in, but with the benefit of interactivity and that it works much better on mobile. I also happen to often use terminals in a narrower aspect, so wttr.in doesn't work perfectly for me. It'd be very cool if a curl call to your site rendered a terminal text view!

Great suggestion, thank you. I’ll definitely keep that in mind as an improvement. There’s been some other feedback that it’d be good if there was a ‘true’ plain text only mode, and this ties in well.

Heads up, in a lot of locations the city is doubled up (displayed twice). Otherwise, I like it a lot and I have it saved to my weather bookmarks.

It's sort of okay (but not amazing) with

  w3m -4 -dump https://brolly.sh/forecast/RWFP2qW8
Ideally, you would let someone set an Accept: content type of text/plain, or else have an endpoint like brolly.sh/forecast/RWFP2qW8.txt

This is US only via the finger protocol (using netcat):

printf 'weather:85334\r\n' | nc bbs.airandwave.net 79

More info:

printf 'weather\r\n' | nc bbs.airandwave.net 79


Disappointed you didn’t just say

  finger weather:85534@bbs.airandwave.net

I love plain text services. One of their benefits is near instant load time. A nitpick, but this takes a few seconds to load on a fast broadband connection for me. I get the delay even refreshing the same page, where I'd expect the cache to be hit.

Sorry about this, and thank you for the heads up. The site runs as a PocketBase instance on a small 512mb DigitalOcean droplet in their London DC, and is getting more load than usual at the moment.

I’ll take a look though at whether there’s anything causing fundamental slowness in the cache read / page rendering pipeline.


Looking at chrome dev tools, it looks like it might be the custom font causing the delay. I'm not sure exactly why though.

Interesting, I’d have naively assumed that’d be cached after first load by Chrome. Definitely one to investigate further.

Might as well drop custom fonts? This minimalist site would be fine with built in font families.

I recommend run Google Lighthouse for a single visitor view of perf and then use a load testing tool (locust, jmeter etc. to check load handling)

If you want to that is :)


Weird, on my iPhone it loaded instantly.

Very interesting. The past few days' trend is so common in small talk and general weather discourse ("it was warmer last week") but underrated in weather apps. It's helpful that Open-Meteo provides that data

This output is incidentally perfectly context engineered for LLMs too; I pasted the Delhi page contents into Arena .ai and asked "what's the gist" and qwen3.6-plus said (among other things) " A hot, humid day with a slight chance of afternoon showers." and gemini-3.1-pro-preview said "Mostly clear, but hot and very humid. While the actual high is 34°C, it will feel like 42°C in the afternoon."


Yes, I'm very annoyed that I cannot look at historical data (even from the past couple of days) in weather websites!

FWIW, I vibe-coded https://meteo.karteum.ovh/ a few months ago for my own use-case (it interfaces with open-meteo.com. Click in the map to add points, and click in the point to get details)

Congrats!

Very small suggestion: it’d be cool if you used a service to geoip the incoming ip address - there’s also https://developers.cloudflare.com/network/ip-geolocation/ that will inject the lat lng directly into the request header to your server

It’d just help set a good enough starting location.

Cheers!


I actually love that it doesn't do this, because the sites that do are a headache (and sometimes entirely unusable) if using a VPN.

And since you can bookmark it with your location setting, automatic IP location could only make the first visit marginally faster for non-VPN users, anyway


This is actually a great format for LLM consumption too.

Structured, concise weather information without unnecessary UI noise is much easier for agents to parse and summarize.

A JSON endpoint or an MCP server on top of this would be an interesting extension.


but why? We have apis for this, why parse a site and feed it to a llm?

Seems like a good use case for Unicode weather symbols.

It's already saved to home screen. Love the simple text interface.

How do you turn on the text-only mode? I've tried Accept: text/plain but I always get HTML.

Don't think it's 'true' plain text. HTML/CSS rendering 'like' plain text.

Still beautiful though!


curling it (with the relevant link from browser because locations are encoded in the URL rather than plain like wettr.in) shows html


Would be nice if desktop rendered in columns. Would be nice if it were curl-able (like not serving raw html to curl). Would be nice if URL pattern was like wttr.in (NYC for example is https://brolly.sh/forecast/YcUDdBLc <---which means nothing to me, vs wttr.in/nyc <---which is plainly obvious)

I don't see a way to change from F to C...?

This is cool and I appreciate how compact it is. I'd love to have this as a regular load on my desktop. My only note would be that the precipitation graph feels unnecessarily bulky - wouldn't it work with the same type of horizontal graph seen for the ones below it? I know precipitation demands somewhat more precision and immediacy, but you could also do a variable graph - left half next hour, right half next 12 hours or something.

Thanks for the feedback!

I agree, it’s definitely something to work on as it takes up a considerable amount of vertical space.

I found the precipitation chart challenging as you need to present both the forecasted precipitation, and the potential likelihood of the precipitation occurring. Something I’ve considered is using a horizontal graph with different shades of grey through black in each bar to represent the probability, but it would somewhat reduce accessibility.


Oh god I'm glad I'm not the only one who hates the new Met Office website/app, but their forecasts and radar maps are the best. Where do you get the data from?

It uses open-meteo.com. Their forecast API returns data from around 30 different models depending on location, and typically uses Met Office data in the UK. I don’t force to only Met Office though, as they don’t give data for everything shown (such as the pollen count per species).

Open-meteo has a very generous free tier, and reasonable pricing. It also lets you fetch weather from previous days, which I’ve included so you can see if it’s relatively hotter/colder etc. than yesterday.


Looks great. One thing that initially tripped me up, I searched "Raleigh, NC" and got no place found. "Raleigh" worked.

That’s frustrating, thank you for the feedback. I’ll take a look at improving the search and potentially switching out the API provider. I currently use open-meteo as I was already using it for the weather forecast (it has a great weather API), and it made sense at the time to keep with a single provider.

I tried searching for "Austin, Texas, United States", "Austin, Texas" and just "Texas" and didn't find very much - not sure if I'm missing how they're indexed, but I'd expect at least one of those to find it!

As other users pointed out, it'd be great if this could be curl'd like with wttr.in

DIG IT. This is how the web used to feel.

would be great to show humidity %

I’ll definitely look at adding this in, along with potential the wet bulb temperature. Thanks for the feedback!

This is a terrific project, thank you!

Use-cases will vary widely. For example if I used Brolly for sailing, I'd want wind speed in kts and wind direction as well as dew point, and I'd want a recent timeseries of air pressure to give an idea of the synoptic-scale situation.

Of course these may be far outside your original use-cases. I think when people get a hold of Brolly, they're going to love it immediately, and there will be a flood of feature requests. If that happens, might be good to design the layers needed for diverse customization.


+2 for humidity. great work. keep it simple.

Cool. There's unicode cloud characters. Would be nice to have a visual indication of rain/sun/cloudy etc

I love this idea. The brolly logo at the top of the page is also a unicode character, so this fits well.

Thank you so much for this. It's fantastic.

Can we have METARs for airport codes in this exact aesthetic?


Really love this website and its awesome, thanks for making this!

I really love Golang minimalist applications using sqlite. The whole architecture feels really elegant to me personally. I wish you luck for this project and if I may ask, is the project open source, I really love its UI :) ,it feels so cool!




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: