{
  description = "Evie's machine configurations";

  nixConfig = {
    extra-substituters = [ "https://nix.xenia.me.uk" ];
    extra-trusted-public-keys = [ "nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI=" ];
  };

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
    treefmt-nix.url = "github:numtide/treefmt-nix";
    home-manager = {
      url = "github:nix-community/home-manager/release-24.11";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    stylix = {
      url = "github:danth/stylix/release-24.11";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        home-manager.follows = "home-manager";
      };
    };
  };

  outputs =
    inputs@{
      self,
      nixpkgs,
      treefmt-nix,
      ...
    }:
    let
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      treefmt = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
    in
    {
      packages.x86_64-linux =
        let
          fonts = pkgs.callPackage ./system/fonts.nix { };
        in
        {
          inherit (fonts)
            iosevka-custom
            iosevka-custom-aile
            iosevka-custom-etoile
            iosevka-custom-nerdfont
            ;
        };
      formatter.x86_64-linux = treefmt.config.build.wrapper;
      checks.x86_64-linux.formatting = treefmt.config.build.check self;
      nixosConfigurations = {
        ## Server
        Legion = nixpkgs.lib.nixosSystem {
          specialArgs = {
            inherit inputs;
            username = "pixelifytica";
            hostName = "Legion";
          };
          modules = [ ./system/default.nix ];
        };
        ## Personal
        Vanguard = nixpkgs.lib.nixosSystem {
          specialArgs = {
            inherit inputs;
            username = "pixelifytica";
            hostName = "Vanguard";
          };
          modules = [ ./system/default.nix ];
        };
        Northstar = nixpkgs.lib.nixosSystem {
          specialArgs = {
            inherit inputs;
            username = "pixelifytica";
            hostName = "Northstar";
          };
          modules = [ ./system/default.nix ];
        };
        ## Work
        Monarch = nixpkgs.lib.nixosSystem {
          specialArgs = {
            inherit inputs;
            username = "elitherl";
            hostName = "Monarch";
          };
          modules = [ ./system/default.nix ];
        };
      };
    };
}