{
	description = "https://tangled.sh/@ocbwoy3.dev/nix";

	inputs = {
		# Core
		nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
		nixos-hardware.url = "github:NixOS/nixos-hardware/master";
		home-manager.url = "github:nix-community/home-manager";

		# Desktop + Theming
		catppuccin.url = "github:catppuccin/nix";
		hyprland = {
			url = "github:hyprwm/Hyprland";
			inputs.nixpkgs.follows = "nixpkgs";
		};
		hyprlock.url = "github:hyprwm/hyprlock";
		hyprsysteminfo.url = "github:hyprwm/hyprsysteminfo";
		ghostty.url = "github:ghostty-org/ghostty";
		zen-browser.url = "github:0xc000022070/zen-browser-flake";

		# Programs
		tuxstrap.url = "git+https://tangled.sh/@ocbwoy3.dev/tuxstrap";
		
		# Package tooling
		chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
		nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
		nvf.url = "github:notashelf/nvf";

		# Extras
		tangled.url = "git+https://tangled.sh/@tangled.sh/core";
		vscode-server.url = "github:nix-community/nixos-vscode-server";
	};

	# Required by NixOS:
	# ./hardware-configuration.nix 

	# inputs.home-manager.nixosModules.default
	# catppuccin.nixosModules.catppuccin
	# nix-flatpak.nixosModules.nix-flatpak

	outputs = { self, nixpkgs, ... }@inputs: {
		nixosConfigurations.default = nixpkgs.lib.nixosSystem {
			specialArgs = {
				inherit inputs;
			};
			modules = [
				# inputs.nixos-hardware.nixosModules.common-gpu-nvidia
				inputs.home-manager.nixosModules.default
				inputs.catppuccin.nixosModules.catppuccin
				inputs.nix-flatpak.nixosModules.nix-flatpak
				# inputs.chaotic.nixosModules.default
				inputs.chaotic.nixosModules.nyx-cache
				inputs.chaotic.nixosModules.nyx-overlay
				inputs.chaotic.nixosModules.nyx-registry
				# ./hosts/default/hardware-configuration.nix

				# lil hack to not use --impure when rebuilding nixos >:3
				"/etc/nixos/hardware-configuration.nix"
				
				./hosts/default/configuration.nix
			];
		};
		nixosConfigurations.server = nixpkgs.lib.nixosSystem {
			specialArgs = {
				inherit inputs;
			};
			modules = [
				inputs.catppuccin.nixosModules.catppuccin
				inputs.tangled.nixosModules.knot
				inputs.vscode-server.nixosModules.default

				inputs.chaotic.nixosModules.nyx-cache
				inputs.chaotic.nixosModules.nyx-overlay
				inputs.chaotic.nixosModules.nyx-registry

				# lil hack to not use --impure when rebuilding nixos >:3
				"/etc/nixos/hardware-configuration.nix"
				
				./hosts/server/configuration.nix
			];
		};
		nixosConfigurations.fix_nixpkgs = nixpkgs.lib.nixosSystem {
			specialArgs = {
				inherit inputs;
			};
			modules = [
				./modules/nixos/nixpkgs.nix
				/etc/nixos/configuration.nix
			];
		};
	};
}
