From f9e45f32f8ca055436dbc3876a62fb56907ee2f4 Mon Sep 17 00:00:00 2001
From: Wesley Ray
Date: Wed, 15 Jul 2026 15:21:17 -0400
Subject: [PATCH] Move odometer into the shared footer
Widget + script + styles live in Base.astro now, so every page ticks;
index.astro is back to just rendering the vault homepage.
Co-Authored-By: Claude Opus 4.8
---
README.md | 12 +++---
src/layouts/Base.astro | 80 +++++++++++++++++++++++++++++++++++
src/pages/index.astro | 96 ------------------------------------------
3 files changed, 87 insertions(+), 101 deletions(-)
diff --git a/README.md b/README.md
index fd4233e..b60c639 100644
--- a/README.md
+++ b/README.md
@@ -37,9 +37,11 @@ Defaults to the kotov vault copy. On cyrion use `deploy/build.sh`
`docker compose -f deploy/docker-compose.yml up -d` serves `dist/` on
port 18100 (`garden-next.c0smere.net` while staging).
-## Homepage extras
+## Layout extras
-`src/pages/index.astro` renders the vault's `index.md` and appends the
-bandwidth odometer, fed by `https://api.c0smere.net/bandwidth/odometer`.
-The widget animates at the lifetime average rate from a fetched baseline —
-it never reflects live throughput, and hides itself if the API is down.
+Every page carries a left sidebar tree of the whole garden (folders
+collapsible, current page highlighted; flows after the footer on narrow
+screens) and the bandwidth odometer in the footer, fed by
+`https://api.c0smere.net/bandwidth/odometer`. The widget animates at the
+lifetime average rate from a fetched baseline — it never reflects live
+throughput, and hides itself if the API is down.
diff --git a/src/layouts/Base.astro b/src/layouts/Base.astro
index b5f6dbc..78b0495 100644
--- a/src/layouts/Base.astro
+++ b/src/layouts/Base.astro
@@ -40,6 +40,14 @@ const navTree = buildNavTree(await getCollection('garden'));
git ·
resume
+
+
+
+ bytes in + out of the homelab since ·
+ ticking at the lifetime average ·
+ api
+
+
+
+
-
-