Initial commit
diff --git a/loop/webui/Makefile b/loop/webui/Makefile
new file mode 100644
index 0000000..51b4bb7
--- /dev/null
+++ b/loop/webui/Makefile
@@ -0,0 +1,19 @@
+all: install check build-tailwind
+
+install:
+	npm ci
+
+# TypeScript type checking
+# Note: The actual esbuild bundling happens in esbuild.go
+check:
+	npx tsc --noEmit
+
+build-tailwind:
+	npx postcss ./src/input.css -o ./src/tailwind.css
+
+watch-tailwind:
+	npx postcss -i ./src/input.css -o ./src/tailwind.css --watch
+
+clean:
+	rm -rf node_modules
+	-rm -f ./src/tailwind.css