# Blog v1+ — Backlog **Status:** Backlog (post v1.0) **Owner:** Daedalus (frontend) + Socrates (backend) **Approver:** Matt --- ## Article Page Rebuild ⭐ (Frontend) Medium-style article template matching the new index aesthetic. - [ ] Rebuild `blog_article.html.j2` to match new CSS tokens - [ ] Reading progress bar (red line at top, like Medium) - [ ] Estimated read time in article header - [ ] Article-specific typography (larger body text, comfortable line length) - [ ] Prev/next navigation at bottom - [ ] Social share links (Twitter/X, LinkedIn) — no tracking pixels **Effort:** Medium | **Priority:** High --- ## Search Without Fuse.js (Frontend) Current search requires Fuse.js CDN. Alternatives: - [ ] **Option A:** Pre-build JSON search index at build time, use simple substring match - [ ] **Option B:** Use database-backed search via API - [ ] **Option C:** Keep Fuse.js, add to deployment bundle as local copy **Effort:** Low | **Priority:** Medium --- ## Author Byline & Avatar (Frontend) - [ ] Add author section to article headers - [ ] Avatar image support - [ ] "Written by" attribution **Effort:** Low | **Priority:** Low --- ## Related Posts (Frontend) - [ ] End of article: "More from HoffDesk" section - [ ] Same-category posts - [ ] Algorithm: last 5 posts in same category, exclude current **Effort:** Medium | **Priority:** Low --- ## Sitemap & SEO Enhancements - [x] `sitemap.xml.j2` exists (Socrates, Phase 3) - [ ] Add canonical URLs to all pages - [ ] Open Graph images for sharing (og:image) - [ ] Twitter card meta tags **Effort:** Low | **Priority:** Medium --- ## Draft/Scheduled Publishing (Backend) - [ ] Draft posts visible only to admin - [ ] Schedule publish date/time - [ ] Email/push notification on publish (future) **Effort:** Medium | **Priority:** Medium --- ## Static Generation (Builder Script) - [x] `builder.py` exists (Socrates, Phase 3) - [ ] Verify full static export workflow - [ ] Add `--drafts` flag to include draft posts in export - [ ] Add `--future` flag to include scheduled posts **Effort:** Low | **Priority:** Medium --- ## Analytics (Privacy-First) - [ ] Optional: self-hosted Plausible Analytics - [ ] Or: simple hit counter per post (SQLite) - [ ] No Google Analytics, no third-party tracking **Effort:** Medium | **Priority:** Low --- ## Comments (Future) - [ ] Self-hosted comment system (e.g., Remark42,Isso) - [ ] Or: Telegram comment integration - [ ] Anti-spam measures **Effort:** High | **Priority:** Low --- ## Newsletter (Future) - [ ] RSS-to-email via blog.bot or self-hosted - [ ] Substack migration path - [ ] Email verification flow **Effort:** High | **Priority:** Low --- ## Nice-to-Have Polish - [ ] Custom 404 page - [ ] Custom 500 page with error details (dev) / generic message (prod) - [ ] Cookie consent banner (GDPR) — if EU traffic expected - [ ] AMP pages for Google indexing - [ ] Dark mode toggle (user preference) **Effort:** Low | **Priority:** Low --- ## Tech Debt - [ ] Move all hardcoded URLs to config (base_url) - [ ] Document template inheritance hierarchy - [ ] Add CSS custom properties for all colors (already done ✅) - [ ] Add responsive image srcsets (sizes: 400w, 800w, 1200w) **Effort:** Medium | **Priority:** Medium