background

Weather by Hayley has been a site I've been wanting to do for quite some time. Like maybe even a decade at this point.

The idea is simple enough. If you're from the states and you've seen the Weather Channel's "Local on the 8's", it's basically that but in web form.

Soothing background music plays as a voice reads you your forecast.

To my knowledge, no one has ever done that as a web app. For one, let's face it, it's inappropriate somewhat.

If you want to know what the temperature is now, you can use your eyes to scan and see what the temperature is. Want to know what the forecast will be in six days, use your eyes again to quickly scan and find just what you're looking for. The whole local on the 8's works somewhat since TV is a passive medium. But whatevs right?

Frankly, my thought is for this to more so be a multimedia experience (ooh, fancy) than anything else, just with weather happening to be the content of the information.

So all of that aside, where are we now?

where are we now?

On stream, I was able to get a very bare version of the site working with the latest stable versions of Middleman and Opal. It wasn't fun. Opal changed things dramatically in 0.8.0 such that code no longer auto starts. And I think they did a major disservice by not making it more obvious that you now need to manually load modules. Anyway.

The huge stumbling block I have now is how to hide my API key. Well, actually if I'm honest...

my biggest stumbling block is how this project is going to pay for itself

I'm likely going to use forecast.io's API for weather information. There were other providers I considered, but forecast.io seems to be the best mix of reasonable pricing and accuracy. Like, once you go over your 1,000 calls a day, you pay per request, whereas places like Weather Underground seem to just bump you up into the next price bracket, which could mean a huge difference in cost. Plus, I just kinda like the work that Dark Sky has done in the past so I'd way rather support a company that I actually like.

the cost of a weather site

This is quite possibly the most expensive site I've ever considered building. For a whole bunch of reasons. First:

the API

With forecast.io, I'll get 1,000 free API calls a day. So what happens once I hit my 1,000 calls? Honestly, I have no idea. Obvious answer is to just never enable billing, so that if I hit the limit then boom, that's it for the day. No more forecasts.

Granted, I'm already accustomed to paying out of pocket for passion projects, but the slippery slope here is… what if it somehow went viral? Previous passion projects have revolved around paying out of pocket for servers to host them: a predictable, fixed cost. Okay so to a degree of course, because a traffic spike could mean that I would need to get a beefier VPS, but still, I'd be in control of that decision to upgrade or not, whereas a sudden traffic spike on the weather site would mean lots more API hits.

And that's not all.

the audio files

The plan is to have both music and speech as audio files. If I'm hosting those myself, then that's another potentially huge cost to consider. Any given mp3 might be something like 4meg of data. I have no idea how much the audio clips are going to be. But all of that is going to add up considering that's for one single forecast request.

Granted, I will have Cloudflare in front of my website, so that will help with hosting costs somewhat. But the simple raw storage of files is going to cost a decent amount on amazon s3.

I don't know how well it would work, but there is the possibility of using youtube or something as a way to host the music. That would cut down on costs somewhat, though at the added annoyance of unnecessarily loading a youtube video (increasingly load times and such).

how to make money

The obvious answer? I have no freaking clue.

Ads seem inappropriate. This is supposed to be a mutlimedia experience or whatever, so having some ad that I can't control is leaving far too much up to chance. I feel like it could ruin the experience.

There is the possible option of getting sponsors. Like, it being a radio ad or something where I control the "quality" of the ad somewhat. But I've never had a site where I had sponsors, so I tend to doubt that that would work.

A pro version? This is the concept of the freemium model: giving something away for free, but having a premium version that is hopefully so enticing that people pay for it, such that overall, your site makes money. But I am stumped for ideas as to what would be some feature

Donations? Frankly, I've tried this on one of my sites that I own. It gets a pretty decent amount of traffic, but would you like to know how much I've made in donations so far? $0. By contrast, the ad that I've got way below the fold1 makes enough money for the site to pay its own hosting bill. So basically, I have zero faith in having a donation system as a way to pay for the hosting.

At this point, I really have no idea what I'll end up doing. Probably for now, I'll just proceed without a plan and just not enable billing on forecast.io such that the site will basically break if it hits 1,000 in a day. Frankly, I've had tons of web projects where 1,000 pageviews a day would be AH-MAH-ZING, so maybe this thing will barely cost me anything to run. Who knows.

tech problems

The single biggest thing I need to solve soon is what to do about my API key.

On several different projects, I've used a lot of different cors/json proxies. And somehow, they keep all dying on me (obviously, I know these things require great amounts of bandwidth to run so I'm surprised that free versions of these things exist at all). crossorigin.me is what I'm using at the moment, but I have the dual problem to solve of both needing to hide my API key (so that someone else doesn't run up charges on my API key) and just needing to use a service that I can count on given the history.

So I think I'll need the following:

  1. proxy software (if I remember right, nginx can even do this directly)
  2. a box/host to run the proxy software on
  3. money to pay for #2

So it really does start to feel like this is the most (potentially) expensive project I've ever attempted. No wonder I've procrastinated on it for so long.

the next stream

But for now, weather by hayley is pretty obscure so I can get away with ignoring a lot of these issues for now. So my plans for the next stream are to just get something live going on the real domain so that I can start getting real world feedback. If I hit the 1,000 limit, so what. The best time to fail is before anyone knows about you.


  1. Basically, "above the fold" is the part of a site that's visible when you first load the page.