As of writing this, there is no way to get free domains. There is used to be Freenom and Dot.tk, however they have "technical issues" for over a year due to lawsuits, contract expiration, etc. The next best things is free subdomains.
Not all hope is lost!
There is options that are close to free domains, such as a cheap provider that offer domain names and free subdomain options like eu.org, afraid.org, No-IP, pp.ua, etc. If you can spend a little bit of money check out the provider below.