Hosting a Site on PubStorm

Update: I received an email today to say that PubStorm is shutting down as of the end of November 2016.

This is part of my series of try some alternative hosting options. Next on the list was a service I stumbled across completely by accident. It’s called PubStorm from a company by the name of Nitrous.

Their tagline is ‘Deploy static websites to a superfast global CDN in seconds.” Nice. They have two tiers: Free and Premium. The latter gives you a bunch of things like extra versions, visitor stats and guaranteed uptime.

The Free tier allows you to host up to 10 sites. It does allow custom domains and even SSL certificates. The negative (which I didn’t notice until later) is that it adds a PubStorm watermark to your site.

Getting Started

The biggest bugbear to getting started with PubStorm is that you need to install their command line tool. Bizarrely, although it’s not written in JS, they ask that you do this via npm, which means you need to have Node.JS installed.

Bad enough forcing me to install a command-line tool, which hardly makes it easy to use for non-techies, but why require Node when that’s not what the tool is written in?

At least you don’t have to worry about an onerous sign-up process, just email address and password (with a confirmation email). No attempt to collect credit card details.

Then it’s into the command line. If you opt to sign up via the website (as I did) note that you’ll need to run storm login first, which seems to be missing from the instructions.

I had all my files so I just needed to run storm init and enter the details as requested.

The requirements for the project name are odd as you can only use lowercase letters, numbers and hyphens. Presumably this is to make it URL safe and there’s no prior warning of this requirement. Here’s a stunning idea: take whatever name I give you and make it URL safe! You have to pick one that’s unique across all of their users too.

Next you need to run storm publish to get your site onto their servers. That’s when I hit an error because it tried to use the shorter reference (~/my/path) to the directory where my files were. Using the full path from root worked.

That will leave you with a site at your-site-name.pubstorm.site. To get a custom domain mapped you need to run another command, this time storm domains add, and then follow the prompts. It’ll provide you with an IP address for an A record and details of a CNAME to add. It doesn’t seem to support naked domains though, which get 301 redirected back to the www subdomain.

If you want SSL you can add a Let’s Encrypt cert for free with storm ssl letsencrypt but I’m not sure how you would bring your own.

I included a 404.html file in my upload and PubStorm automatically configured itself to use it for any errors, which was a nice surprise.

I was concerned the watermark would make this untenable, but it’s very subtle. Not sure I would want it there long-term but not really an issue for most people.

Speed

I again ran my standard series of tests once uploaded.

Original host Test host
PS Rank (Mobile) 88/100 73/100
PS Rank (Desktop) 93/100 85/100
WPT First Byte 0.156s 0.760s
WPT Fully Loaded 2.892s 3.499s
WPT Bytes (KB) 1,093 333
GTMet YSlow 88% 74%
GTMet Load Time 2.5s 2.2s
GTMet Size (Kb) 1,050 329
GTMet Requests 15 24

Page Speed and YSlow scores took a hit when compared to a standard LAMP host. These were largely down to the lack of cache headers on certain file types. I couldn’t see a way to add them.

The lack of naked domain support was the likely cause of the apparent slow load times as many of the paths were hard-coded so had to wait for a redirect to the www alternative.

Not sure if they’re making performance improvements to the service but I did notice a few of the stats improved when I re-ran them after a month or so.

Summary

Set-up difficulty Average It didn’t take very long but you do need to install their tool and it’s all done in the command line, so not particularly user-friendly for non-technical types.
Set-up time Good Easy to follow instructions make it easy to get going.
Speed Average That ‘superfast global CDN’ isn’t so superfast.
Cost Average There’s a free tier but you have to put up with a watermark, albeit a subtle one.

Final Thoughts

Aside from having to install their tool, the setup process was pretty simple and quite quick. The instructions were clear and straightforward and much easier than some of the other services I have tried.

You can do some clever things as well, like tying a site to a repo so that any pushes to GitHub republishes your site. You can also make use of environment variables to swap between testing and production environments.

Although it had some useful optimisations baked into the default settings it still didn’t beat a bit of shared hosting that had been tweaked. For some of the services I’ve tried, designed as no more than file storage, that’s understandable. For a service that is all about static site hosting that’s disappointing.

Including this in my series was debatable due to the watermarking on the free account. While it was pretty easy to set up I’d have to give Surge the edge for a free tier without adding things to the site and because it performed a bit quicker (albeit marginally in some tests).

That said, PubStorm provides some simple visitor stats by email every week which I find very handy.