{ description = "C-base Website Clone - Pure Nix Web Development"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; # Import our core modules html = import ./src/core/html.nix { inherit pkgs; }; css = import ./src/core/css.nix { inherit pkgs; }; components = import ./src/core/components.nix { inherit pkgs html css; }; content = import ./src/data/content.nix; siteData = import ./src/pages/index.nix { inherit components content; }; stylesData = import ./src/styles/main.nix; # Generate the complete website generateSite = pkgs.writeShellScriptBin "generate-site" '' echo "🚀 Generating C-base clone with Nix..." # Create output directory mkdir -p dist # Generate HTML directly from Nix evaluation cat > dist/index.html << 'EOF' ${siteData.html} EOF # Generate CSS directly from Nix evaluation cat > dist/styles.css << 'EOF' ${stylesData.css} EOF # Create session tracking directory mkdir -p ai/sessions # Log build session echo "{\"timestamp\": \"$(date -Iseconds)\", \"buildTime\": \"$(date +%s)\", \"status\": \"success\"}" > ai/sessions/build-session-$(date +%Y-%m-%d).json echo "✅ Site generated in ./dist/" echo "📁 Files created:" echo " - dist/index.html" echo " - dist/styles.css" ''; # Development server devServer = pkgs.writeShellScriptBin "dev-server" '' echo "🔧 Starting development server..." # Generate site first ${generateSite}/bin/generate-site # Start simple HTTP server cd dist echo "🌐 Server running at http://localhost:8000" echo "📱 Open your browser and navigate to the URL above" ${pkgs.python3}/bin/python -m http.server 8000 ''; in { packages = { default = generateSite; generate = generateSite; dev = devServer; site = pkgs.stdenv.mkDerivation { name = "c-base-site"; src = ./.; buildPhase = '' mkdir -p $out echo '${siteData.html}' > $out/index.html echo '${stylesData.css}' > $out/styles.css ''; installPhase = "true"; }; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ nix jq python3 nodejs ]; shellHook = '' export PATH="${generateSite}/bin:${devServer}/bin:$PATH" echo "🌟 C-base Nix Web Development Environment" echo "Commands:" echo " generate-site - Generate static site" echo " dev-server - Start development server" echo " nix run .#generate - Generate static site" echo " nix run .#dev - Start development server" echo "" echo "Session tracking enabled in ./ai/ directory" ''; }; }); }