Commit Graph
54 Commits
Author SHA1 Message Date
rootandClaude Sonnet 5.5 f337102c7a Antwortzeit: "spätestens am nächsten Werktag" statt 24 Stunden
index.html (Meta-Beschreibung), Standard-Beschreibung im Meta-Hook,
Startseiten-Meta, Kontaktseite (Meta, Einleitung) und Erfolgsmeldung des
Formulars versprechen jetzt nur noch eine Antwort spätestens am nächsten
Werktag. Weitere 24-Stunden-Versprechen gibt es im Quelltext nicht.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 10:41:06 +00:00
rootandClaude Sonnet 5.5 b897ae834f Eine Telefonnummer überall: 0176 23726355
Footer, Kontaktabschnitt der Startseite und Kontaktseite zeigten noch
0170 4969375, Impressum und Abo-Seiten schon 0176 23726355. Jetzt überall
0176 23726355 mit tel:+4917623726355.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 10:40:17 +00:00
rootandClaude Sonnet 5.5 c246b9811f Projekte-Bereich ausgeblendet: erfundene Referenzen entfernt
ProjectShowcase (vier erfundene Referenzen mit Unsplash-Hotlinks) ist
gelöscht, aus der Startseite genommen und der Nav-Punkt "Projekte"
(#projects) fällt in Desktop- und Mobil-Menü weg. Kein Link auf
#projects bleibt übrig.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 10:40:05 +00:00
rootandClaude Sonnet 5.5 a27b1fe255 Hero: ehrliche Fakten statt Zahlenleiste
Die Leiste mit Projektzähler (/api/projects), "Am Markt"-Ticker,
99,9 % Systemverfügbarkeit und Flagge ist ersetzt durch drei belegbare
Fakten ohne Count-up: Falkenstein (Server in Deutschland), Live-Vorschau
(im Kundenportal) und ab 20 € (Hosting im Monat). Einspaltig auf dem
Handy, ab md drei Spalten. Der zweite Button "Projekte ansehen" ist
entfernt, ebenso Projekt-Query, FOUNDING_DATE und src/lib/projects.ts.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 10:39:46 +00:00
rootandClaude Sonnet 5.5 79c3551934 Routen in eigene Datei ausgelagert
AppRoutes in src/routes.tsx, damit die Tests die echte Routenliste im
MemoryRouter rendern können. Keine Verhaltensänderung. setup.ts bekommt
Attrappen für IntersectionObserver und ResizeObserver (jsdom kennt sie nicht).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 10:35:48 +00:00
rootandClaude Opus 5.5 72f278b478 AGB § 9: Zeiterfassung in 15-Minuten-Schritten und Unterstützung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:27:33 +00:00
rootandClaude Opus 5.5 034892c899 AGB § 11 Haftung: wirksame Regel nach dem Muster der Abo-Bedingungen
Die alte Fassung schloss die Haftung für Umsatzausfälle, Datenverlust,
Systemausfälle und externe Dienste aus, haftete nur bei Vorsatz und
grober Fahrlässigkeit und deckelte auf den Auftragswert. Gegenüber
Verbrauchern unwirksam (§ 309 Nr. 7 a/b BGB), bei wesentlichen
Vertragspflichten auch gegenüber Unternehmern (§ 307 BGB).

Neu, wie § 13 der Abo-Bedingungen (v4-Entwurf): unbeschränkt bei
Vorsatz, grober Fahrlässigkeit, Leben/Körper/Gesundheit, nach dem
Produkthaftungsgesetz und bei Garantie; bei leichter Fahrlässigkeit
nur für wesentliche Vertragspflichten und nur für den vertragstypischen,
vorhersehbaren Schaden; Datenverlust außer in den Fällen von Absatz 1
nur in Höhe des Wiederherstellungsaufwands aus den Kopien, die der
Kunde aufbewahrt; gilt auch zugunsten von Mitarbeitern und Beauftragten.

src/test/agb-haftung.test.tsx hält die Kernsätze und die Reihenfolge
der Absätze fest. vitest.config.ts lädt @vitejs/plugin-react statt des
nicht installierten @vitejs/plugin-react-swc (vitest startete auf main
nicht); dieselbe Änderung wie auf feature/hosting-abo.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:26:43 +00:00
rootandClaude Opus 5.5 3c9a879d4a Hosting-Abo: Preis 15 € -> 20 € pro Monat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 16:29:29 +00:00
rootandClaude Fable 5.1 044f788835 AGB: Verbraucher-Kündigung als Ausnahme formuliert
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-28 08:41:26 +00:00
rootandClaude Fable 5.1 2bffca4b33 AGB: Haftungssatz Modul C entfällt, Kündigung nach Verlängerung für Verbraucher, Tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-28 08:16:17 +00:00
rootandClaude Fable 5.1 2c1a4c150c Website: Abo-Seiten an die Vertragsbedingungen angeglichen (Wechsel, Zusatzspeicher, Sicherheit), AGB-Verweise, Tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 20:10:07 +00:00
rootandClaude Fable 5.1 dc27e508dd Hosting-Abo-Seite, Wartungs-Abo mit beliebig vielen Postfächern, AGB Modul C (Entwurf)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 19:43:26 +00:00
rootandClaude Opus 5.5 1637a4a45d Favicon: WEBklar-Logo statt Lovable-Herz
favicon.ico war noch das Lovable-Vorlagen-Icon. Manche Browser und
Suchmaschinen nehmen die .ico statt favicon.svg. Ersetzt durch dieselbe
Datei wie im Kundenbereich (aus public/favicon.svg gerendert,
16/32/48/64/128/256 px).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 11:16:40 +00:00
rootandClaude Opus 5.5 5cc8b5f66b Performance: Animationen pausieren, Footer-Raster entschärft, WebGL nachladen
- Footer-Schriftzug (FlickeringGrid): Textmaske einmal pro Größe statt
  ~14.500 getImageData-Aufrufe pro Frame, nur flackernde Quadrate neu
  zeichnen (69–86 ms -> 0,1–0,2 ms pro Frame, Darstellung pixelgleich)
- PixelBlast: WebGL erst in Viewport-Nähe anlegen, unsichtbar pausieren
  (autoPauseOffscreen war nie angeschlossen), Shader asynchron kompilieren,
  beim Unmount aufräumen (Render-Schleifen liefen nach Seitenwechsel
  weiter); kein MSAA, keine erzwungene High-Performance-GPU
- Silk (Hero): nur rendern, solange sichtbar; DPR max. 1,5
- LightRays: keine verwaiste Render-Schleife mehr bei schnellem Vorbeiscrollen
- BorderGlow (Kontaktkarte): Sweep nur, solange die Karte sichtbar ist
- Silk, PixelBlast, LightRays als eigene Chunks (React.lazy):
  Haupt-Bundle 1,6 MB -> 646 KB (gzip 470 -> 207 KB)
- backgroud_effect und Emailsorter-Vorschaubild als WebP
  (974 KB -> 15 KB, 1,2 MB -> 11 KB), Projekt-Vorschaubilder lazy

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 21:47:17 +00:00
rootandClaude Opus 5.5 f74ddfb5ae Kontakt-E-Mail: support@webklar.com statt privater Adresse
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:30:14 +00:00
rootandClaude Opus 5.5 b159f79070 Wartungs-Abo-Seite: Mindestlaufzeit 12 Monate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 17:59:50 +00:00
rootandClaude Opus 5.5 ff9f1bd37e Rechtliches: Impressum (DDG, Gesellschafter), Datenschutz, Abo-Seite, lokale Schriften
- Impressum: § 5 DDG, vertreten durch Kenso Grimm und Justin Klein
  (einzeln vertretungsberechtigt), Notizsatz und RStV-Abschnitt entfernt,
  Haftung nach DSA statt TMG, OS-Plattform-Link entfernt (abgeschaltet)
- /datenschutz leitet auf die gemeinsame Datenschutzerklaerung weiter
- /wartungs-abo: oeffentliche Leistungsbeschreibung (auch fuer Stripe)
- Footer: Datenschutz, 'Vertraege hier kuendigen', 'Vertrag widerrufen'
- Inter und Space Grotesk selbst gehostet statt Google Fonts; vier
  ungenutzte Google-Schriften entfernt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:16:46 +00:00
rootandClaude Opus 5 d12fa7d04f Projekte-Abschnitt zurück auf die alte Darstellung
Die Live-Kachelansicht aller Gitea-Repositories ist nicht gewollt: der
Abschnitt "Projekte" zeigt wieder die kuratierte Liste wie zuvor.

Dynamisch bleibt allein der Projektzähler im Hero – lib/projects.ts ist
deshalb auf fetchProjects + Snapshot-Typ eingedampft, ProjectCard.tsx
entfällt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 21:14:11 +00:00
rootandClaude Opus 5 60c827733f Hero: Projektzähler live statt hartkodierter 10+
Die Statistik-Zeile im Hero zeigte fest "10+ Projekte". Sie hängt jetzt
am selben /api/projects wie der Abschnitt "Projekte" (gleicher
react-query queryKey, also weiterhin nur ein Request) und zählt die
Repositories, die tatsächlich in Gitea liegen. Fallback bleibt 10,
falls die API nicht antwortet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 20:48:16 +00:00
rootandClaude Opus 5 a21441c0ca Projekte: Live-Ansicht aller Gitea-Repositories statt fester Liste
Der Abschnitt "Projekte" zog bisher aus einem hartkodierten Array mit
Unsplash-Platzhaltern. Jetzt kommt der Inhalt live von GET /api/projects,
das serverseitig alle Repositories aus Gitea mit den Hosting-Metadaten
aus Appwrite (websiteProjects) zusammenführt.

- Hybride Vorschau: öffentlich erreichbare und einbettbare Seiten laufen
  als echtes Live-Iframe (lazy, erst im Viewport, pointer-events: none),
  alles andere bekommt eine Live-Daten-Kachel mit Status, Sprache,
  letztem Commit und deterministischer Akzentfarbe.
- Filter-Chips je Kategorie, Volltextsuche, "Mehr laden" (12er-Schritte).
- Ladeskelett und Fehlerzustand mit Retry, damit der Abschnitt nie
  leer oder kaputt aussieht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 20:18:59 +00:00
knso 04e1fd537d Update preview config from ticket system 2026-07-12 09:37:18 +00:00
rootandClaude Opus 4.8 e821233ff6 Footer überarbeitet: neues Design mit Flickering-Grid-Schriftzug
Neues Footer-Layout (Link-Spalten mit Chevron-Hover + animierter
WEBklar-Schriftzug via FlickeringGrid). Inhalt (Branding, Seiten-,
Kontakt- und Rechtliches-Links) aus dem bisherigen Footer übernommen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-12 09:25:30 +00:00
knso 7e58e43e18 optimierte texte 2026-05-25 14:49:50 +02:00
knso f7dd547f8d big upgrade 2026-05-10 12:19:58 +02:00
JUSN 5bd2019fc6 logo änderung 2026-03-20 21:06:18 +01:00
root edb2ea6f8a createDocument: permissions [] explizit übergeben (403-Versuch) 2026-02-07 09:42:57 +00:00
root 8fa7c2c078 Entfernen: Debug-Instrumentierung (localhost:7243) aus Contact und Appwrite 2026-02-07 09:17:47 +00:00
root e3269518bd Fix: json-bigint stringify nutzt _isBigNumber (behebt e.isBigNumber in prepareRequest) 2026-02-07 09:07:20 +00:00
root 95c4cefef1 Fix: Komma im Debug-Log-Objekt (Build-Syntax) 2026-02-07 08:58:34 +00:00
root 37327cc2c8 Debug: Instrumentierung für isBigNumber-Fehler (Console-Log + Fetch) 2026-02-07 08:58:09 +00:00
root 80c03411ae Fix: Appwrite-Patch nutzt _isBigNumber statt isBigNumber (behebt 'e.isBigNumber is not a function' im Build) 2026-02-07 08:47:48 +00:00
knso ac40edc468 appwrite 22.0.0 patch 2026-02-07 09:35:49 +01:00
knso 0986bc8173 appwrite verbindung
auf local und domaene ueber ein plugin
2026-02-07 09:29:48 +01:00
Basilosaurusrex 305de38ff6 .env commit 2026-02-06 19:46:26 +01:00
Basilosaurusrex 82668796d6 appwrite anbindung 2026-02-06 18:22:04 +01:00
knso 6ad076473b pics 2026-02-03 20:30:54 +01:00
KNSONWS 591c0eb4c7 fix 2026-02-03 19:51:36 +01:00
KNSONWS 2b39e0855f Add Appwrite React starter as regular files 2026-02-03 19:44:28 +01:00
KNSONWS 8be94e4518 Add Appwrite React starter 2026-02-03 19:43:24 +01:00
KNSONWS f2a3f47e07 form 2026-02-03 16:05:36 +01:00
Basilosaurusrex 6af24d28e7 impressum 2026-02-02 22:03:15 +01:00
Basilosaurusrex 217bbdc6a7 new version 2026-02-02 21:42:41 +01:00
Basilosaurusrex 7e8d40878b light 2026-02-02 16:17:08 +01:00
Basilosaurusrex 2dc5401179 imeges 2026-02-02 15:16:36 +01:00
Basilosaurusrex 3b9e35a447 Values-Section: Hintergrundbild backgroud_effect.png (groß, transparent) 2026-02-02 12:11:43 +01:00
Basilosaurusrex a95932cd79 CountUp-Effekt für Zahlen, Navbar-Button wie Hero-Button (dark) 2026-02-02 10:41:41 +01:00
Basilosaurusrex 01102ef3f7 Custom CTA-Buttons: Sparkle/Demo-Button, blauer Primary-Button mit Text-Animation, einheitlicher Stil für alle blauen Buttons 2026-02-02 09:29:37 +01:00
knso 22d641e4e5 Neues WEBklar-Logo, Favicon und Tab-Titel 2026-02-02 00:08:51 +01:00
knso 1d4584e5d9 fixes 2026-02-01 22:34:47 +01:00
knso 6228945065 Added Silk component for animated background in Hero section 2026-02-01 16:59:54 +01:00