Public log

What shipped, when.

Every meaningful change to the live site, grouped by month and surface. Quiet refactors and dependency bumps live in the git history; this page lists what an operator or returning reader might actually notice.

June 2026 · Trust

2026-06-27

The no-language-model data promise, stated where it belongs

/ai/, /never/, and /security/ now carry Muntin Ledger’s actual data-path commitment in plain English (EN + ES): no language model ever reads the invoices you hand the product. Extraction runs on Muntin’s own infrastructure, your invoice text is never sent to an outside AI provider, the model that reads an invoice is fixed so your corrections never train it, and a build gate blocks any release that would so much as add a language-model library. The commitment is the code — the enforcing scripts are published and readable at ledger.muntin.digital/promises. This retires the older studio-era “engagement letter” framing for the product-only truth; no competitor is named — the point is what we can prove about ourselves.

May 2026 · Refresh push

2026-05-04

Operator Sheets refinement — intelligence layer, brand polish, ecosystem reciprocals

Five-specialist consulting plan executed end-to-end. Designed-artifact baseline: pack-coded 2px top hairline on every sheet card, paper rule-lines under fieldset legends, pack glyph in the hero eyebrow, print masthead refinement, voice canon locked at docs/voice-canon-sheets.md. Smart paperwork: centralized benchmarks (6 metrics, 3 anomalies, EN+ES) in data/benchmarks.json and the new Bench.evaluate() API; versioned save payloads (v:1) with v-absent migration; SVG-only viz helper (sparkline + heatmap, ~120 LOC each, no library); /api/workbench/sheet-history endpoint that draws prior-saves trend above the save panel for authed operators; B3 local autosave drafts with the “Picked up your draft from Saturday 8:42pm” line linking to /security/; B4 generous parsing (“$45.50/lb”, “1,200”, “12hundred”) with mirror echo. Recovery + comfort: two-tap reset confirm, per-fieldset “Clear this section” link, undo snackbar, progress strip (“3 of 5 sections done. Next: Sign-off.”), tablet ergonomics at coarse-pointer + ≤900px, ⌘S/⌘↵ keyboard shortcuts. Ecosystem reciprocals: “Pair with paperwork” rail on 30 tool detail pages, Pagefind kind:sheet chip, /library/ Do door reorganized to peer Tools / Sheets / Checklists, /system/#sheets colophon entry explaining the architecture, /receipts/ verification of the “no numbers leave the page” claim via check-sheet-no-fetch.mjs, per-pack OG card focus variation. Pack-level editorial preambles on the hub (“Reach for / Skip” framing, EN+ES, 60-90 words). 102 of 102 cohesion gates pass.

2026-05-04

Operator Sheets — full catalog (31 sheets across 5 packs)

The full /sheets/ catalog ships: 31 printable, fillable, CSV-exportable operator sheets across five packs, EN + ES parity. Pack 1 (Operations & Margin): recipe cost cards, weekly prime cost worksheet, daily sales recap, line check, waste log, invoice receiving, monthly P&L, inventory count, cash handling. Pack 2 (Local SEO & Discovery): GBP monthly audit, NAP consistency tracker, holiday hours planner, local keyword × page map, photo refresh tracker. Pack 3 (Conversions & Reservations): third-party channel P&L, no-show log, website conversion checklist, daypart traffic map, email-list growth log. Pack 4 (Brand & Design): menu redesign brief, brand asset inventory, signage spec sheet, photo shot list, social content calendar, vendor contact sheet. Pack 5 (Trust & Reviews): review response log, complaint root-cause tracker, plus four jurisdiction-flagged sheets (health inspection prep, staff onboarding operational-only, incident report, allergen matrix) carrying a regional disclaimer banner. Every sheet ships with a per-sheet OG card (62 PNGs total), pack-release RSS announcements, “Pairs with” cross-links to tools / glossary / blog, and inbound “Use this sheet” sidecars on 32 glossary term pages and 10 topic-pillar pages. Workshop saves register as kind=“sheet” with slug-in-payload.

2026-05-02

Launch plan, phase 9 — Menu Converter, ES Holiday Hours, terms rewrite

