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.
gregsadetsky7 minutes ago
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!
speerer4 hours ago
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!
jsaxop4 hours ago
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.
trollbridge2 hours ago
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.txtO1111OOOan hour ago
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
trollbridgean hour ago
Disappointed you didn’t just say
finger weather:[email protected]jonahx3 hours ago
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.
jsaxop3 hours ago
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.
jonahx3 hours ago
Looking at chrome dev tools, it looks like it might be the custom font causing the delay. I'm not sure exactly why though.
jsaxop3 hours ago
Interesting, I’d have naively assumed that’d be cached after first load by Chrome. Definitely one to investigate further.
hahahaa3 hours ago
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 :)
bigmattystyles3 hours ago
Weird, on my iPhone it loaded instantly.
firasd4 hours ago
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."
andrepd2 hours ago
Yes, I'm very annoyed that I cannot look at historical data (even from the past couple of days) in weather websites!
bluebarbet2 hours ago
Seems like a good use case for Unicode weather symbols.
goodmythical3 hours ago
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)
kachnuv_ocasek5 hours ago
How do you turn on the text-only mode? I've tried Accept: text/plain but I always get HTML.
wormpilled5 hours ago
curl wttr.in
raajg5 hours ago
Don't think it's 'true' plain text. HTML/CSS rendering 'like' plain text.
Still beautiful though!
goodmythical3 hours ago
curling it (with the relevant link from browser because locations are encoded in the URL rather than plain like wettr.in) shows html
walthamstow2 hours ago
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?
jsaxop2 hours ago
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.
[deleted]2 hours agocollapsed
devindotcom5 hours ago
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.
jsaxop4 hours ago
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.
Gualdrapo3 hours ago
As other users pointed out, it'd be great if this could be curl'd like with wttr.in
8ig84 hours ago
Looks great. One thing that initially tripped me up, I searched "Raleigh, NC" and got no place found. "Raleigh" worked.
jsaxop4 hours ago
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.
popalchemist4 hours ago
DIG IT. This is how the web used to feel.
[deleted]3 hours agocollapsed
benj1113 hours ago
Cool. There's unicode cloud characters. Would be nice to have a visual indication of rain/sun/cloudy etc
jsaxop3 hours ago
I love this idea. The brolly logo at the top of the page is also a unicode character, so this fits well.
leonpillow3 hours ago
would be great to show humidity %
jsaxop3 hours ago
I’ll definitely look at adding this in, along with potential the wet bulb temperature. Thanks for the feedback!
weatherphanan hour ago
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.
johnthescott2 hours ago
+2 for humidity. great work. keep it simple.
Imustaskforhelp3 hours ago
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!