309cd7a renamed the blog area to #news but left the Tips header's
"All posts" link pointing at #blog, which no longer exists on the page,
and left the section initial reading B from "Blog". Both now match the
three-area contract: no anchor to a section that is gone, and the News
area is labelled N.
Oliver asked for our self-hosted Plausible snippet on oc-guy.com. The
template edit matters most: the daily sync only writes pages for new
posts, so a page-level-only change would be lost on the next generated
post. Both existing blog pages were updated directly to match the
template exactly, so the next sync produces no head diff.
The snippet is async and renders nothing: no visual change, no touch to
CSS, layout or copy.
- css/site.css: oat/espresso palette, Fraunces display, rounded surfaces, warm photo grade
- index.html: Module of the Month replaced by the blog; tips, blog and community sections render from data/posts.json
- js/feed.js: client-side feed + search over one manifest (blog/index.json technique)
- scripts/sync_posts.py: daily webhook fetch, image download, dedupe by id and content hash, non-image attachments skipped
- data/posts.json: manifest, one published post (Odoo 20 Community review)
- new section: Top OCA modules, module / area / 19.0 / 20.0 status,
rows rendered from the n8n webhook at
n8n.odoo4projects.com/webhook/oc-guy/modules, with the last fetched
snapshot in the markup as a no-JS fallback
- photography swapped from archival maps to Pixabay photos (archive
aisle, cardboard boxes, old books, workshop tools, warehouse)
- featured module is now a full-bleed dark spread with the warehouse shot
- contact address is oliver@oc-guy.com throughout
- credits point at Pixabay and its Content License