Website, domain and SSL for $7!
Launch your website using a Top Level Domain (TLD) name, SSL certificate and branded email for $7.

Launching a website on a budget used to have limitations and depending on your hosting provider, you may not enjoy all the benefits pay-for-services offer. You probably won’t get generous database space allocations, full redundancy and up-time guarantees. However, this article shows you how to launch a website for $7 via multiple hosting options.
Start by registering your TLD domain name with DynaDot. Domain names are a commodity. There are several well known registrars including GoDaddy, NameCheap and Google Domains. Without getting into all the details, DynaDot is the cheapest and provides Domain Privacy for free (helps avoid having your email SPAMMED). For this project I registered findasideproject.com with DynaDot.

Once you’ve registered your shiny new domain name open a new browser tab and head over to Cloudflare.com. Cloudflare.com is the company that magically provides the SSL certificate for your domain name — for free!
Sign Up at Cloudflare.com and add your new domain to your account. After completing this step, Cloudflare.com will provide name servers which you’ll need to point your domain towards.

Return to your domain registrar and update the Name Servers to match the specified name servers Cloudflare.com provided.

Within a few minutes you’ll be able to modify the DNS records in Cloudflare — you’ll point your domain’s DNS records to the hosting provider’s CNAME or the IP address they provide. In the below screen shot I’m using Heroku. You’ll also notice MX entries and a TXT entry which will be entered at a later time, so keep this page available while you follow along.

If your website uses Node and MongoDB, watch my YouTube video to spin up an EC2 instance and point your domain to your EC2 instance’s IP Address — this is very affordable costing you pennies-per-month.
Heroku’s free tier is an excellent alternative if you’re using one of these languages (Node, Ruby, Java, PHP, Python, Go, Scala or Clojure) and plan to use either a MongoDB or PostgreSQL database. Heroku has limitations including a monthly limit of 1000 hours for a dyno (which is used to server your website). Free dynos fall asleep after 30 minutes of inactivity. If you can tolerate that — for free — it’s a solid option. You can additionally upgrade to the Hobby tier at $7 per dyno/month as your web app gains popularity.
If you’re launching a static website I’d recommend using Netlify for hosting — as it’s free. It doesn’t have monthly limits and your website won’t fall asleep after 30 minutes of inactivity.
There are many pay-for service alternatives including Microsoft Azure, Linode and DigitalOcean just to name a few. Pricing is competitive among these providers at around $5/mth.
I’ve used AWS, Heroku, Netlify, DigitialOcean and Microsoft Azure in the past. Using AWS has a higher barrier to entry but pays off with scalability in the long run if you’re able to invest extra time setting things up.
I’ve created YouTube videos to help you - watch this one to spin up an AWS EC2 instance (for Node and MongoDB) and an AWS Lightsail (costs $3.50/mth) — watch this one to use an AWS Lightsail instance. Lightsail costs more monthly but is easier to setup — both my videos will flatten the learning curve for you and I would recommend using the AWS EC2 instance if at all possible.
Heroku is the only provider I found which enables you to host a web app for free. They integrate with several free add-ons including Cloudinary, which enables you to upload and store images in the cloud — and mLab for MongoDB databases. I’m not advocating for any cheats to keep your website alive during certain hours (avoiding dynos going to sleep and having to be re-created)… however, there is an article with direction on how to accomplish that.
If you’re using Heroku you’ll need to add your domain name to their system — you’ll find this option under the ‘Settings’ tab.

Return to CloudFlare and add the CNAMEs so your domain points to your hosting provider (illustrated on the ‘CloudFlare DNS Records’ image above).
For AWS you just point your domain, which is in Cloudflare, to the EC2 or Lightsail IP Address.

Now you’re ready to setup email for your custom domain. Thankfully Zoho offers this service for free for up to 5 users. Additionally, you can create email aliases. This enables you to send email from a web-based interface with your new domain name. Zoho will specify MX and TXT settings which will need to be entered in Cloudflare and verified at Zoho to complete this step.
If you’re using Node you can send emails from your custom domain. You’ll need the NPM package Nodemailer and the below snippet — which uses Zoho as the service provider.

Alternatively, using the service SendGrid ensures a high level of confidence in delivering emails from your website. This service is available as a free add-on with several providers.
When launching a website you’ll want to determine what the demand signal is for your service as quickly as possible. You’ll need metrics to understand who’s visiting your website, where they’re from, how long their sessions are and what pages/resources they’re accessing. Google Analytics uses JavaScript snippets to enable tracking and provides you with a plethora of information about traffic.

That wraps it up. You now have a custom domain, routed through Cloudflare to a hosting provider where your website is collecting all sorts of interesting data about your traffic. You can store records in a database, view site metrics and send emails from your new domain name — all for a whopping $7.
I hope this article saves you money on your next website!