Commit Graph
33 Commits
Author SHA1 Message Date
damjan_savic 0f59df9b35 auto-claude: subtask-3-2 - Add rate limit feedback to ContactForm UI
- Added rate limit translations for en, de, and sr locales
- Added state to track remaining attempts from X-RateLimit-Remaining header
- Display warning when remaining attempts are low (<=2)
- Show user-friendly error messages with time until reset for 429 errors
- Added AlertTriangle icon for visual feedback on warnings
- All messages now use i18n translation keys for multilingual support
2026-01-25 12:10:15 +01:00
damjan_savicandClaude Sonnet 4.5 24dbadf5d6 auto-claude: subtask-3-1 - Update ContactForm to call API route instead of simulating
Changes:
- Replaced simulated API call with real fetch() to /api/contact
- Added errorMessage state for custom error messages
- Implemented proper response handling for different status codes:
  * 200: Success message and form reset
  * 429: Rate limit error with time until retry
  * 400/500: Display API error messages
- Enhanced rate limit error display with human-readable time formatting
- Added VERIFICATION_STEPS.md for manual testing guidance

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 12:06:43 +01:00
damjan_savicandClaude Opus 4.5 87c7ebc5e3 feat: Add professional portfolio images and Hero redesign
- Add 15 optimized WebP images for portfolio (21-53KB each)
- Redesign Hero section with full-width background image
- Add SSR support for Hero component
- Update About section with new portrait image
- Update Contact page with professional headshot
- Add images to Services/Leistungen page
- Add image optimization script (sharp)
- Update translations for gallery section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:33:28 +01:00
damjan_savicandClaude Opus 4.5 b1ec7b4d61 Migrate from Vite to Next.js 15 with SSR
- Replace Vite + React Router with Next.js 15 App Router
- Implement i18n with next-intl (URL-based: /de, /en, /sr)
- Add SSR/SSG for all pages (48 static pages generated)
- Setup Supabase SSR client for auth
- Migrate all pages: Home, About, Portfolio, Blog, Contact, Login, Dashboard, Imprint, Privacy, Terms
- Add Docker support with standalone output
- Replace i18next with next-intl JSON translations
- Use next/image for optimized images

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 01:00:33 +01:00
damjan_savicandClaude Opus 4.5 bd5570aa87 Fix: Cookie-Banner Buttons stapeln sich auf Mobile
- Buttons werden vertikal gestapelt auf kleinen Bildschirmen
- Ab sm-Breakpoint (640px) nebeneinander
- Volle Breite auf Mobile für bessere Bedienbarkeit

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:35:47 +01:00
damjan_savicandClaude Opus 4.5 61c7c523ab Performance: Framer-motion aus kritischem Pfad entfernt
- Framer-motion aus Layout, NavLink, ContactInfo, LanguageSwitcher entfernt
- PageTransition komplett vereinfacht (keine 1200ms Verzögerung mehr)
- FloatingPaths wird erst nach 2s lazy geladen
- Framer-motion und lucide-react in separate Chunks getrennt
- Icons-Chunk: 10.87KB (statt 126KB ui-vendor)
- Animations-Chunk wird erst bei Bedarf geladen

