diff --git a/scripts/rebuild_adam_daily_hub_index.py b/scripts/rebuild_adam_daily_hub_index.py
new file mode 100644
index 000000000..93c8f81c1
--- /dev/null
+++ b/scripts/rebuild_adam_daily_hub_index.py
@@ -0,0 +1,105 @@
+import os
+import re
+
+base_dir = "showcase/data/adam_daily"
+output_file = "showcase/adam_daily_hub_index.html"
+
+# Read the original file to keep the nice styling
+if os.path.exists("showcase/adam_daily_hub.html"):
+ with open("showcase/adam_daily_hub.html", "r") as f:
+ content = f.read()
+else:
+ print("Base file missing.")
+ exit(1)
+
+# Try to find all date directories
+dates = []
+for item in os.listdir(base_dir):
+ if os.path.isdir(os.path.join(base_dir, item)) and re.match(r"^\d{4}-\d{2}-\d{2}$", item):
+ dates.append(item)
+
+dates.sort(reverse=True) # newest first
+
+# Generate HTML blocks
+html_blocks = []
+for date in dates:
+ date_dir = os.path.join(base_dir, date)
+
+ # We only care about HTML and MD files
+ files = []
+ for f in os.listdir(date_dir):
+ if f.endswith(".html") or f.endswith(".md"):
+ files.append(f)
+
+ files.sort(reverse=True) # sort files alphabetically
+
+ if not files:
+ continue
+
+ block = f"""
+
+
+
+
{date}
+
+
+"""
+
+ for f in files:
+ ext = f.split(".")[-1].upper()
+ color = "term-cyan" if ext == "HTML" else "term-amber"
+
+ block += f"""
+
+
+"""
+ html_blocks.append(block)
+
+# Try to replace the content inside the timeline container
+import re
+# Find the start of the timeline container
+match = re.search(r'(
]*class="[^"]*timeline[^"]*"[^>]*>)', content)
+
+if not match:
+ # Alternative: replace the masonry container
+ match = re.search(r'(
]*class="[^"]*masonry-grid[^"]*"[^>]*>)', content)
+
+if match:
+ print("Found container, replacing content...")
+ start_idx = match.end()
+
+ # Replace masonry with a simple block layout container for timeline
+ prefix = content[:start_idx].replace('class="masonry-grid w-full"', 'class="relative pl-6 border-l border-white/10"')
+
+ # Find the end of the main tag
+ end_match = re.search(r'', content)
+ if end_match:
+ suffix = "\n