Final brand-strip pass: remove all MUELLERPRINTS-specific content from libreshop/shop so it stands as a clean reference example anyone can copy.
Why
Per the pivot ADR, libreshop/shop is now a public reference. Having MUELLERPRINTS hardcoded means new readers see a mp-specific shop and can't tell what's structural vs branded. The reference becomes much more valuable when brand-neutral.
Inventory of brand leakage (from earlier feasibility analysis)
pages/checkout/result/[uuid].vue:22,38,102 — order confirmation MP emails
Replacement strategy
Replace each occurrence with plausible neutral example content, not Lorem. The reference should be deployable as-is and look like a real (fictional) shop, e.g.:
Brand: BLANKBOOK (placeholder name)
Tagline: Notebooks made by hand
Domain: blankbook.example
Email: hello@blankbook.example
Address: Beispielstraße 1, 12345 Musterstadt
VAT: DE 000000000
Hours: Mo – Fr 9.00 – 17.00
Logo: simple text-based fallback or a placeholder SVG (no client artwork)
Paper: Premium Recycled 90 g/m² (generic)
Cert claims: drop FSC numbers, replace with "FSC-certified, environmentally friendly"
Acceptance
No occurrence of "MUELLERPRINTS", "Paperwork", "Stuttgart", "Rotenberg", "Müller", "muellerprints@t-online.de", paperwork@muellerprints.de, +49 (0)711 / 262, DE 147595459, VIVUS 89, FSC® C018175 in repo
CI step that fails if any of the above strings reappear (grep regression test)
Bare docker run libreshop/shop:vX.Y.Z still produces a deployable demo shop with the placeholder brand
Out of scope
Notebook-specific product schema (binding/cover/ruling) — stays. Reference is opinionated about being a notebook shop. Generic-product abstraction is a separate (deferred) concern.
Part of https://git.librete.ch/libreshop/shop/issues/10
## Goal
Final brand-strip pass: remove all MUELLERPRINTS-specific content from libreshop/shop so it stands as a clean reference example anyone can copy.
## Why
Per the pivot ADR, libreshop/shop is now a public reference. Having MUELLERPRINTS hardcoded means new readers see a mp-specific shop and can't tell what's structural vs branded. The reference becomes much more valuable when brand-neutral.
## Inventory of brand leakage (from earlier feasibility analysis)
- `nuxt.config.ts:32` — siteUrl `https://muellerprints-paperwork.com`
- `nuxt.config.ts:58` — page title "MUELLERPRINTS - Handgefertigte Notizbücher aus Stuttgart"
- `components/Header.vue:8,50` — "MUELLERPRINTS. Paperwork" logo + "Über MUELLERPRINTS" description
- `components/Footer.vue:10,83` — footer brand block (2 lines)
- `pages/details/[slug].vue:41–42` — schema.org with paperwork-logo URL
- `server/api/contact.post.ts:30,41` — to-address `paperwork@muellerprints.de` + body text
- `server/api/__sitemap__/urls.ts:50` — sitemap fallback
- All 11 page files — `useSeoMeta` titles with "MUELLERPRINTS"
- `composables/usePageContent.ts:37–106` — Stuttgart address, phone, email, copyright (287 lines hardcoded)
- `composables/useProductContent.ts:1–369` — VIVUS 89, FSC C018175, hardcover/softcover Stuttgart claims, Fadenheftung narratives
- `pages/checkout/result/[uuid].vue:22,38,102` — order confirmation MP emails
## Replacement strategy
Replace each occurrence with **plausible neutral example content**, not Lorem. The reference should be deployable as-is and look like a real (fictional) shop, e.g.:
- Brand: `BLANKBOOK` (placeholder name)
- Tagline: `Notebooks made by hand`
- Domain: `blankbook.example`
- Email: `hello@blankbook.example`
- Address: `Beispielstraße 1, 12345 Musterstadt`
- VAT: `DE 000000000`
- Hours: `Mo – Fr 9.00 – 17.00`
- Logo: simple text-based fallback or a placeholder SVG (no client artwork)
- Paper: `Premium Recycled 90 g/m²` (generic)
- Cert claims: drop FSC numbers, replace with "FSC-certified, environmentally friendly"
## Acceptance
- [ ] No occurrence of "MUELLERPRINTS", "Paperwork", "Stuttgart", "Rotenberg", "Müller", "muellerprints@t-online.de", `paperwork@muellerprints.de`, `+49 (0)711 / 262`, `DE 147595459`, `VIVUS 89`, `FSC® C018175` in repo
- [ ] CI step that fails if any of the above strings reappear (grep regression test)
- [ ] Bare `docker run libreshop/shop:vX.Y.Z` still produces a deployable demo shop with the placeholder brand
## Out of scope
- Notebook-specific product schema (binding/cover/ruling) — stays. Reference is opinionated about being a notebook shop. Generic-product abstraction is a separate (deferred) concern.
Folded into the single muellerprints.de tracker libretech/mp#50 during the 2026-09-24 cleanup: no activity since 2026-05-04. Reopen when work resumes.
Folded into the single muellerprints.de tracker https://git.librete.ch/libretech/mp/issues/50 during the 2026-09-24 cleanup: no activity since 2026-05-04. Reopen when work resumes.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #10
Goal
Final brand-strip pass: remove all MUELLERPRINTS-specific content from libreshop/shop so it stands as a clean reference example anyone can copy.
Why
Per the pivot ADR, libreshop/shop is now a public reference. Having MUELLERPRINTS hardcoded means new readers see a mp-specific shop and can't tell what's structural vs branded. The reference becomes much more valuable when brand-neutral.
Inventory of brand leakage (from earlier feasibility analysis)
nuxt.config.ts:32— siteUrlhttps://muellerprints-paperwork.comnuxt.config.ts:58— page title "MUELLERPRINTS - Handgefertigte Notizbücher aus Stuttgart"components/Header.vue:8,50— "MUELLERPRINTS. Paperwork" logo + "Über MUELLERPRINTS" descriptioncomponents/Footer.vue:10,83— footer brand block (2 lines)pages/details/[slug].vue:41–42— schema.org with paperwork-logo URLserver/api/contact.post.ts:30,41— to-addresspaperwork@muellerprints.de+ body textserver/api/__sitemap__/urls.ts:50— sitemap fallbackuseSeoMetatitles with "MUELLERPRINTS"composables/usePageContent.ts:37–106— Stuttgart address, phone, email, copyright (287 lines hardcoded)composables/useProductContent.ts:1–369— VIVUS 89, FSC C018175, hardcover/softcover Stuttgart claims, Fadenheftung narrativespages/checkout/result/[uuid].vue:22,38,102— order confirmation MP emailsReplacement strategy
Replace each occurrence with plausible neutral example content, not Lorem. The reference should be deployable as-is and look like a real (fictional) shop, e.g.:
BLANKBOOK(placeholder name)Notebooks made by handblankbook.examplehello@blankbook.exampleBeispielstraße 1, 12345 MusterstadtDE 000000000Mo – Fr 9.00 – 17.00Premium Recycled 90 g/m²(generic)Acceptance
paperwork@muellerprints.de,+49 (0)711 / 262,DE 147595459,VIVUS 89,FSC® C018175in repodocker run libreshop/shop:vX.Y.Zstill produces a deployable demo shop with the placeholder brandOut of scope
Folded into the single muellerprints.de tracker libretech/mp#50 during the 2026-09-24 cleanup: no activity since 2026-05-04. Reopen when work resumes.