Freenom is currently offering domain names for the first year.
They're a domain name registrar which means that they allow you to buy and manage domain names off their marketplace.
While it is only specific domain names alias on offer, it's still a great deal for those looking to create temporary testing websites or get their foot online without spending any money first. Please do read their terms and ensure it meets your needs.
How to sign up for a free domain name with Freenom
Step 1 - Search for your own domain name on Freenom
Step 2 - Select your preferred domain name alias
Step 3 - Select your plan with Freenom
Select your plan from the list of options in the drop down menu after selecting your domain name alias.
Step 4 - Review your purchases
You'll then need to share details to sign up, such as email address, etc. as per domain name registration requirements.
Review and confirm your email address, as they'll send you a validation email to click and confirm your email address. You'll have up to 24 hours to confirm your email address.
Step 5 - Make sure you validate your email address is correct
Confirm your email address by checking for their email in your inbox.
Step 6 - Enjoy your new free domain!
If the above steps are not working, you might need to work with Freenom support or you can also try visiting the domain name extensions directly such as .cf, .tk, .ml, .ga, .gq.
I just tested by looking up .cf directly, where I visited http://www.dot.cf/en/index.html?lang=en though it redirected me back to https://my.freenom.com/domains.php?a=availability&domain=vulongtran.cf. So Freenom may be helping some of these countries manage their domain name extensions.
Then I was able to follow up the process here.