Order workflow: cart → checkout (3 steps) → PayPal create order → capture → invoice PDF + confirmation mail → Strapi order record
Trust-bar, hero with carousel, product gallery, feature modules — components designed for a notebook shop but adaptable
What it doesn't solve
Multi-tenancy (one shop per deploy)
Generic product types beyond notebooks (the schema assumes covers/bindings/rulings)
White-label runtime override (was considered, rejected — see #10)
Architecture
Diagram: shop ← API → cms ← DB
Mail/PDF as separate microservices
Nginx reverse-proxy in front of shop (production)
Local dev
npm install, npm run dev
Strapi expected at port 5555 (or set NUXT_CMS_API_URL)
Optional: docker compose up brings everything
Deploying
The published image git.librete.ch/libreshop/shop:v0.x.0 is deprecated — it shipped MUELLERPRINTS branding before the pivot. New consumers should fork + build their own image. The image will be deleted from the registry 2027-01-01 to reduce confusion.
License
(existing)
Acceptance
No language suggesting "extend at runtime" or "add as Nuxt layer"
Clear "fork it" call-to-action
Mention of mp as canonical example deployment
Mention of deprecation of the runtime image with date
Part of https://git.librete.ch/libreshop/shop/issues/10
## Goal
Rewrite README.md to position libreshop/shop as a reference template (copy-and-modify), not a runtime dependency.
## Sections to write
### What is this?
- A working, opinionated example of a notebook e-commerce shop
- Stack: Nuxt 3 SSR + Strapi v4 CMS + PayPal + transactional mail + LaTeX-PDF invoices
- Used as a starting template by `libretech/mp` (production: muellerprints.de)
### How to use it
- **Copy, don't depend.** Use `degit libreshop/shop my-shop` or `git clone --depth 1`
- Modify freely — there is no upstream "override surface", no semver guarantee for components/composables
- Pull cherry-picked commits if you want to track upstream improvements (e.g. dependabot bumps)
- Open issues here if a structural improvement would benefit other consumers
### What it solves
- SSR-rendered Nuxt 3 with Pinia cart store + localStorage persistence
- Strapi schema for: product variants (cover/binding/pages/ruling/pattern), orders, customers, payment methods, delivery methods
- Order workflow: cart → checkout (3 steps) → PayPal create order → capture → invoice PDF + confirmation mail → Strapi order record
- Trust-bar, hero with carousel, product gallery, feature modules — components designed for a notebook shop but adaptable
### What it doesn't solve
- Multi-tenancy (one shop per deploy)
- Generic product types beyond notebooks (the schema assumes covers/bindings/rulings)
- White-label runtime override (was considered, rejected — see https://git.librete.ch/libreshop/shop/issues/10)
### Architecture
- Diagram: shop ← API → cms ← DB
- Mail/PDF as separate microservices
- Nginx reverse-proxy in front of shop (production)
### Local dev
- `npm install`, `npm run dev`
- Strapi expected at port 5555 (or set `NUXT_CMS_API_URL`)
- Optional: `docker compose up` brings everything
### Deploying
- The published image `git.librete.ch/libreshop/shop:v0.x.0` is **deprecated** — it shipped MUELLERPRINTS branding before the pivot. New consumers should fork + build their own image. The image will be deleted from the registry 2027-01-01 to reduce confusion.
### License
- (existing)
## Acceptance
- [ ] No language suggesting "extend at runtime" or "add as Nuxt layer"
- [ ] Clear "fork it" call-to-action
- [ ] Mention of mp as canonical example deployment
- [ ] Mention of deprecation of the runtime image with date
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
Rewrite README.md to position libreshop/shop as a reference template (copy-and-modify), not a runtime dependency.
Sections to write
What is this?
libretech/mp(production: muellerprints.de)How to use it
degit libreshop/shop my-shoporgit clone --depth 1What it solves
What it doesn't solve
Architecture
Local dev
npm install,npm run devNUXT_CMS_API_URL)docker compose upbrings everythingDeploying
git.librete.ch/libreshop/shop:v0.x.0is deprecated — it shipped MUELLERPRINTS branding before the pivot. New consumers should fork + build their own image. The image will be deleted from the registry 2027-01-01 to reduce confusion.License
Acceptance
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.