--- /dev/null
+# Find all .html files recursively in the project, excluding any already gzipped files
+HTML_FILES := $(shell find . -type f -name "*.html")
+
+# Define the target .gz files based on the found .html files
+GZ_FILES := $(HTML_FILES:.html=.html.gz)
+
+# The default target that runs when you just type 'make'
+all: $(GZ_FILES)
+
+# Rule to create a .html.gz file from a .html file
+# -k keeps the original .html file
+# -f forces overwriting if a .gz already exists
+%.html.gz: %.html
+ gzip -k -f $<
+
+# Clean up all generated .gz files
+clean:
+ rm -f $(GZ_FILES)
+
+# Mark 'all' and 'clean' as phony targets so they don't conflict with files named 'all' or 'clean'
+.PHONY: all clean