There are two basic types of Pages available: User/Organization Pages and Project Pages. They are nearly identical, but there are a few important differences between them.

Both types of Pages are served over HTTP, not HTTPS. That doesn't make them inherently less secure, but it does mean that you shouldn't use them for sensitive transactions, like sending passwords or credit card numbers.

User & Organization Pages

User & Organization Pages live in a special repository dedicated to Pages files. You will need to name this repository with the account name, e.g. atmos/atmos.github.io

  • You must use the username/username.github.io naming scheme.
  • Content from the master branch will be used to build and publish the Page.

Tip: You can only use your own account name for a User or Organization Page repository. A repository like joe/bob.github.io will not build a User Page.

Tip: If you would like to use Pages on GitHub Enterprise, note that:

  • you must replace all instances of github.io in this article with your Enterprise hostname
  • your Pages will be served at a subdirectory (e.g. http(s)://[hostname]/pages/[user or organization name]) instead of a subdomain (e.g. http(s)://[user or organization name].github.io)

Project Pages

Unlike User and Organization Pages, Project Pages are kept in the same repository as their project. These Pages are similar to User and Organization Pages, with a few slight differences:

  • The gh-pages branch is used to build and publish Project Pages.
  • If no custom domain is used, the Project Pages are served under a subpath of the user pages: username.github.io/projectname
  • A custom domain on User and Organization Pages applies the same domain redirect to all Project Pages hosted under that account. Project Pages that use a custom domain are also available at username.github.io/projectname.
  • Custom 404s will only work if a custom domain is used. Otherwise, the User Page 404 is used.

Tip: Enterprise Project Pages will be served at a subdirectory (e.g. http(s)://[hostname]/pages/[user or organization name]/projectname) instead of a subdomain (e.g. http(s)://[user or organization name].github.io/projectname)