Parking for Pennies
I haven’t been able to find a domain parking service that could offer the flexibility I wanted, so I finally decided to build my own. This is the first article in a series detailing how I do that.
Like a lot of domainers, I have strong interests in marketing and bringing new ideas into the world. Unlike most domainers, I also have the technical chops to create all parts of a website.
I only have a couple of hundred names at any given time which is small by domainer standards. There are still enough of them that I don’t want to deal with administering a WordPress site for each one. Most of my holdings now are names that I had plans for at one time or another, along with a few generics.
In this first article I’ll cover my goals and outline my plan so you’ll know if you want to follow along. If you have any questions, comments, improvements or suggestions feel free to leave them at the bottom here or contact me directly.
- No moving parts
I want a serverless solution with no hardware to manage. I can provide my own support for any piece in the stack, but I have better things to do with my time.
- Zero cost
The domain registration fees are a set cost, I can’t get rid of those. I want to spend as little above that as possible for each domain. I want my yearly cost to be pennies not dollars per domain. When I do have to spend money I prefer it be consumption based billing, we don’t want monthly fees for sites that aren’t generating any traffic.
- Infinitely scalable
I might be cheap but I expect a lot. I don’t want to worry about scaling things up if a domain starts to generate traffic. I want to be able to handle top-trending topical sites with no concern that my solution will be able to handle the traffic.
I spend all week dealing with technology for other people, I don’t want to be stuck doing DevOps for my own sites. Any given domain will earn very little so it’s important that it doesn’t take much effort to set up.
- Open Source
This isn’t about saving money, I touch on that above. This is about supporting free tools that can help small businesses and organizations compete. My career has been built on Open source software and it feels good to give back when I can.
- Host DNS for free at my registrars
- Request free SSL certs from AWS
- Use AWS Cloudfront and S3 for static hosting
- Manage content in a Git-based CMS, Netlify CMS
- Generate static sites using Nuxt
- Create a CLI to automate routine tasks
Things start with my domain registrars. Most offer some sort of free DNS hosting along with the yearly registration fee. AWS Route 53 DNS hosting may be more robust, but at $1 per month per domain that adds up quickly. If any site started to grow, moving it to Route 53 would be one of my first moves.
SSL — AWS Certificate Manager
AWS offers free SSL certificates for use on their services. There is a little DNS rigmarole you have to go through once for each domain to enable the free cert. This is even easier than solutions using certbot and LetsEncrypt certificates.
Hosting — AWS Cloudfront and S3
While not 100% free, S3 hosting is an incredibly inexpensive way to host static content. With Cloudfront providing CDN services and SSL termination in front of that I’ll have a secure and extremely scalable site. Infinitely scalable? Ok it’s not infinite but scalable thousands times beyond what I could imagine even the most popular parked site to ever generate. All with zero management effort once it’s setup.
Content Management — Netlify CMS
Netlify offers a great Open Source Git-based CMS. I want a Git-based CMS so there is no database server to tend to. Even if use something like Aurora Serverless there’s still potential issues with database connectivity and security. Modern sites can scale to new heights by ditching the database where possible.
Presentation Layer — Nuxt
My domains cover topics that are all over the board. I want to provide tailored content and offerings with unique styling under each domain with minimal effort. If a site started to generate traffic and I wanted to add more sophisticated dynamic elements Nuxt allows me to do.
Management — CLI
I’ll create a CLI to execute runbooks for various tasks required to set up, manage and update content for the domains. This will help ensure consistency and avoid me having to remember the process when I only do it a few times a year.