In principal, you can upload your “public” folder to any host to
deploy your webiste.
We will discuss how to publish your website using Netlify.
Netlify will generate the “public” folder from your source, so you do
not need to upload it.
Initialize a git repository in your website directory. Add all of
the files not in the “public” folder and commit them. You can exclude
all files in “public” by adding a file called “.gitignore” in your
website directory that contains the following code:
public
You can automatically create this file via running the following in
the terminal
echo "public" > .gitignore
You can add everything then to the stage via
git add --all
Create a repo on GitHub that will contain the source for your
website. Make sure this is a public repository.
Link the remote to your local and push your changes to the
remote.
Sign up for a new account on Netlify through your GitHub login:
https://app.netlify.com/signup
On the netflify homepage, then click on “New Site from Git”

Click on “GitHub” when it asks where to create a new site
from

Follow the prompts to choose the repository where the website
source exists, authorizing Netlify at the appropriate prompt.
Your build settings should look something like this:

Click on “Deploy Site”
Netlify should give you an automatically generated URL where you
website is deployed. E.g. mine is deployed to https://loving-haibt-448d60.netlify.app/
You can set up a custom domain by following the links on Netlify.
A custom domain name is only about $10–$15 per year.
You can also get a free subdomain from rbind: https://support.rbind.io/about/
After setting up Netlify and linking it to your GitHub repo,
whenever you push changes to GitHub, Netlify will automatically deploy
those changes.
One of my students made a very nice website for herself: https://ruiqi3239sun.netlify.app/