Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Briefsky – a free Dark Sky clone for multiple weather APIs (briefsky.app)
172 points by vsergeev on Feb 28, 2023 | hide | past | favorite | 71 comments


For any other person who wants more advanced weather, I like meteo-blue's multimodel graphs https://www.meteoblue.com/en/weather/forecast/multimodel/tex... Much more information dense, if less pretty but it's helpful to see a bunch of models to get a sense of the uncertainty. It's what meteorologists I know do often, and you can quickly learn which models are short vs long-term and uncheck them

I do wish I could make my own graphs but parsing all the different weather models is a pain, maybe there's some API I don't know about or an open source consistent parser


Instead of showing multiple models, I prefer they run the same model multiple times with slightly different starting conditions. And then show error (probability) bands.


Also meteograms are a nice consise way of getting a sense of the weather

https://www.meteoblue.com/en/weather/forecast/meteogramweb/t...

When I look at science data I don't look at lists of numbers, I don't know why that's always how weather is presented visually


100% - I love https://www.windy.com for this very reason. Their full meteogram gives you a really succinct/concise representation for all the data it's showing every 3h for 5+ days (wind, temp, dew cloud cover/levels, etc).

That said.. Windy's precipitation forecast figures haven't always been great around here.


This (and every other Dark Sky replacement I've tried) is missing one feature that is crucial to me: hour-by-hour barometric pressure forecast.

I get frequent migraines and big changes in the weather trigger them. The easiest way to predict big changes is by watching for swings in the barometer. There's nothing out there that gives the hour-by-hour barometric pressure prediction (at least on iOS) and it's so significant that it has impacted my overall quality of life.


I’m in the same boat with weather pains, so I decided to make a site with an hourly barometric pressure forecast and history.

https://barometricpressure.today/

It’s currently tracking a lot of cities, so please check if you’re close to any, otherwise, I will soon add a search for specific locations.

I’m open to any feedback.


For a web alternative, on https://merrysky.net/ you can expand "More charts" on the graph to see barometric pressure.


FYI, the iOS Weather app does have this now. If you click on a day in the 10-day forecast, you get a detail view with hour-by-hour forecast data for many metrics. One of them is pressure (although I don't normally look at barometric pressure so maybe this different than what you need).

Edit: You can also click on the "pressure" widget and it brings up the same hour-by-hour detail view.


"Chance of precipitation" isn't one of them though, they'll only give you a predicted inches of rainfall. Should I assume that if there's a nonzero amount of rain in the graph it's a definitely going to happen and I should carry around my umbrella?

Darksky used to make that really easy to check for the entire day and I'm not loving Weather as a replacement.


I have this exact same bone to pick with the Weather app


Glad I'm not the only one, I was starting to wonder if I was crazy because that felt like the main piece of data in Dark Sky to me. But I saw a lot of iOS news coverage saying basically "Dark Sky is shutting down, but don't worry about it because Weather app has its local forecast features now!"

Meanwhile Weather app completely missed the point and gives me a bunch of stuff I don't care about.

You can tell me that the wind at 4 PM is going to be 5 MPH west northwest but you can't tell me there's a 30% chance of rain? Gee that's great, thanks for shutting down Dark Sky!


yup, all I want is the precipitation map so I know if I can go run. I have everything but that now in Weather app.

I've been enjoying https://www.meteoblue.com/ and if you scroll down you'll get a precipition map there.


Thanks for the heads-up! It's not quite as nice as it was in Dark Sky, but I will give this a try.


I could be wrong, but I am pretty sure that Windy (windy.com) offers that: https://apps.apple.com/us/app/windy-com-weather-radar/id1161...


Windy.com shows pressure on their meteogram and is an option for their map display.

https://community.windy.com/topic/14827/how-to-read-meteogra...


What kind of changes are you looking for? and how would knowing the forecast help you prepare or avoid headaches?

Anecdotally my headaches correlate with weather changes but was never able to pinpoint exactly the markers.


I’m in the same boat and contemporary headache research doesn’t have any clues yet (aside from the fact that it’s a real phenomenon and we’re not crazy) although it is an area of active research.

I can usually tell by intuition if weather is going to trigger things — I’ll even say, “it feels migrainey out” — but I don’t have one specific weather pattern that is clearly the cause.

That’s why I pay attention to the barometer. The barometer frequently predicts big, nonspecific weather changes so whenever I see one on the horizon I know that I might get a migraine when that happens.

Regarding preparation, I try to get stuff down so I can take it easy around the time when the pressure is shifting.

For example, later this afternoon the pressure is supposed to climb quite a bit so I’m getting critical blockers for work done this morning and then I’m going to visit the gym at lunch. It really helps my stress level if I can finish my plan for the day before a headache puts me out. I hope that makes some sense?


yeah I've wondered too. Although I think for me I just feel better when it's colder

I did debate writing how 'headache'y I felt periodically with timestamps (e.g. make a telegram bot -> google sheet) and then add in some weather data and see if it was actually correlated if I plotted them


> This (and every other Dark Sky replacement I've tried) is missing one feature that is crucial to me: hour-by-hour barometric pressure forecast.

I think Carrot weather also has that feature


CARROT (iOS) has it.


For a long while, I had been looking for Weather Apps with great UIs. They seemed so hard to find.

Now I have two that look great on the Desktop and easy on the eyes (ie; without the chaos I find on other sites):

https://merrysky.net/ and https://briefsky.app/

Only tested on the Desktop but I'm finding I have to do a bit more work (vs MerrySky) - that is, I have to keep clicking each day.

Usability could be improved if today's weather information bar automatically displayed when accessing the page. Maybe the settings could add a toggle ON option for:

(-) today only

(-) all days


I'm planning to rewrite https://uw.leftium.com/. Any suggestions?

I'm trying to figure out a good way to add 60-min forecast (precipitation in next hour.)


SI/metric units, please.


One of the reasons for my app was to quickly switch between F/C.

Clicking the large temperature (in landscape mode) toggles between F/C. I think precipitation is always in mm, except for the short text summaries.

...but yes, making the units configurable was already requested and is planned in the rewrite.


Thanks, clicking on the large temperature does indeed — a bit unintuitively — toggle between °F and °C. If you're on a mobile. If you're visiting from a desktop computer, as was my original case, there is no large temperature to click on.


Thanks for the feedback. Will make a note of auto-expand settings.


The US government has a public, free API for getting weather data, and it will spit out JSON even. http://api.weather.gov documentation here: https://www.weather.gov/documentation/services-web-api

I never understood why people go through all these other API's that consistently get shut down, cancelled or become pay for use eventually.


Unfortunately, the NWS API is missing machine readable condition codes/icons in the daily and hourly forecast, which is why it isn't available in briefsky. The API has nearly everything else, though. If I had a solution for those icons, I probably would have added support for their weather alerts too, and also made it the default for US locations.

See here for notes on other unsupported providers: https://github.com/vsergeev/briefsky#unsupported-providers


According to your link it's missing 2 things, and I would argue neither are true.

Sunrise/sunset data can be calculate yourself: https://gml.noaa.gov/grad/solcalc/calcdetails.html

As for the code/icons, there is indeed an 'icon' in the hourly forecast, for example:

From this url: https://api.weather.gov/gridpoints/PDT/31,35/forecast/hourly which returns an hourly forecast for someplace or other, there is this:

"icon": "https://api.weather.gov/icons/land/night/snow,20?size=small",


The icon field is deprecated, no longer documented in the API, and also more complicated in practice, as it can mix multiple conditions, e.g. `...{day,night}/rain,30/snow,60?...`. The space of possible icons is also fairly large -- https://www.weather.gov/forecast-icons to get an idea -- and it's not clear what short string they all map to. So yeah, in theory you could parse and infer a weather condition out of that link, but as you can see it's pretty hacky and already deprecated. The API should really just return a code or enum (e.g. like a WMO code).

But maybe there's a cleaner way to infer it. PRs are always welcome.


There's also "shortForecast": "Partly Sunny"

I don't know why you think it's deprecated? I don't see that anywhere. They just updated the icons in 2015, which for govt API work is practically yesterday :)

I think it's just that the specifications document, like basically all documentation is out-dated. There are many fields in the output that are not in the documented spec.

My weather needs just call directly to api.weather.gov and have done so reliably for a year or two now, whenever the last API I was using started charging or broke or whatever happened to it(I don't even remember what API it was at this point). So I have no need of your project, but I wish you lots of success!


They're deprecated under the "Specification" tab: the `/icons/...` endpoints in the endpoint list, and the `icon` field in the `GridpointForecast` schema. The `shortForecast` field is documented as `A brief textual forecast summary` and not exhaustively enumerated, so it's also technically not machine readable. If it's anything like the icons, there could potentially be 50+ of these. I really couldn't find anything resembling an overall conditions enum or code anywhere, but I'd be happy to be wrong.

In the meanwhile, I could try to get it working with nearly everything else and try to find a last minute hack for the icons.


Seems to be limited to the US only? Plugging in a random location in Canada and I get "Unable to provide data for requested point 45.5451,-78.8739"

Which is really disappointing, since the weather models they use must model the entire world...


Looks like the Canadian govt offers their own API: https://api.weather.gc.ca


Yes, but if I'm making a website supporting hundreds of different APIs with different schemas and slightly different information available isn't really practical. Local providers aren't really a substitute for a single global source of weather data.


Assuming all of those things, I agree it's not great, but if you truly need global weather information, you either pay for an API(assuming one exists, I have no idea) or afford to hire developers/dedicate time to make one for you.

I would never expect a govt to provide global weather forecasts for places outside their jurisdiction. Though now I wonder is the US govt one provides weather for the US territories and other US places outside the 50 states. I don't have time to play with that at the moment, sadly.


Maybe because they are not in the US


I miss the dark sky alerts indicating that its about start raining in the next x number of minutes at my location and how long the rain will continue. Was great when I was about to step out for an errand and could wait until it stopped raining.


Can someone explain to me why weather data is seemingly hard to get/provide? Isn’t data from the US government (weather.gov) in the public domain and completely free? What did Dark Sky and similar provide on top?


That’s exactly what I want to change with my open source weather api https://open-meteo.com

It collects raw weather mode data and redistributes weather forecasts with simple APIs

Briefsky is also using it :)


Seriously, thanks a ton for providing an API-key free weather API! That's why it's the default for briefsky. Sorry if there's a load spike today ;)


The answer is that it is not hard to get. The problem is that you are asking web developers not weather scientists.

The US provides free updated every 15 minute forecast for an absurd number of weather variables for every 3km square of the US in a nice GRIB file package. It is the gold standard on the free domain. Want a real api? Be prepared to pay real money. All Darksky did on top of this was interpolate that forecast data across time and the map.

Without an actual meteorologist on hand to guide the process, the forecast is probably going to be bad. NOAA and the weather community are just fine with the bar being high for entry. A proliferation of low effort/poor forecast web sites would just lead to them removing the realtime data from the public domain.


Relative to the prediction side (which Dark Sky is arguably most known for): Every day, NOAA collects billions of data points (20 TB) of data about the planet's weather, and throws it into their supercomputers to make a forecast. NOAA has the 49th and 50th fastest computers in the world. In fact, the two major applications of the original supercomputers were nuclear physics and the weather.

They make it all available at https://www.noaa.gov/nodd/datasets, but as noted - since the data is so incredibly large and NOAAs already running stats on it... you can't really outcompute them.

[There are very very few CS applications with both a) more computing power and b) more real world impact than predicting weather and hurricanes. Maybe cancer research.]

20TB source: https://www.nesdis.noaa.gov/news/data-dive-five-noaa-databas...


For me, it was the history data. I could check if it snowed in the last couple days in a new location and whether it melted yet. With most weather apps, the furthest back I can see is midnight, which does not even answer the question of whether there are going to be puddles/snow/slush/ice on the ground that formed since the time I went to sleep.


Yes, absolutely this. Dark Sky was very generous with their historical data, none of the others is doing that.


The main issue I ran into with the NWS API was a lack of stable conditions codes/icons (something like WMO codes that could be easily mapped). They encode some weird dynamic image URL that renders a summary of the weather, but isn't machine readable. I think they're deprecating it anyway. Otherwise, it had pretty much everything through one endpoint or another.

For the others, I tried to document the main limitations here: https://github.com/vsergeev/briefsky#unsupported-providers


I agree this data should be free and easy to access from the government.

Personally, I've found weather.gov APIs hard to work with. There's no geocoding included, and you can't even use lat, lon directly. But the bigger dealbreaker is that I have about a ~10-20% success rate querying any given endpoint, where sometimes I just get "An unexpected problem has occurred." And this is an automated twice-a-day query, so I don't think I'm hitting any rate limits...


You can use lat,lon with the points endpoint: https://www.weather.gov/documentation/services-web-api , then properties.forecast and properties.forecastHourly endpoints from there to get daily and hourly forecasts. I don't have enough experience with it to comment on rate limiting, though.


Nice!

Small feature request; when I paste in from Google's "copy coordinates" feature, it could detect my paste contents are "coord,coord" and populate the form appropriately, splitting on the ",".


Thanks, I'll add it to my list. At some point I was thinking of adding a location search too, just depends on a free & reliable geocoding API.



+1 Thanks. It looks like the Open-Meteo one may be worth a shot since it doesn't require an API key and briefsky is client-side.


Would be nice if it automatically uses degrees Celcius instead of Fahrenheit if the location is Europe. Also for visibility and wind speed, km instead of mi.


I considered handling this with some coarse longitude heuristic, but settled on just using the browser's locale for now, so it should default to metric for non-US locales. In the metric setting, the visibility and wind speed will be km and km/h, respectively.


Locale, in practice on the web, is mostly about language (fortunately!). I’m Dutch in NL and my browser (and OS!) is set to prefer en-US. Most of my friends do too. Dutch software UI translations are terribly cringey.

To me, that means I prefer English UI text but it doesn’t suddenly mean I want my units in arms and ounces and firestoves or whatever weird shit you Anglosaxons do :-)

