docs(wiki): Analytics module page and Home entry
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs: AI Call Answering page, Twilio and authoring notes for the inbound call handler
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs: Pay via WorldFirst page, index and env var rows
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs: add Social Hub page
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
perf: CDN stale-while-revalidate, inline theme/consent scripts, split module router by page, cache font-face sheet, size Puck images; add new module + pin bumps
- lib/cache/page-cache.ts + module-api-cache.ts: cdnCacheControl()/cdnCacheControlForWindow() return
`public, max-age=<w>, stale-while-revalidate=<w>` instead of `public, s-maxage=<w>` (s-maxage implies
proxy-revalidate, blocking every visitor once a window closes).
- app/layout.tsx: theme-init/consent-init are plain inline <script> tags instead of next/script
beforeInteractive, which only queued them until Next's main chunk loaded.
- scripts/generate-module-router.mjs now writes router.ts, router.public.ts, lib/modules/public-head.ts
and lib/modules/router.public-slug.ts so a page only carries the client JS of modules it actually
uses (layout and [slug]/page.tsx no longer pull in every module's public pages). Guards:
lib/modules/router-split.test.ts, lib/modules/public-graph-weight.test.ts.
- New lib/design/font-face-css.ts: cached @font-face sheet, avoids a render-blocking Google Fonts fetch
per render; used by app/(public)/layout.tsx and app/api/fonts/css/route.ts.
- New lib/puck/imgDimensions.ts + mediaDimensions.ts: explicit width/height on Puck images from the
Media row, no layout shift.
- New module modular-configurator-for-shop v0.1.0 registered in modules.json + README.
- modules.json pins bumped for shop, shop-variations, product-3d-views-for-shop, filters-for-shop,
product-discovery-tool, space-planner-for-shop, quote-for-shop, gazette and unified-inbox to their
just-released versions.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Google AI Studio: new page, and the gallery-add seam for module authors
Adds the Google AI Studio page (setting the key up, making pictures for a
product, what happens to the ones you keep and the ones you do not), links it
from Home, and documents shop's gallery-add event in the module authoring
guide.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Product Discovery: the guided buying flow
New page for the product-discovery-tool module - the three steps, the tree
builder and what a choice can select, the curation and coverage screens, the
privacy story behind the counters, and the slug-referenced import/export.
Indexed on Home and Modules, and cross-linked from Shop Filters, which is
where somebody looking for this will most likely start.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Mark Gemini Watermark Remover as retired
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Shop: offering a payment method only on orders of a certain size
Purchase Orders: supplier bills and the three-way match
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs: Purchase Orders - suppliers, raising an order, approvals and the order's life
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Abandoned Carts: new module page
What the list shows, how consent gates the whole thing, every setting, the
one cookie it sets, how capture works without touching the shop module, and
the four things to check when no reminders are going out.
Google Tag module, the conversion seam, and cookie categories that explain themselves
New Google-Tag page: setup, the two IDs Google Ads needs, what counts as an
order, and the consent behaviour worth reading twice - a category the banner
does not carry is not one a visitor can grant, so that half runs ungated and
the settings page says so.
Architecture overview gains a Conversion seam section (announce, listen, and
why dedup lives in core rather than in each listener). Authoring a module and
the Configuration reference document the long form of cookieCategories. Shop's
order-confirmation section notes that a completed order is now reported, and
which payment states count.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
UK Bookkeeping: accounts, year end and corporation tax
Covers the six report tabs, the equipment register and how depreciation and
capital allowances come off one entry, closing a financial year, and the
corporation tax computation - including the plain statement that it cannot file
a company tax return, because HMRC has no interface for a small company to do
that, and the last step is copying the boxes across.
Add UK Bookkeeping page and link it from the index
Google Shopping module: new page, linked from Home and Modules
Product Add-ons: new module page + Home table entry
Take Google Reviews out of the module table on Home
Missed off the previous commit - the page was deleted but the link to it
was left behind.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs: Stock Imports - supplier stock files read on a schedule you set
Space Planner: new module page, plus the two render settings and the index entries
Covers what customers see, how sizes are worked out (and why some say
approx.), where the buttons go, the settings, the spacing-guidance
wording and what is deliberately not in the first version.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Shop Filters: new module page, linked from Home and Modules
Address Lookup module: new page, Home listing, Shop checkout section, authoring docs for shop.checkout-address-lookup, IDEAL_POSTCODES_KEY reference
Add the Google Reviews page, and link it from Home and Shop
Reviews: new page for the Reviews for Shop module, linked from Home and Shop
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Add the Quotes page, and write up shop's two new extension points
Quotes.md covers both modes, the save/retrieve flow, the designable quote
document and PDF, the admin side, and what the module deliberately never does.
Home and Shop link to it; Authoring-a-module documents shop.commerce-mode
(one point for one decision, null meaning no opinion, and why its pure half
lives apart from the resolver) and shop.cart-header-actions.
Add Advanced Shipping page; document cart-line control seam
Contact form page, part-dispatch, security and deploy notes, backup snapshot
Add Replacing a file, and document the Product Downloads module
Managing media gains a Replacing a file section: what the Replace button
does, where to find it, that it keeps every reference working (unlike
upload-new-and-delete-old), and why a product photo's replacement has to
match its file type.
Also lands the Product downloads page, its row in the Home index, and the
shop.product-detail-tabs notes in the module-authoring guide.
Product 3D views: new page, plus the additive extension-point pattern
Adds the site-owner page for the new 3D views module, links it from Home and
Shop, and documents in Authoring-a-module the pattern behind it: what to do
when a take-over extension point is winner-takes-all and you need a second
contributor anyway. The answer is a second point with additive semantics,
not a bigger claim.
Says plainly why DWG and USDZ are refused - DWG has no browser loader at all
and USDZ is Apple-AR-only - since "why won't it take my file" is the question
that page exists to answer.
docs: Product Attributes module page