Hosting Your Websites

Hosting options for your websites

To host your site just copy everything from the site directory (not the stage directory) to the server on which you would like to host it.

For creating static websites on code collaboration sites offering repository management like Amazon CodeCommit, BitBucket, GitHub and GitLab you can import/fork, rename and clone a site repository template and work from that (use nsm clone repository-url). I personally find hosting on GitLab the easiest, because you only need one branch (standard master) then have it deploy the site when you push using a .gitlab-ci.yaml file.

There is a variety of site repository templates here, including Evie from unDraw and a whole range of HTML5 UP templates.

Note - You can rename a repository when importing it, rather than forking and renaming, plus on BitBucket and GitHub you cannot remove fork relationships. Also on GitHub you will need to go in to the site repository's settings, find the GitHub Pages section and set the source to master branch (there may be some delay before your website goes live).

You can also combine any of the above hosting options with Netlify, which works well for custom domains (including subdomains) and automatically renews Let's Encrypt certificates for your site. Netlify also has built in form handling and a full suite of authentication functionality backed by the GoTrue API. For these reasons we recommend Netlify for hosting JAMstack websites.

Other good free hosting options for static sites include:

Also check out Aerobatic.

If you would like to be a masochist and set up your own site repositories from scratch for any of BitBucket, GitHub or GitLab then see:

  1. Hosting on BitBucket;
  2. Hosting on GitHub; or
  3. Hosting on GitLab.

To host dynamic websites for free check out Heroku. Other options for hosting dynamic websites (or static sites if you would like) include hiring a server with someone like:

  1. BuyVM;
  2. Joe's Datacenter; or
  3. Linode.
or any site that offers linux VPS hiring, then using something like the following to set up a web server on the server you have hired:
  1. LAMP stack; or
  2. NGINX (check out NGINX Unit for free options).