The reason for doing this using well-capitalised free services like GitLab & GitHub, is it can stay alive forever on the yourname.git***.io domain — and with no payments ever needed to keep the .io URL versions of your sites live for as long as the internet itself — you can make as many free sites & pages as you like!

It’s also a great way to make a free, and easy to maintain, link-tree page — to include in your social media profile, in a way that you own the data, without any tracking, privacy issues, security worries or card details – ever.

You could make it multipage too - but let’s keep it simple for now, as it’s quite a nice format for that simple link-tree, or a longer article on yourself and your interests.

And just add a Namecheap domain if you want to use your own domain name too, the git***.io domain will still work & live forever alongside, including if ever you stop renewing your own domain for any reason.

GitHub specifically also offers a succession planning feature too — should you wish someone to inherit your work — which is a subject for a longer post another day!

Your eternal website in 10-steps

  1. Download a copy of my page template from GitLab, or start with a blank text file called (In Ulysses, type @:index on the top-line to set the file name).
  2. Choose your preferred Plain Text & Markdown text editor — this will style and export the HTML for you. I’m using Ulysses, as you may know by now.
  3. Write and refine all the things you think others might like to know about you and your unique experience.
  4. Export a copy as HTML called index.html, using any style template you like. You can use one app to write and another to export, if you like the editor in one and publishing styles in another, that’s the point of Markdown being portable.
  5. Create a free account. On your GitLab profile page click + to create a new project, this one is called as the naming convention recognised as your user page. GitHub uses the same convention with their .io Pages domain, eg;
  6. To the right of where it says Master, click + > New File, and upload your index.html file, css folder and css.css file, and images folder if you have images too.
  7. In your project repository, click Setup CI/CD > Apply a template > HTML > Commit changes. This deploys your files and page setup.
  8. It’s now live on your (or URL!
  9. Open the GitLab Pages instructions, where you can find details on what your link is (something like, the first part being your username  – and add the relevant /project-slug if you have other project pages to publish as well.
  10. In your GitLab project, go to Settings > Pages > New Domain to enter your domain name if you are using one, and follow their guide on how to set up your domain name.

That’s it, your 100% free, easy and secure home page to grow with your learning and audience.

The reason we do this with a static page .html, and not a database driven content-management system, is simple; it requires zero maintenance for it to remain live and secure forever – simply because there’s nothing to hack when the pages and images you upload for public display are the only data on the host.

I’ll add a more detailed step-by-step guide with screenshots for setting up your own domain name using Namecheap & Cloudflare at some point, too. And just email me if you need a hand.

Source & Downloads

My GitLab/GitHub page is just over 3,000 words, 2-days of writing and maybe 1-week refining:

I think worth the effort, for an almost-permanent record of your publishing, for free - and when you’re ready to move onto a full blog like this one, Digital Press & Ghost Posts are here to get you going quickly too.

What will you share now you can easily publish your notes too?


If you made it this far, maybe you learned something new, and you can now do!

Subscribe for updates to this page and new posts — and let me know how you get on or if there’s anything I can help with?

To follow my online adventures, with advice on creative technology, building a brand, ethical business, ecommerce and online security, find me on Twitter...