Relaunch: Spezifikation, Material (Deutschlandkarte, Portal-Screenshots) und CLAUDE.md

Spec docs/superpowers/specs/2026-10-01-relaunch-design.md (wartet auf Freigabe),
Karte aus Natural Earth (gemeinfrei) mit Punkt Falkenstein, 19 Portal-Aufnahmen
mit erfundenen Demodaten, Regeln für Cloud-Sitzungen in CLAUDE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-01 14:09:02 +00:00
1 parent 80925c2a43
commit 6eac6ef8fb
24 files changed
+761

No files matched your search

+62
View File
@@ -0,0 +1,62 @@
# webklar.com
Website of WEBklar GbR (a small web agency in Winnweiler, Rhineland-Palatinate). Vite + React 18 + TypeScript + Tailwind + shadcn/ui, client-rendered SPA with React Router.
**Current project: the relaunch.** Read `docs/superpowers/specs/2026-10-01-relaunch-design.md` before any change. The material for it (Germany map, customer portal screenshots) is in `docs/relaunch/`.
Status: the spec is waiting for the owner's approval. Once it is approved, write an implementation plan with the `superpowers:writing-plans` skill and save it to `docs/superpowers/plans/`. Implement only after that.
## Commands
```bash
npm install
npm run dev # local dev server
npm test # Vitest + Testing Library (must stay green)
npm run build # production build into dist/
npm run lint # ESLint (main already has old errors; add no new ones)
```
## How this repository relates to the live site
- This GitHub repository is the **workspace**. Its `main` is **not** live.
- webklar.com is built from a separate internal repository on the owner's server. Only the owner, or a session on that server, transfers an approved state there. Never try to deploy from here.
## Rules
- **Language:** everything user-facing is German, in the polite form **"Sie"**. Brand spelling is always **"WEBklar"**. Write commit messages, PR texts and notes for the owner in German.
- **The wording of the legal pages stays unchanged without the owner's explicit OK:** `src/pages/AGB.tsx`, `Impressum.tsx`, `WartungsAbo.tsx`, `HostingAbo.tsx`, and the privacy policy (the `/datenschutz` redirect to the customer portal).
- For the new layout you may change their markup and CSS classes: remove their own header block, replace uppercase and old font/button classes.
- Keep their wording, order and structure.
- The tests in `src/test/abos.test.tsx`, `agb-haftung.test.tsx` and `agb-verguetung.test.tsx` protect them; never weaken or delete these three files.
- `src/test/sofort-paket.test.tsx` may be adapted where it pins old copy or removed components. Keep its source-code scans against banned statements.
- **No invented content:**
- no numbers without a source (no "99,9 %", no project counters);
- no references without the customer's consent (AGB § 13);
- no stock or AI images of people;
- no promises of success (AGB § 2: no result is owed);
- SEO only as a separately ordered service;
- support after launch only through the subscriptions.
- **Fixed facts:**
- Phone: only 0176 23726355 (`tel:+4917623726355`). E-mail: support@webklar.com.
- Reply time: only "spätestens am nächsten Werktag".
- Servers: Hetzner in Falkenstein/Vogtland, Saxony. This applies **only to the website and the customer portal**. Never write "all data in Germany".
- Prices are final prices, small-business rule § 19 UStG, no VAT. Hosting-Abo 20 € per month, Wartungs-Abo 50 € per month, 12 months minimum term each. Extra work 100 € per hour in 15-minute steps, only after approval.
- **Customer portal screenshots** show only the invented demo customer "Bäckerei Sonnenschein". Never use real customer data.
- **Privacy:** no requests to third-party servers. Host fonts, images and scripts yourself; no Google Fonts, no CDNs, no tracking.
- **Secrets:** never commit them. `.env` stays local; `.env.example` holds only public client IDs.
- **This repository may be public.** Do not check in internal data: price calculations, customer names without consent, server details, logins.
- **Before every push:** run `npm test`, `npm run build`, and `npm run lint` (no new errors). For visual changes, put screenshots in the pull request: 1440 × 900 and 390 × 844, light and dark.
- **Work on branches and merge through pull requests.** The relaunch branch is `relaunch`.
- **Code style:**
- Match the existing code.
- German comments where the code already uses them.
- Only `transform`/`opacity` animations, always behind `prefers-reduced-motion`. The spec section 8.4 lists the only exceptions: map outline drawing, a 3× pulse around the map dot, the rotating hero headline (one pass, with a pause button), and the scroll-linked word highlight.
- Hover effects only for `(hover: hover) and (pointer: fine)`.
## Structure (short)
- `src/routes.tsx`: all routes. Subpages share one layout with the footer (`SubpageLayout`).
- `src/App.tsx`: providers, `ScrollToTop`. It jumps to anchors such as `/#leistungen` once the fonts have loaded.
- `src/hooks/use-page-meta.ts`: title and description per route.
- `src/pages/`: pages. `src/components/`: sections and parts. `src/components/ui/`: shadcn.
- `src/test/`: tests. `sofort-paket.test.tsx` holds source-code scans against banned statements: the old phone number, Unsplash, "24 Stunden", "99,9", success promises. Keep these scans when sections are removed.