Commit Graph
226 Commits
Author SHA1 Message Date
damjan_savic 34555de0e5 auto-claude: subtask-2-1 - Create basic unit tests for useLocalStorage 2026-01-25 04:01:47 +01:00
damjan_savicandClaude Sonnet 4.5 d130972cd7 auto-claude: subtask-1-3 - Add filtering logic and integrate components into blog page
- Created BlogList client component with search and category filtering
- Integrated SearchBar and CategoryFilter components
- Implemented case-insensitive search by title/excerpt/tags
- Added category filtering with AND logic for combined filters
- Updated pagination to work with filtered results
- Added search placeholder translations for de/en/sr
- Moved blog card and pagination logic to client component

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 02:47:52 +01:00
damjan_savicandClaude Sonnet 4.5 cfa2bc81e6 auto-claude: subtask-1-2 - Create CategoryFilter component with category buttons/dropdown
Created CategoryFilter component with the following features:
- Client component with 'use client' directive and framer-motion animations
- Props: categories, selectedCategory, onCategoryChange, className
- Uses lucide-react Tag icon
- Responsive design: horizontal scrollable on mobile, grid layout on desktop
- Active category highlighted with bg-[#697565] text-white
- Includes 'All' option to clear filter
- Follows established patterns from SearchBar and ContactForm
- Consistent styling with bg-zinc-900/50 and border-zinc-800
- Smooth transitions and hover states

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 02:39:30 +01:00
damjan_savic 2f8c79612d auto-claude: subtask-1-2 - Add JSDoc documentation to hook 2026-01-25 02:38:22 +01:00
damjan_savicandClaude Sonnet 4.5 7fa92a04b4 auto-claude: subtask-1-3 - Display reading time on blog post detail page
- Import Clock icon from lucide-react
- Export calculateReadingTime function from blog.ts
- Calculate reading time for post content
- Display reading time in post header with Clock icon
- Format matches listing page: "X min read"

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 02:38:16 +01:00
damjan_savic 0cc34aa007 auto-claude: subtask-1-1 - Create SearchBar component with search input and r 2026-01-25 02:37:31 +01:00
damjan_savic 29ad019884 auto-claude: subtask-1-1 - Create useLocalStorage hook with TypeScript 2026-01-25 02:36:05 +01:00
damjan_savicandClaude Sonnet 4.5 e749dce0a6 auto-claude: subtask-1-2 - Display reading time on blog listing page (BlogPostCard)
Added Clock icon import and reading time display to BlogPostCard component.
The reading time now appears between the date and tags with the format "X min read".

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-25 02:35:47 +01:00
damjan_savic 7bf3aa20ce auto-claude: subtask-1-1 - Add readingTime field to BlogPost interface and im 2026-01-25 02:32:33 +01:00
damjan_savicandClaude Opus 4.5 a8731b3245 auto-claude: subtask-7-1 - Create functionality tests for navigation, forms, and language switching
- Add comprehensive E2E functionality tests (33 tests):
  - Navigation: page loading, desktop/mobile nav links, active states
  - Contact Form: validation, submission, error handling
  - Language Switching: locale changes, URL preservation, dropdown behavior
  - Cross-functional: combined navigation and language flows
  - Accessibility: ARIA attributes for nav, menu, form labels

- Fix Next.js 15 ssr:false in server component issue:
  - Create ChatbotLoader client wrapper for dynamic import
  - Update layout.tsx to use ChatbotLoader instead of direct dynamic import

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:32:07 +01:00
damjan_savicandClaude Opus 4.5 ad9b072ba8 auto-claude: subtask-6-2 - Add privacy policy translations for all locales
Added comprehensive GDPR-compliant privacy policy translations to all locale
message files (de.json, en.json, sr.json). Translations include:

- Full introduction and data controller sections
- Detailed data collection information (automatic and contact form data)
- Cookie and local storage explanations with duration
- Third-party services (Google Analytics, Supabase, Deepseek API, Vercel)
- Legal basis for processing under GDPR (Art. 6)
- Complete user rights sections (access, rectification, erasure, etc.)
- Data retention and security policies
- Contact information for privacy inquiries

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:12:35 +01:00
damjan_savic d54383b5ca auto-claude: subtask-6-1 - Rewrite privacy policy page with comprehensive GDPR
- Complete rewrite following imprint page pattern
- Comprehensive GDPR-compliant sections in DE/EN/SR
- Lists all third-party services: Google Analytics, Supabase, Deepseek API, Vercel
- Detailed cookie table with types, purposes, and durations
- Full user rights section with GDPR articles (15-21, 77)
- Legal basis for data processing (Art. 6 GDPR)
- Data controller information, retention policies, security measures
- Proper SEO metadata with alternates and canonical URLs
2026-01-25 01:06:52 +01:00
damjan_savicandClaude Opus 4.5 06d14b1dc5 auto-claude: subtask-5-3 - Add Chatbot component to layout with lazy loading
- Import dynamic from next/dynamic for lazy loading
- Create lazy-loaded Chatbot component with ssr: false
  (uses browser-only APIs like localStorage)
- Add Chatbot inside NextIntlClientProvider for i18n support
- Component loads on client-side only for optimal performance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:03:56 +01:00
damjan_savicandClaude Opus 4.5 abbf5f88f5 auto-claude: subtask-5-2 - Create main Chatbot component with floating UI and message handling
- Created Chatbot.tsx with floating chat bubble UI
- Implemented streaming SSE message handling
- Added visitor ID persistence via localStorage for session continuity
- Integrated with /api/chat endpoint for AI responses
- Added suggested prompts for empty chat state
- Implemented error handling with retry functionality
- Added clear chat functionality
- Created responsive design with mobile support
- Created index.ts barrel export for chat components

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 01:01:12 +01:00
damjan_savicandClaude Opus 4.5 a1cfc33dea auto-claude: subtask-5-1 - Create ChatMessage component for individual messages
Created ChatMessage.tsx component with:
- ChatMessage component for displaying user/assistant messages
- Styled differently based on role (user right-aligned, assistant left-aligned)
- Framer Motion animations for smooth appearance
- Streaming indicator for real-time response display
- TypingIndicator component for loading state
- WelcomeMessage component for empty chat state
- Timestamp formatting utility
- Responsive design following existing Tailwind patterns

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:58:13 +01:00
damjan_savicandClaude Opus 4.5 858d53fd2d auto-claude: subtask-4-5 - Create chatbot API route handler with streaming responses
Implemented Next.js API route at /api/chat with:
- POST endpoint for sending messages with streaming responses (SSE)
- GET endpoint for retrieving chat history
- OPTIONS endpoint for CORS preflight
- Integration with Deepseek API via createStreamingChatCompletion
- Session management via getOrCreateChatSession (24h continuity)
- Message persistence to Supabase (user + assistant messages)
- Context management with 20-message history limit
- Error handling for API key/database issues
- Request validation for required fields (message, visitorId)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:56:19 +01:00
damjan_savicandClaude Opus 4.5 f8fbac8ac6 auto-claude: subtask-4-4 - Create chat_sessions and chat_messages tables in Supabase
Create SQL migration for chatbot database tables:
- chat_sessions: Stores visitor session data with visitor_id, metadata, timestamps
- chat_messages: Stores chat messages with role (user/assistant/system), content
- Proper indexes for visitor lookup and message ordering
- Row Level Security (RLS) enabled with policies for:
  - Service role full access (for server-side API)
  - Visitor-based access via x-visitor-id header (for potential future client-side)
- Trigger for automatic updated_at column on chat_sessions

Also updated ChatSession interface in chat.ts to include updated_at field.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:53:55 +01:00
damjan_savicandClaude Opus 4.5 32717916ea auto-claude: subtask-4-3 - Create Supabase chat database operations module
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:51:23 +01:00
damjan_savicandClaude Opus 4.5 798d7e8f5b auto-claude: subtask-4-2 - Create Deepseek API client wrapper using OpenAI SDK
- Add Deepseek client using OpenAI SDK with custom baseURL
- Implement createDeepseekClient() factory function with lazy initialization
- Add ChatMessage type definitions for type safety
- Include portfolio-specific system prompt for the chatbot
- Support both streaming and non-streaming chat completions
- Configure default model (deepseek-chat) and sensible defaults

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:49:33 +01:00
damjan_savicandClaude Opus 4.5 a45e0f3aba auto-claude: subtask-3-3 - Fix robots.txt and sitemap configuration
- Remove outdated static public/sitemap.xml that conflicted with dynamic sitemap.ts
  (was missing leistungen pages, city pages, and had outdated blog/portfolio slugs)
- Fix robots.ts to reference only the single sitemap.xml instead of non-existent
  language-specific sitemaps (sitemap-de.xml, sitemap-en.xml, sitemap-sr.xml)
- Dynamic sitemap.ts now handles all pages with proper hreflang alternates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:46:04 +01:00
damjan_savicandClaude Opus 4.5 65df1bd559 auto-claude: subtask-3-2 - Enhance metadata generation across all pages
Added missing OpenGraph and Twitter card metadata to about, contact, and portfolio pages:
- Added siteName to OpenGraph metadata
- Added OpenGraph images with proper dimensions (1200x630)
- Added Twitter card metadata (summary_large_image)

All pages now follow the home page metadata pattern for consistent SEO.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:41:39 +01:00
damjan_savicandClaude Opus 4.5 223695b3cf auto-claude: subtask-3-1 - Audit existing JsonLd components and enhance struc
Enhanced JSON-LD structured data coverage with the following improvements:

## PersonJsonLd Enhancements:
- Added hasOccupation with skills and occupationLocation
- Added knowsLanguage (German, English, Serbian)
- Added worksFor reference to business
- Added nationality for geo-targeting
- Enhanced knowsAbout with Claude AI, GPT-4, LangChain
- Upgraded image to ImageObject with dimensions

## New Components:
- ContactPageJsonLd: Contact page with ContactPoint entity
- CollectionPageJsonLd: Portfolio page with ItemList for projects
- ItemListJsonLd: Generic list schema for any items

## WebSiteJsonLd Enhancement:
- Added SearchAction for sitelinks search box

## Page Updates:
- Contact page now uses ContactPageJsonLd
- Portfolio page now uses CollectionPageJsonLd and BreadcrumbJsonLd

All schemas use @id cross-references for proper entity linking.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:39:10 +01:00
damjan_savicandClaude Opus 4.5 d7f0a6d6f1 auto-claude: subtask-2-4 - Verify PageSpeed scores and fix SEO issues
- Created PAGESPEED_VERIFICATION_REPORT.md with comprehensive audit results
- Fixed robots.txt conflict by removing static public/robots.txt
- Updated src/app/robots.ts to include language-specific sitemaps (de, en, sr)
- Local Lighthouse tests: Accessibility 92-100%, Best Practices 100%
- Performance/SEO verification requires manual testing via pagespeed.web.dev
- Added .auto-claude/ to .gitignore

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:34:37 +01:00
damjan_savicandClaude Opus 4.5 ab669a4dc9 auto-claude: subtask-2-3 - Add web-vitals reporting to layout for Core Web Vitals monitoring
- Create WebVitals client component in src/components/analytics/
- Track LCP, INP, CLS, FCP, and TTFB metrics
- Log metrics to console in development mode
- Send metrics to Google Analytics when available
- Add WebVitals component to root layout

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 00:19:42 +01:00
damjan_savicandClaude Opus 4.5 69f88a08d4 Fix: Replace ES2018 regex flag with compatible pattern
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:49:46 +01:00
damjan_savicandClaude Opus 4.5 f98476c3fd Fix: Handle undefined content in blog post rendering
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:48:44 +01:00
damjan_savicandClaude Opus 4.5 a7ee78d194 Fix: Make content optional in BlogPost type
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:47:42 +01:00
damjan_savicandClaude Opus 4.5 f16b1bcbfd Fix: Add optional chaining for post.tags
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 23:46:16 +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 a66f51b9a2 Fix: Hero Icons wie im Footer (lucide-react, nicht sticky)
- Linkedin und Github Icons aus lucide-react importiert
- fixed zu absolute geändert (nicht mehr sticky)
- Styling wie im Footer (text-zinc-400, hover-Effekte)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:50:10 +01:00
damjan_savicandClaude Opus 4.5 833dea46ae Fix: Hero Social Icons durch Text ersetzt (SVG Rendering-Problem)
- LinkedIn Icon durch "in" Text ersetzt
- GitHub Icon durch "</>" Text ersetzt
- Beide Icons haben bg-white/10 Hintergrund und hover-Effekte

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:48:53 +01:00
damjan_savicandClaude Opus 4.5 f6997ce629 Fix: Hero Social Links komplett neu implementiert
- SVGs direkt inline statt separate Komponenten
- Buttons mit bg-white/10 Hintergrund für Sichtbarkeit
- Fixed position statt absolute
- Runde Buttons mit Hover-Effekt

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:46:47 +01:00
damjan_savicandClaude Opus 4.5 bc68ea5c0c Fix: SVG Icons mit fill statt stroke
- Gefüllte SVG Icons (fill="#ffffff")
- Standard LinkedIn/GitHub/Mail Icon Pfade
- Sollte jetzt definitiv sichtbar sein

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:45:02 +01:00
damjan_savicandClaude Opus 4.5 195bc98791 Fix: SVG Icons mit expliziter weißer Stroke-Farbe
- stroke="currentColor" durch stroke="#ffffff" ersetzt
- Icons sind jetzt garantiert sichtbar

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:41:26 +01:00
damjan_savicandClaude Opus 4.5 cf74df445b Fix: Social Links unterhalb der Navigation positioniert
- Von top-4 auf top-20 verschoben (unter 64px Navigation)
- z-index auf 50 erhöht für Sichtbarkeit
- LinkedIn und GitHub Icons jetzt sichtbar

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:38:25 +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 fc4d4f3cc3 Fix: GitHub/LinkedIn Icons im Hero-Bereich sichtbar machen
- Inline SVG Icons statt lucide-react Import
- Icons werden sofort gerendert ohne Lazy-Loading-Verzögerung

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:30:46 +01:00
damjan_savicandClaude Opus 4.5 db6d969874 Performance: i18n Lazy Loading, Bundle-Größe halbiert
- i18n lädt EN/SR Übersetzungen nur bei Bedarf
- Hauptbundle von 356KB auf 179KB reduziert (~50%)
- Entfernt modulepreload für nicht-kritische Chunks
- Nur react-vendor und i18n-vendor werden vorgeladen

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 23:20:18 +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 c775f3bbb2 Performance: Hero-Text sofort sichtbar für bessere LCP
- Framer-motion Animationen aus Hero-Text entfernt
- Text-Elemente sind jetzt sofort sichtbar ohne opacity: 0
- Eliminiert 3.260ms Render-Verzögerung für LCP-Element
- Kontrast verbessert: text-zinc-500 -> text-zinc-400

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 22:23:38 +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 bda8e34355 Update: Alle Projektdaten auf 2025 aktualisiert
- Alle Portfolio-Projekte haben jetzt Datumsangaben aus 2025
- Betrifft DE, EN und SR Sprachversionen

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 19:20:23 +01:00
damjan_savicandClaude Opus 4.5 dd8164bdde Remove: RecRobot Projekt aus Portfolio entfernt
- RecRobot-Projektdateien (DE/EN/SR Locales, MDX) gelöscht
- RecRobot-Bilder entfernt
- Alle Referenzen in Portfolio-Index, Experience, About und Meta bereinigt
- README.md aktualisiert

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 19:13:29 +01:00
damjan_savicandClaude Opus 4.5 e46774a68e Feature: Cursor IDE Projekt vollständig integriert
- Übersetzungsdateien für DE, EN, SR erstellt
- Projekt in ProjectPage.tsx registriert
- Projekt in Portfolio-Index (de, en, sr) hinzugefügt

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 21:46:33 +01:00
damjan_savicandClaude Opus 4.5 582d719e42 Portfolio: Cursor IDE Projekt hinzugefügt
- Neue Projektseite für Cursor IDE Tutorial
- Video-Einbettung von tella.tv
- Cover-Bild hinzugefügt

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 18:31:52 +01:00
damjan_savicandClaude Opus 4.5 e3fb92b9fe Fix: AI Music Production MDX + Automated Ad Creatives Übersetzungen
- ai-music-production.mdx erstellt (Projekt war nicht in Portfolio sichtbar)
- automated-ad-creatives Import zu allen Portfolio-Index-Dateien hinzugefügt
- Behebt: Deutsches Fallback auf englischer Seite für Ad Creatives

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 02:27:00 +01:00
damjan_savicandClaude Opus 4.5 5f9a0226b7 Portfolio: AI Music Production (Suno AI) Projekt hinzugefügt
Neues Portfolio-Projekt für KI-gestützte Musikproduktion mit Suno AI:
- Übersetzungen in DE/EN/SR
- Video-Einbettung (Tella.tv)
- Workflow-Dokumentation für Songwriting mit KI

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-14 02:22:01 +01:00