Before you start
You need a Git host account and a domain. If you do not have a domain yet, a community subdomain works the same way for this walkthrough and costs nothing — the DNS step is identical.
Everything below is on free plans. Nothing here asks for a card.
Get something deployable
Scaffold a project, initialise a repository and push it. Any framework the host supports works; the deploy pipeline does not care what is inside.
The important part is that the repository is the source of truth from the first commit. Hosts come and go — this directory exists partly because they do — and a project that deploys from Git can move providers in the time it takes to authorise an OAuth app.
mkdir my-site && cd my-site
git init
# scaffold your framework of choice here
git add -A
git commit -m "initial commit"
git remote add origin git@github.com:you/my-site.git
git push -u origin mainConnect the host
Import the repository from your host's dashboard. Framework detection handles the build command and output directory for every mainstream framework, and the first deploy usually finishes in well under a minute.
At this point you have a live site on a platform subdomain. That is a complete, shareable result — the custom domain is polish.
The two steps walkthroughs skip
First: point the apex correctly. A CNAME cannot legally sit on a bare domain, so use your host's ALIAS/ANAME record or their nameservers. Guides telling you to CNAME the apex work only on registrars that quietly implement flattening, which is why the instruction seems to work for some people and not others.
Second: wait for propagation before troubleshooting. Certificate issuance needs DNS to resolve publicly, and the most common "my SSL is broken" report is somebody retrying three minutes after changing a record. Give it fifteen minutes before touching anything.
- www subdomain: CNAME to the host's target.
- Apex domain: ALIAS/ANAME, or delegate nameservers to the host.
- Certificate: automatic once DNS resolves — do not retry it in a loop.
- Redirect one to the other so you do not split traffic across two hostnames.
What you end up with
A site on your own domain, served over HTTPS from a global CDN, rebuilt automatically on every push, for nothing. That has been true for several years and is genuinely one of the better deals in software.
Just keep the repository portable. The setup above takes minutes to reproduce elsewhere, and on a free tier that is the property that matters most.