I recognize that formally this is me breaking the locale model, but if so, then that’s a flaw in the design of locales and not a flaw in me. At the risk of ranting a bit, the idea that I can’t have a Color Picker named “Color Picker” without also bending over and accepting Fahrenheit is just weird to me. Lumping all this stuff together (don’t get me started on number formatting!) into a single 5-character language-and-region code is just dumb. The model assumes one dimensional einheitswurst humans who do as they’re told in primary school, never move away from their home town and never learn a second language. It sucks.

Let’s be happy so many websites get this right and treat locale as a language selector only.

(Meta sidenote, “Einheitswurst”, literally “unit sausage” but kinda also “unity sausage” which gives this word for dullness a delightful political angle, has got to be the second-best word in the German language)


Thanks, I've filed an issue that the locale shouldn't be used for units.


In Australia at least (which uses metric), a lot of people use EN-US as the locale, as it's the default for so many things.


Thanks, filed an issue.


Love the app. Would love to use it on my iphone as a PWA but it seems to have a couple issues running on mobile:

1. The Example Weather Provider notification keeps popping up every time I refresh. It doesnt remember that I already closed it the last time

2. For some reason, on my phone it thinks that today is Saturday (today is Monday where I am) and its giving me the upcoming weeks weather starting with Sunday.


