what’s a “surge” exactly? 🤔
GitHub Pages is so prolific at this point it likely needs no introduction. Surge, on the other hand, is a much lower profile project. It accomplishes the same goal as GitHub Pages, allowing one to publish their static site on an accessible URL of whatever name they choose complete with an “https.” Where surge differs is in how that website gets put on the world wide web.
Surge lets you get from 0 to published in the command line without any extra setup. Once you install the package, you can use their CLI in your project directory to whip up an account…
enter your domain to deploy to…
surge.sh is totally free. You can use your custom domain if you own it.
Looks easy, but where are my git hooks?
The beauty of GitHub Pages is it will simply track your master branch and rebuild / publish your site whenever it gets updated. Thankfully, surge offers the option to hook into pushes and commits with a little addition to your package.json. This snippet will do the trick for redeploying on push:
Neat. But what are the benefits exactly?
Surge offers a few niceties that GitHub Pages won’t out of the box. For one, you obviously don’t need to use GitHub to manage your version control, so you can use any custom solution you desire and still deploy with the same surge command.
we deployed a simple project folder with a few html files:
Notice our 200.html added at the bottom. This acts as a fallback to serve up whenever a given route is invalid. Assuming these are all the html files in our build, we know someone visiting, say,
Okay I’m starting to see it. What are the limitations?
So Surge was built to be really good at doing a very specific task. If you have anything more than a static site or client side application, there’s sadly not much you can do with this tool. Any fancy backend you have would need to be deployed separately, or you can use the aforementioned Zeit Now to deploy everything in one place. Now is a much more flexible tool that’s quickly gaining traction, but I’ve stayed loyal to Surge because of the routing niceties and lack of any necessary
Of course you should use whatever tool that works best in your workflow. But the next time you’re building v175 of your portfolio site, consider giving Surge a try 😊