commit 475e1c92da1ebf0d0836459a2dbabd5376fa852b
Author: tri <tri@thac.loan>
Date:   Sun Sep 28 13:27:59 2025 +0700

    more comments & readme

diff --git a/README.md b/README.md
index 691b847..704ad82 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ is Vietnamese for "showing off", or "boasting".
 
 ## What
 
-It's a static site generator for you git repos. Think [stagit][1] but with way fewer features.
+It's a static site generator for your git repos - think [stagit][1], but `git clone`-able. If you ever wanted to share your code without the security headaches of hosting a dynamic web service, you may like `khoe`.
 
 ## Build
 
@@ -28,7 +28,15 @@ khoe /srv/git/repos
 
 Said dir is now serveable as a static website. For a quick preview, try `python3 -m http.server -b localhost -d /srv/git/repos`. People can `git clone` repos from this site too.
 
-Please **make sure there's nothing sensitive in your `repos` dir** before exposing it to the unwashed public. Git hooks, config, etc. are the usual suspect.
+Please **make sure there's nothing sensitive in your `repos` dir** before exposing it to the unwashed public. Git hooks, config, etc. are the usual suspects.
+
+You can now either serve the dir as-is using caddy/nginx/etc., or rsync it to a remote server, or serve it on s3 if you like burning your (employer's) money, or even, get this, make it a git repo itself to host on GitHub Pages for free! I'm not saying you should, but you could. Static web hosting is cheap, often free even. The world's your oyster.
+
+## Quirks
+
+Nothing is cached. Everything page is regenerated every time. Computers are fast though so performance hasn't been a problem for me. If it is for you, let me know and we can optimize it.
+
+Outdated pages, if not overwritten, are left as-is. Since git itself is an append-only paradigm, deletion is rarely necessary. Security-wise, if you've accidentally pushed a secret on a public repo, you must consider it compromised forever and perform appropriate credential rotation and whatnot. Deleting the offending pages means nothing in this context. If it bothers you still, feel free to write a script to delete-before-generate, or generate-and-swap if you have lots of nines to maintain - you do you.
 
 ## License
 
diff --git a/src/assets/script.js b/src/assets/script.js
index 2406b38..c0e8ed2 100644
--- a/src/assets/script.js
+++ b/src/assets/script.js
@@ -39,6 +39,9 @@ function formatRelativeTime(isoStr) {
 }
 
 document.addEventListener("DOMContentLoaded", function () {
+  // Progressive enhancement: If javascript is enabled, certain <time> elements
+  // will be rewritten from ISO datetime strings to human-readable relative text
+  // (e.g. 2 days ago).
   document.querySelectorAll("time.relative").forEach((element) => {
     const timeStr = element.getAttribute("datetime");
     if (!timeStr) return;