Second of the two new launch+30 tools shipped: /tools/menu-converter/. Paste your menu text, walk away with a live preview, semantic HTML, and a JSON-LD Menu schema block. Heuristic parser picks up sections (ALL CAPS or colon-terminated), items (price-trailing line), and descriptions (line directly under an item). Tool count 14 → 15. The Holiday Hours generator from phase 8 now has a fluent ES mirror at /es/tools/holiday-hours/ — the eight US holiday names translated, the date format localized (“25 de diciembre de 2026”), the result tabs labeled in Spanish. EN hreflang updated to point at it. /terms.html rewritten to ~1,300 words: voice-contract first-person, Maryland courts (no arbitration, no class-action waiver), CC BY-NC 4.0 explicitly licensing library content while exempting tools, brand, and codebase. Twelve numbered sections, each with a one-paragraph plain-English explanation.

2026-05-02

Launch plan, phase 8 — Holiday Hours Generator, privacy + cookies rewrites

First of the two new tools the plan flagged for launch+30: /tools/holiday-hours/. Pre-loaded with the eight US restaurant holidays that move covers (floating ones computed from the year input). Three outputs per run: plain text for the website, JSON-LD specialOpeningHoursSpecification for schema, GBP-formatted block for paste into Business Profile Manager. /privacy.html rewritten to ~700 words, first-person Don, four sections (what I collect / what I never do / your rights / vendors). /cookies.html rewritten with the three actual functional cookies in a typed table (md_locale, lang_hint_dismissed, md_session) plus a “why no banner” paragraph naming the position. Maryland PIPA breach-notification window named explicitly.

2026-05-02

Launch plan, phase 7 — 5-item nav rewrite, AI crawler robots.txt

The deferred IA bet from Part II ships. Primary nav goes from 8 items + mega-menu to five: Library · Tools · Work · Studio · Sign in. Library now points at the canonical /library/ hub; Tools is promoted from inside the old mega-menu; Studio replaces Services + Restaurants + About (those pages remain reachable). The mega-menu is retired, controller script gone too. Mobile menu mirrors the desktop 5-item structure. /robots.txt extended with explicit per-agent stanzas: allowed — GPTBot, ClaudeBot, anthropic-ai, Claude-Web, PerplexityBot, Google-Extended, Bytespider, Applebot-Extended; disallowed (training-only, no retrieval-time citation) — CCBot, Omgilibot, ImagesiftBot. /llms.txt and /es/llms.txt now cross-link the full-body corpus (/llms-full.txt, /es/llms-full.txt, /feed-llm.json) at the top so AI crawlers find the citation surface immediately.

2026-05-02

Launch plan, phase 6 — entity graph, sitemap, CTA canon CI guard

Homepage LocalBusiness JSON-LD now ships telephone on the entity itself plus a structured contactPoint array (support + sales). sameAs expanded from 1 entry to 10 (LinkedIn, Facebook, GitHub, Bluesky, Threads, Yelp, GBP, Bing Places, Apple Maps) — the threshold Google’s Knowledge Panel checks before rendering. Sitemap regenerated to include all 11 pages added in phases 1–5 (the studio hub, three productized offers, five DMV cities, /never/, /ai/, /studio/compare/, /library/, three new research notes). New CI script scripts/check-cta-canon.mjs guards the locked CTA verb set from /methods/#voice-contract — first run found 21 drift hits across 18 files; all swept. Three more high-traffic articles cross-link the productized offers in the further-reading aside.

2026-05-02

Launch plan, phases 1–5 — what shipped