Very cool. Special kudos for the light and informative UI design.

One nitpick - with Geolocation option, if it is disabled at the browser level (all fields are greyed out), the app shows some forecast, but it's not clear for what location.

An idea - allow enabling multiple providers at once, have the app automatically validate their forecasts against the actual conditions and then, basically, rank them on accuracy. In theory this should allow determining providers that are good at forecasting for one's specific location.


Nice. A tip: as long as you're asking for position anyway, you might as well make the units default to the units used in that location. 99% of the time that's what we want.

Don't forget the clock, too. It's not quite as odd to use am/pm as it is to use imperial units, but it's still the wrong choice for all of Europe minus U.K.


Would be nice to show the location that it's reporting for; geolocation sometimes (for me, often) gets it hilariously wrong.


Agreed. I was looking for the same thing.


Briefsky only offer Open-Meteo without an API key. This is a Europe Centric model (if they integrate HRRR, they don't state it anywhere I could find. I could be wrong) while MerrySky uses Pirateweather.net which among others does integrate the HRRR model, which is a US model and is higher resolution (3km vs 4km).


Yup, all good points. I've found Open-Meteo's default to be subpar for US. Briefsky offers Pirate Weather too, but will require a free API key. (MerrySky is Pirate Weather, so it's baked in.)

I was actually hoping to make NWS the default for US, but ran into some limitations with their API missing machine readable conditions codes/icons. Open-Meteo does have https://open-meteo.com/en/docs/gfs-api, which should probably be used in the meanwhile for a better default forecast with US locations.


Is there a Dark Sky API replacement that provides brief text descriptions in the 10 day forecast yet?

When I checked the other day, it looked like Pirate Weather was still waiting on donations to fund the development work for that feature.


I would suggest trying https://www.meteosource.com where you can get all data including 10 day forecast with a text description. There is a free plan for developers with 7 days forecast and a reasonably priced Flexi plan with full data.


I love the UI but it seems to be missing what location it has loaded for? I know it asks for it, it is useful for me to see what location it is reporting on.


Yeah, this probably requires some explanation. Currently, briefsky doesn't depend on a geocoding API, so it can't map locations to coordinates or vice-versa. It just uses the lat/long from the browser's geolocation or manual coordinates in the settings. But ideally it'll have location search and location text at the top.

The way I use it is as a bookmark with a pre-configured provider and the location in the title. briefsky stores all configuration in the URL, so you can bookmark multiple locations / providers.


I've needed a Dark Sky clone for ages! This is great.


Here's an alternate also... https://merrysky.net/




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

Search: