2026-04-22 — Daedalus Session Log
Blog v1.0 Deployed to Production
- Live URL: https://notes.hoffdesk.com/
- Admin URL: https://notes.hoffdesk.com/admin/blog/
- New post: https://notes.hoffdesk.com/admin/blog/posts/new
- Auth token:
hoffdesk-admin-2025 (in BLOG_ADMIN_TOKEN env var)
What Was Done
Medium-Style Blog Redesign
- New
blog.css — Medium-inspired design: clean header, collapsible category bar, hero card, wider cards with images
blog_index.html.j2 — Hero + grid layout, collapsible category pills
blog_article.html.j2 — Still old styling (deferred to v1+)
- Template path issue: hoffdesk-api serves from
shared/project-docs/blog/templates/, NOT from /home/hoffdesk/blog/templates/
- Files deployed to both locations to be safe
Cloudflare Tunnel
- Updated
~/.cloudflared/config.yml to add blog.hoffdesk.com → localhost:8000
- Matt needs to add DNS CNAME record in Cloudflare dashboard
Magic Wand Content Generation — LIVE ✅
- Backend: 5-stage pipeline (strategy → structure → draft → seo → compliance) via Gaming PC
- Frontend: HTMX + fetch polling, 5-stage progress UI
- Base URL:
https://notes.hoffdesk.com/admin/content
- Auth:
?token=hoffdesk-admin-2025 on all content generation endpoints
- Contract:
shared/project-docs/blog/magic-wand-api-contract.md
Admin Auth — IN PROGRESS
- Admin routes require
X-Admin-Token: hoffdesk-admin-2025 header
- HTMX global interceptor added to
admin_base.html.j2 auto-attaches token
- Login page exists (
admin_login.html.j2) but NO ROUTE serves it yet
- Current behavior: redirects to 401 instead of login page
- TODO: Add
/admin/blog/login route to admin_router.py (Socrates' turf)
Open Items
Blocking
- [ ] Admin login page needs a route — Socrates to add to
admin_router.py
- [ ]
blog.hoffdesk.com DNS CNAME record — Matt to add in Cloudflare
Deferred to v1+
- [ ] Rebuild
blog_article.html.j2 to Medium-style
- [ ] Reading progress bar on articles
- [ ] Prev/next navigation on articles
- [ ] Social share buttons
- [ ] Fuse.js search (or database-backed)
- [ ] Author byline & avatar
- [ ] Static generation builder script
- [ ] Draft/scheduled publishing
- See:
blog/v1-plus-backlog.md
Docs Created
blog/PRODUCTION-DEPLOY.md — deployment checklist
blog/v1-plus-backlog.md — deferred features
blog/magic-wand-api-contract.md (Socrates wrote this)
shared/project-docs/blog/FRONTEND-DEPLOY.md — handoff to Socrates
Architecture Notes
File Paths (Production)
- Templates:
/home/hoffmann_admin/.openclaw/shared/project-docs/blog/templates/
- Admin templates:
/home/hoffmann_admin/.openclaw/shared/project-docs/blog/templates/admin/
- Static:
/home/hoffmann_admin/.openclaw/workspace-socrates/hoffdesk-api/static/
- Blog data:
/home/hoffmann_admin/.openclaw/workspace-socrates/hoffdesk-api/blog/data/
hoffdesk-api Routes
- Public blog:
/api/blog/ (renders HTML via Jinja2)
- Admin API:
/api/blog/admin/ (JSON)
- Content gen:
/admin/content/ (JSON)
- Note:
/admin/blog/ routes serve HTML admin panel
The Board
- Socrates 🧠 — backend, pipelines, infra
- Daedalus 🎨 — frontend, UI/UX, design
- Matt — director, approvals