A consultancy-grade refresh executed against the 12-week launch plan. Phase 1: three new trust pages (/never/, /ai/, /studio/compare/), the voice contract appended to /methods/, three signature stances on the homepage, footer trust cluster (4 → 5 columns), 247 escaped count sentinels restored. Phase 2: three productized offers ($499 audit, $1,500 menu drop-in, $99/mo Care Plan Light), five DMV city subpages, ES mirrors of all phase-1 pages, mega-menu a11y rebuild (button + ARIA + keyboard), Cal.com onramp on /window/. Phase 3: productized offers wired into /services/, AI-search corpus (/llms-full.txt, /feed-llm.json, EN + ES), 404 redesign with search box, six-message operator drip in /docs/email-drip/, project-manager hire scope, the DoorDash math op-ed. Phase 4: /studio/ canonical hub (EN + ES), mobile sticky bottom CTA bar, sync-includes idempotency fix (collapsed 4 → 1 trailing scripts across 429 pages), lighthouserc.js with the 7-URL gate set, Conversation + App shells named in design-system.md, --gradient-hero retired, DMV GBP audit research note. Phase 5: /library/ three-doors hub (EN + ES), /studio/contact/ + /library/* alias redirects, WCAG 2.2 AA standardization, the 1% margin audit research note, productized offers cross-linked from two high-traffic articles.

2026-05-02

End-of-article author cards + LocalBusiness contactPoint

Every blog article (EN + ES) now closes with an "About the author" card — lettermark D, name, two-sentence bio, credentials line, links to /about/ and the Window. The homepage LocalBusiness JSON-LD got a contactPoint with email, business hours, supported languages, and area served — so Google's knowledge panel has structured contact data even without a published phone number.

2026-05-02

Patchwork / Agency / Muntin comparison reinstated

Three-card positioning block back on the homepage in a leaner form. Sits between the trust strip and the library section; the library still leads, this just helps a stressed operator see where the studio fits between a Wix template and a full agency.

2026-05-02

Cross-locale ESL bridge on every translated article

Inline contextual link near the top of every translated article body: EN articles get "Leer este artículo en español", ES articles get "Read this article in English." A first-generation operator who lands on an English page from Google can switch to Spanish in one tap before committing to read.

2026-05-01

Glossary library: 4 missing entries authored, 10 dead links cured

New entries: breadcrumb, hreflang, owned channel, third-party marketplace. The two operations terms close the central tension in the DoorDash article. 10 articles had inline links pointing at non-existent glossary slugs — rewired to existing parent terms or unwrapped to plain text where no parent existed.

2026-05-01

/receipts/ + Care Plan as a standalone offering

New surface at /receipts/ — counts at-a-glance, the seven north-star KPIs the studio tracks, and an explicit list of what we don't track (no ad cookies, no session replay, no cross-site IDs, no fingerprinting). On /services/, Care Plans came out of a collapse and now invite operators with an existing site to take Standard Care standalone.

2026-05-01

Homepage hero rewrite, plain-English ledes on legal pages

The homepage H1 went from "Learn the web that sells" to "Plain-English answers for restaurant owners. And a studio that builds the site, when you want one." Count chips below the subhead, trust strip below the flagship-tools section, "Email Don" CTA replacing "Write to Don" in nav and footer. Privacy, Cookies, Terms, and Accessibility each open with a "The short version" lede in operator language.

2026-05-01

Phase 0: truth-telling pass

The largest single performance fix the site has shipped: removed the high-priority audio MP3 preload that was stalling LCP by 15–30 seconds on mid-tier Android over 4G. Calendly + Formspree references removed from privacy + cookies (we don't use either). /security/integrity.txt now exists with real SHA-256s of the public bundle (was a 404 link). /.well-known/security.txt shipped per RFC 9116. Case studies (Tacombi, Irish Inn, Off Day) now carry an explicit "Engagement" chip distinguishing in-house W-2 work from commissioned studio work from strategy studies. (The /work/ section was retired in Phase 8, May 2026 — links removed here.)

2026-05-01

Accessibility sweep: contrast, focus, ARIA, sr-only

Footer alpha values raised from 0.6 to 0.78–0.85 to clear AA contrast. .tool-card.live .status moved off a 3.2:1 color pair onto --status-good tokens. Window composer textarea got a real <label>. The library mega-menu's broken role="menu" ARIA pattern (declared keyboard expectations nothing implemented) was dropped in favor of plain semantic <nav>. 134 pages got the (opens in new tab) sr-only span on Instagram links. Touch-device hover hygiene block neutralizes lift-and-stick effects on tap.

Legend

This page is hand-curated. The full git history (every commit, including the small refactors and dependency bumps) is publicly browsable on the repository. If you saw something change and don't see it here, that’s a bug — tell Don and it'll get added.