Izar Jekyll documentation

Deploying

Publish Izar for free on GitHub Pages, Cloudflare or Netlify, with your own domain.

bundle exec jekyll build turns your project into a folder of plain files, _site/, that any web host can serve. The easiest way to publish is to put your project on GitHub and connect it to a free host, which rebuilds the site every time you save a change.

Set url in _config.yml to your final address first.

Settings for every host

Setting Value
Build command bundle exec jekyll build
Output folder _site
Ruby version 3.3 (set RUBY_VERSION=3.3.4 if the host asks)

The Gemfile pins the same versions GitHub Pages uses, so builds match what you see on your computer.

GitHub Pages

  1. Put the project in a GitHub repository. GitHub Desktop makes this point-and-click.
  2. In the repository, open Settings → Pages. Under Build and deployment, choose Deploy from a branch, then main and / (root), and click Save.
  3. Wait a minute or two. The address appears at the top of the Pages settings.

GitHub Pages builds the site with its own Jekyll. Izar only uses plugins on GitHub’s list (jekyll-seo-tag, jekyll-sitemap and jekyll-feed) and plain CSS, so it needs no GitHub Actions.

Address. A personal site at your-username.github.io keeps baseurl: "". A project site at your-username.github.io/portfolio needs baseurl: "/portfolio", and url set to https://your-username.github.io.

Your own domain

  1. In your repository, open Settings → Pages → Custom domain, enter your domain (www.example.com or example.com) and save.
  2. At your domain provider, add the DNS record GitHub asks for:
    • For www.example.com, or any subdomain: a CNAME record pointing to your-username.github.io.
    • For example.com itself: A records pointing to GitHub’s addresses, listed in GitHub’s guide.
  3. When the check passes, tick Enforce HTTPS.
  4. Set url in _config.yml to the new address, and keep baseurl: "".

Cloudflare

Cloudflare is free, fast worldwide, and has no bandwidth limits.

  1. Put the project in a GitHub repository.
  2. In the Cloudflare dashboard, go to Workers & Pages → Create and import the repository.
  3. Cloudflare creates new projects as Workers. Izar includes a wrangler.jsonc file that tells it to serve the _site folder as a static site, so keep the suggested deploy command (npx wrangler deploy) and set the build command to bundle exec jekyll build.
  4. Click Deploy. When it finishes, add your domain under Settings → Domains & Routes.

What wrangler.jsonc does:

  • Serves the _site folder.
  • Sends unknown addresses to your 404.html with a real 404 status.
  • Makes /works and /works/ both work.

Change "name" in it to your project’s name if you like. If you choose a classic Cloudflare Pages project instead, use the settings in the table above. wrangler.jsonc is then ignored. _config.yml keeps wrangler.jsonc out of the built site.

Netlify

  1. Put the project in a GitHub repository.
  2. In Netlify, choose Add new site → Import an existing project and pick the repository.
  3. Use the build command and output folder from the table above. Netlify reads the Gemfile.
  4. Deploy, then add your domain under Domain management.

Any other web host

Build on your computer with bundle exec jekyll build and upload the contents of the _site folder.

After you publish

  • Check that the contact form is no longer on provider: demo, and send yourself a test message. See Contact form.
  • Go through the list in SEO.