If you’ve built a few side projects over the years, chances are you’ve ended up using a few domains like this: something-super-cool.herokuapp.com. And if you’re at all like me, you hate using those domains, because it just feels kind of impersonal to use a subdomain of a hosting site like Heroku or Elastic Beanstalk for your project.
So naturally, you look up pricing to see how much it would cost to buy your own domain. It’s only $15 a year! That’s not too bad. The thing is this project isn’t that important, and you have 15 other equally unimportant projects using a herokuapp subdomain.
So you do a little math.
15 projects times $15/domain = $225.
That's too much.
You stick with the herokuapp subdomain.
But what if there was a better way?
What if you just bought one side project domain, and used subdomains of it for all of your personal projects? Kind of like an online ‘repository’ site for all your personal projects. Something that let you organize projects like this:
Well, this might sound great, but if you’re the type of person who spends a majority of your time on the development side of things and rarely touches the operations side, your experience with setting up domains probably looks a little something like this:
- Google how to setup a domain.
- Read an article on how to setup a domain.
- Copy exactly what that article says.
- Visit new domain and see this:
- Spam refresh for 20 minutes.
- Repeat steps 1 - 4 with a slightly different article.
- Spam refresh for 20 minutes.
- Repeat steps 1 - 4 again with a new slightly different article.
- Spam refresh for 15 minutes.
- It worked!
Once you see your site finally up and running, it’s usually followed by an overwhelming sense of relief. And that sense of relief is followed almost immediately by a decision that you will never, for as long as you breathe, touch the settings for that domain again.
I know because up until three months ago, this was my exact experience with setting up domains.
But recently I’ve been getting into the operations side of things, and guess what? Setting up a domain is actually easy. Like really easy.
At the end of this article I’ll give a quick step by step guide for setting up a Heroku app with a Route 53 subdomain, but first, I want to take a look at a more practical reason why you should consider setting up a side project domain.
It’s not just about having a pretty URL.
Using a hosting services subdomain also couples your app too tightly with that service.
Suppose the unthinkable happens, and one of your side projects actually takes off... you wake up one day and all of the sudden your app has hundreds or thousands of visitors. And not just that, but people are tweeting about it, and blog posts are being written about it.
Now you start thinking that maybe your app has a real shot at being something big, and you know the hobby dyno on Heroku won’t be enough to handle traffic for long, so you decide to move your site to Google Cloud.
But wait… all of those tweets and blogposts… they were all linked to your Heroku subdomain… and you don't want to lose all that traffic…
If only you had used a side project domain!
Truthfully there are other ways around this problem. You could setup a simple app on the Heroku site to redirect traffic elsewhere, but even then you’d have to pay $7 a month just to keep that app up 24 hours a day.
It’s just easier to use a side project domain, and with the low prices of domains these days it should be a no brainer.
Plus, if you decide one day that your app has grown enough and you want to get a unique domain for it that isn’t attached to your side project domain, it’s extremely easy to redirect traffic from one domain to another.
Alright, now that you're convinced, here's Seven Steps to Set Up a Side Project Domain with Route53 and Heroku.
I hope you enjoyed this article! Feel free to ask any questions or leave your feedback in the comments below!