Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
An opinionated starting point and build system for collaboratively-edited HTML websites hosted on GitHub Pages.

Free multi-page education HTML template built with Bootstrap 4, featuring a full-width slider, sticky navigation, and an elements page.

A Gatsby v2 starter with TypeScript, MobX state management, and example stores for fast React app development.

A Next.js 13 starter web app with Directus headless CMS, Tailwind CSS, Radix UI, and examples for auth, data fetching, and more.

Next.js template for building programmatic video apps with Remotion Player and Lambda rendering built in.

A template with Next.js 13 app dir, Contentlayer, Tailwind CSS and dark mode.

Jekyll theme based on Zendesk Garden
GitHub Pages Template is a boilerplate and build system for producing collaboratively-edited, static HTML websites that are hosted on GitHub Pages, with version-pinned local development and automated testing built in.
GitHub Pages Template is an opinionated starting point for HTML websites, created and maintained by William Entriken (fulldecent), that wraps a Jekyll static site generator in a Node.js build pipeline. You give it content files (for example, source/index.html, .md files, and a README) plus configuration, and it produces a ready-to-publish HTML website on GitHub Pages, with GitHub Actions workflows handling production builds. It is distributed as a public GitHub repository and is designed for teams that edit the site collaboratively.
.ruby-version and the build uses the github-pages gem rather than plain Jekyll, so local output matches what GitHub Pages runs in production.yarn build generates the HTML site, and yarn dev serves it locally at http://127.0.0.1:4000.yarn test runs HTML-validate and Nice Checkers on every page to check structured data (JSON+LD), hyperlinks, and best practices; the docs warn that tests against bundle exec jekyll serve output can produce false positives.yarn lint checks code with Prettier and markdownlint, and yarn format fixes issues automatically; Prettier caches results in the cache/ folder for speed.yarn set version latest, yarn upgrade-interactive, and bundle update --conservative keep the template current, with the Ruby version synced from pages.github.com/versions..github/workflows/.source/, run yarn dev to preview changes, then run yarn build to produce the final static output.yarn test after building to verify JSON+LD structured data and hyperlinks before merging changes.First, open the repository in VS Code and use "Reopen in Container", or install Ruby from .ruby-version, Jekyll via bundle install, and Node via .nvmrc manually. Then run yarn build to generate the HTML site, yarn dev to serve it locally, and yarn test to validate the built pages.
Use VS Code with the Dev Containers extension and a Docker host such as OrbStack, then run the command "Reopen in Container". Without Docker, install Ruby from .ruby-version, run gem install bundler and bundle install, install Node with nvm, run yarn install, then yarn build. The site appears at http://127.0.0.1:4000.
The project uses the github-pages gem because GitHub Pages runs specific versions of Ruby, Jekyll, and plugins rather than whatever is in a Gemfile.lock. For the same reason, Gemfile.lock is listed in .gitignore, and .ruby-version is kept in sync with pages.github.com/versions.
yarn test check?It runs HTML-validate and the Nice Checkers plugin on each built page, checking structured data (JSON+LD), hyperlinks, and other best practices. You must run yarn build first, and the docs warn that testing the bundle exec jekyll serve output may give false positives.
Monthly maintenance commands are documented in the README: run yarn set version latest && yarn, run yarn upgrade-interactive, and run bundle update --conservative locally. To update the Ruby version, fetch pages.github.com/versions.json with jq and write the result to .ruby-version.
