Ok, so I know how to build single page apps in HTML, CSS, and JS.
What things need to be learned so I can actually deploy websites on the internet e.g. getting a domain name, deploying, hosting, making make the application secure etc. etc.
if someone could detail whats needed and any learning resources I’d be really grateful.
This is a facet of modern development that’s obnoxiously under-taught to self-learners. Unfortunately, the mechanics of deployment can be so individual that you’re perhaps best off learning how to deploy on X provider to see how it works.
If you’re only uploading html, css, js, image files, or even some server-side languages (like php, cshtml, csharp, etc) the simplest way is via FTP. Get yourself an FTP program, your web host will usually give you an FTP ID and password, enter your credentials, and connect… done.
From here on out, you can get fancy. Some hosting providers provide command line tools to upload everything in your project directory to their server. (probably via FTP protocol too).
Some providers allow you to deploy from your github project straight to their servers.
and if you’re using cloud providers like Azure, Amazon AWS, they’ll have their own instructions too.