Einsparung: ~115KB beim Initial Load

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 22:34:52 +01:00
damjan_savicandClaude Opus 4.5 df053fb7a0 Performance: Portrait-Bilder exakt für Anzeigegröße optimiert
- Portrait-Bilder in exakten Größen: 224px, 288px, 448px, 576px
- Mobile lädt jetzt ~5KB statt 30KB
- Supabase-Check auf 5s verzögert (außerhalb kritischer Pfad)
- Preload für exakte Portrait-Größen

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 22:14:52 +01:00
damjan_savicandClaude Opus 4.5 4b9e457f4a Performance: Mobile-Optimierungen für besseren PageSpeed
- Portrait-Bild von 1.2MB auf ~20KB optimiert (300px/600px + WebP)
- Hero-Animation entfernt für schnelleren LCP
- WebP srcset für alle Projekt-Bilder (6 Größen: 200-1200px)
- Korrekte sizes-Attribute für Mobile (350px statt 1200px)
- Supabase lazy laden via dynamischen Import
- Admin-Check verzögert mit requestIdleCallback
- Hauptbundle von 461KB auf 358KB reduziert

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 22:02:57 +01:00
damjan_savicandClaude Opus 4.5 588d6e1f17 Performance: PageSpeed Optimierungen implementiert
- LCP-Bild (Portrait) mit fetchpriority="high" und Preload optimiert
- Logo SVG mit expliziten width/height Attributen versehen (CLS)
- Touch-Targets in Experience Navigation von 5px auf 24px vergrößert
- Kontrast für Firmenname/Zeitraum verbessert (zinc-300/zinc-400)
- PWA Service Worker mit script-defer für nicht-blockierendes Laden
- Responsive Bilder: srcset mit 400w/800w/1200w + WebP-Format
- Neues Build-Script für Bildoptimierung (scripts/optimize-images.js)
- Original-Bilder in source-images/ verschoben (gitignored)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 21:14:29 +01:00
damjan_savicandClaude Opus 4.5 52937b94c1 Portfolio Update: Recrobot hinzugefügt, Blog-Beitrag entfernt, UI verbessert
- Neues Portfolio-Projekt: Recrobot (KI-gestütztes Recruiting Tool)
- Portfolio-Projekt: Website mit KI hinzugefügt
- Blog-Beitrag "Automatisierte Ad Creatives" entfernt
- Gradient-Overlay von Portfolio-Karten entfernt
- Projekt-Ordner für Cover-Bilder erstellt
- Übersetzungen für alle drei Sprachen (DE, EN, SR)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 21:11:57 +01:00
damjan_savic 92095892b2 Implementierung - SEO - 15.08.2025 2025-08-15 18:20:45 +02:00
damjan_savic 3db6bafa0a Implementierung - SEO - 15.08.2025 2025-08-15 17:53:29 +02:00
damjan_savic 6175424711 Implementierung - SEO - 15.08.2025 2025-08-15 17:51:21 +02:00
damjan_savic 2f1fdb9154 Implementierung - SEO - 15.08.2025 2025-08-15 17:46:59 +02:00
damjan_savic fa97bc8705 Implementierung - SEO - 15.08.2025 2025-08-15 17:27:09 +02:00
damjan_savic 2be1d6617a Implementierung - SEO - 15.08.2025 2025-08-15 17:23:01 +02:00
damjan_savic 7dad0a5812 Implementierung - SEO - 01.08.2025 2025-08-05 15:55:01 +02:00
damjan_savic 4a4388be64 Implementierung - SEO - 01.08.2025 2025-08-02 02:02:51 +02:00
damjan_savic e69e68242c Implementierung - SEO - 01.08.2025 2025-08-01 20:33:47 +02:00
damjan_savic f176743885 Implementierung - SEO - 01.08.2025 2025-08-01 14:26:05 +02:00
damjan_savic 7aa0543001 Fix Cookie Banner. 2025-04-18 16:16:07 +02:00
damjan_savic 867168ae99 Fix Cookie Banner. 2025-04-18 16:06:14 +02:00
damjan_savic 5c3da709df Fix Cookie Banner. 2025-04-18 13:48:11 +02:00
damjan_savic 76d178f54e Fix Dropdown LanguageSwitcher. 2025-04-15 14:05:03 +02:00
damjan_savic c1f59a0e6d Fix Animations, Sidebar and Footer. 2025-02-10 14:15:42 +01:00
damjan_savic 62ed4ddcd9 Fix Animations, Sidebar and Footer. 2025-02-10 14:04:45 +01:00
damjan_savic cb56c2b4c1 Fix Animations, Sidebar and Footer. 2025-02-10 13:57:26 +01:00
damjan_savic e26ab9127a Fix Animations, Sidebar and Footer. 2025-02-10 13:55:39 +01:00
damjan_savic 0786ff793e Fix Animations, Sidebar and Footer. 2025-02-10 13:54:12 +01:00
damjan_savic 524e651bca Fix Animations, Sidebar and Footer. 2025-02-10 13:35:37 +01:00
damjan_savic d23c381913 Fix Scroll. 2025-02-10 12:53:25 +01:00
damjan_savic 4b74640d87 Fix Page Transition and Mobile Version. 2025-02-10 11:28:50 +01:00
damjan_savic bba0e331a8 First Commit - Portfolio Page 2025-02-10 00:55:39 +01:00