Blog Phase 4 — Dev Preview Ready
Date: 2026-04-21
Status: ✅ Dev server running, API spec documented for Socrates
What's Live
Dev server running on port 8080 with mock data:
| URL | What |
|---|---|
| http://localhost:8080/ | Public blog index |
| http://localhost:8080/article/the-night-i-broke-dns/ | Article page |
| http://localhost:8080/admin/ | Admin dashboard |
| http://localhost:8080/admin/posts | Post list (filterable) |
| http://localhost:8080/admin/posts/new | New post editor |
| http://localhost:8080/admin/posts/the-night-i-broke-dns/edit | Existing post editor |
| http://localhost:8080/admin/images | Image browser |
Files Created/Updated
For Socrates (API Contract)
📄 shared/api-specs/blog-admin-api.md
- 10 admin API endpoints specified
- Request/response shapes documented
- HTMX conventions defined
- Mock data examples included
Dev Server
📄 blog/dev_server.py
- FastAPI server with Jinja2 rendering
- Mock data for all 3 posts (1 draft, 2 published)
- All admin API endpoints mocked
- Auto-save endpoints return toast confirmations
Admin UI Features
Dashboard:
- Stats grid (total, published, drafts, images)
- Quick actions (New Post, Rebuild, Deploy)
- Recent activity feed
Post List:
- Filter by status (published/draft)
- Filter by category
- Search by title
- HTMX-powered row updates
Editor:
- Split-pane: metadata left, editor+preview right
- Auto-save on 3s debounce
- Client-side markdown preview (markdown-it)
- Tab key inserts 2 spaces
- Mobile: preview hidden behind toggle
Image Manager:
- Grid view of available images
- Copy-path buttons for easy insertion
Next Steps
- Socrates implements the 10 API endpoints from the spec
- Integration testing with real backend
- Matt approval on UX flow
- Deploy to production via CF Pages
Running the Preview
# On titanium-butler
python3 /home/hoffmann_admin/.openclaw/workspace-daedalus/blog/dev_server.py
# Or background it
nohup python3 dev_server.py > blog-dev.log 2>&1 &
Access via browser or curl. Server auto-reloads on file changes (if you edit templates).