{
  description = "A very basic flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    flutils.url = "github:numtide/flake-utils";
  };

  outputs = {
    nixpkgs,
    flutils,
    ...
  }:
    flutils.lib.eachDefaultSystem (system: let
      pkgs = nixpkgs.legacyPackages.${system};

      gems = pkgs.bundlerEnv {
        name = "blog";
        gemdir = ./src;
      };

      patch-feed-date = pkgs.stdenv.mkDerivation {
        name = "path-feed-date";
        propagatedBuildInputs = [pkgs.python3];
        dontUnpack = true;
        installPhase = "install -Dm755 ${./patch-feed-date.py} $out/bin/patch-feed-date";
      };

      buildInputs = [
        gems
        gems.wrappedRuby
        patch-feed-date
      ];
    in {
      packages = rec {
        default = static-website;
        static-website = pkgs.stdenv.mkDerivation {
          name = "blog";
          src = ./src;
          sourceRoot = "src";
          inherit buildInputs;

          buildPhase = ''
            bundle exec jekyll build --future
          '';

          installPhase = ''
            mkdir -p $out
            cp -r _site/* $out/
            patch-feed-date --file _site/feed.xml > $out/feed.xml
          '';
        };
      };

      devShells.default = pkgs.mkShell {
        inherit buildInputs;
      };
    });
}