{
  description = "Nixos config flake";

  inputs = {
    stylix.url = "github:danth/stylix/release-25.11";
    nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
    home-manager.url = "github:nix-community/home-manager/release-25.11";
    nixos-hardware.url = "github:nixos/nixos-hardware/master";
  };

  outputs = {
    self,
    nixpkgs,
    nixos-hardware,
    ...
  } @ inputs: let
    system = "x86_64-linux";
    pkg = nixpkgs.legacyPackages.${system};
  in {
    formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
    nixosConfigurations = {
      laptop = nixpkgs.lib.nixosSystem {
        specialArgs = {inherit inputs;};
        modules = [
          ./hosts/laptop/configuration.nix
          inputs.home-manager.nixosModules.default
          inputs.stylix.nixosModules.stylix
          nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga
          (import ./overlays/ollama.nix)
        ];
      };

      desktop = nixpkgs.lib.nixosSystem {
        specialArgs = {inherit inputs;};
        modules = [
          ./hosts/desktop/configuration.nix
          inputs.home-manager.nixosModules.default
          inputs.stylix.nixosModules.stylix
        ];
      };

      server = nixpkgs.lib.nixosSystem {
        specialArgs = {inherit inputs;};
        modules = [
          ./hosts/server/configuration.nix
          inputs.home-manager.nixosModules.default
          nixos-hardware.nixosModules.system76
          (import ./overlays/ollama.nix)
        ];
      };

      tablet = nixpkgs.lib.nixosSystem {
        specialArgs = {inherit inputs;};
        modules = [
          ./hosts/tablet/configuration.nix
          inputs.home-manager.nixosModules.default
          nixos-hardware.nixosModules.microsoft-surface-pro-intel
        ];
      };
    };
  };
}
