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)