{
  description = "tlater.net web server contents";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05";
    nix-filter.url = "github:numtide/nix-filter";
    npmlock2nix = {
      url = "github:nix-community/npmlock2nix";
      flake = false;
    };
  };

  outputs = {
    self,
    nixpkgs,
    nix-filter,
    npmlock2nix,
  }: let
    # At the moment, we only deploy to x86_64-linux. Update when we
    # care about another platform.
    system = "x86_64-linux";
    overlays = [
      (final: prev: {
        npmlock2nix = import npmlock2nix {pkgs = prev;};
      })
    ];
    pkgs = import nixpkgs {inherit system overlays;};
    package = import ./nix/package.nix {
      inherit self pkgs;
      nix-filter = nix-filter.lib;
    };
  in {
    apps.${system} = import ./nix/utilities {inherit pkgs;};

    packages.${system} = rec {
      tlaternet-templates = package.package;
      default = tlaternet-templates;
    };

    devShells.${system} = {
      default = package.shell;
    };

    checks.${system} = import ./nix/checks.nix {
      inherit self pkgs;
      nix-filter = nix-filter.lib;
    };
  };
}