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>
This commit is contained in:
2026-01-19 23:33:28 +01:00
co-authored by Claude Opus 4.5
parent b1ec7b4d61
commit 87c7ebc5e3
75 changed files with 10271 additions and 1314 deletions
+214 -71
View File
@@ -1,15 +1,15 @@
{
"meta": {
"site": {
"name": "Damjan Savic",
"title": "Damjan Savic | Fullstack-, IoT- & KI-Entwickler",
"subtitle": "Skalierbare Softwareloesungen mit IoT- und KI-Integration",
"description": "Als Fullstack-Entwickler aus Koeln spezialisiert sich Damjan Savic auf die Entwicklung skalierbarer Softwareloesungen mit IoT- und KI-Integration."
"name": "Damjan Savić",
"title": "Damjan Savić | Fullstack-, IoT- & KI-Entwickler",
"subtitle": "Skalierbare Softwarelösungen mit IoT- und KI-Integration",
"description": "Als Fullstack-Entwickler aus Köln spezialisiert sich Damjan Savić auf die Entwicklung skalierbarer Softwarelösungen mit IoT- und KI-Integration."
},
"author": {
"name": "Damjan Savic",
"name": "Damjan Savić",
"role": "Senior Fullstack Developer & Digital Solutions Consultant",
"location": "Koeln, Deutschland",
"location": "Köln, Deutschland",
"email": "info@damjan-savic.com"
},
"social": {
@@ -19,11 +19,11 @@
}
},
"common": {
"siteTitle": "Damjan Savic - Digital Solutions & JTL Integration",
"siteDescription": "Entwickler individueller Loesungen zur Automatisierung von Prozessen",
"siteTitle": "Damjan Savić - Digital Solutions & JTL Integration",
"siteDescription": "Entwickler individueller Lösungen zur Automatisierung von Prozessen",
"nav": {
"home": "Start",
"about": "Ueber mich",
"about": "Über mich",
"services": "Leistungen",
"portfolio": "Portfolio",
"blog": "Blog",
@@ -33,32 +33,33 @@
"readMore": "Weiterlesen",
"viewMore": "Mehr anzeigen",
"viewAll": "Alle anzeigen",
"back": "Zurueck",
"close": "Schliessen",
"back": "Zurück",
"close": "Schließen",
"submit": "Absenden",
"loading": "Laedt..."
"loading": "Lädt..."
},
"errors": {
"generic": "Ein Fehler ist aufgetreten",
"notFound": "Seite nicht gefunden",
"loading": "Fehler beim Laden",
"return": "Zurueck zur Startseite"
"return": "Zurück zur Startseite"
},
"cookies": {
"message": "Diese Website verwendet Cookies, um Ihr Browsing-Erlebnis zu verbessern. Die Daten werden nicht an Dritte weitergegeben.",
"accept": "Cookies akzeptieren",
"decline": "Ablehnen",
"necessary": "Notwendige Cookies",
"necessaryDesc": "Fuer grundlegende Funktionen der Website",
"necessaryDesc": "Für grundlegende Funktionen der Website",
"analytics": "Analyse-Cookies",
"analyticsDesc": "Fuer Analysen zur Verbesserung der Website",
"analyticsDesc": "Für Analysen zur Verbesserung der Website",
"learnMore": "Mehr erfahren"
}
},
"navigation": {
"main": {
"home": "Startseite",
"about": "Ueber mich",
"about": "Über mich",
"services": "Leistungen",
"portfolio": "Portfolio",
"blog": "Blog",
"contact": "Kontakt"
@@ -76,9 +77,9 @@
}
},
"mobile": {
"menu": "Menue",
"close": "Schliessen",
"open": "Menue oeffnen"
"menu": "Menü",
"close": "Schließen",
"open": "Menü öffnen"
}
},
"footer": {
@@ -86,14 +87,14 @@
"contact": {
"title": "Kontakt",
"email": "info@damjan-savic.com",
"location": "Koeln, Deutschland"
"location": "Köln, Deutschland"
},
"navigation": {
"title": "Navigation",
"links": {
"portfolio": "Portfolio",
"blog": "Blog",
"about": "Ueber mich",
"about": "Über mich",
"contact": "Kontakt"
}
},
@@ -113,22 +114,26 @@
"pages": {
"home": {
"hero": {
"title": "AI & AUTOMATION SPECIALIST",
"title": "FULLSTACK DEVELOPER",
"name": "DAMJAN SAVIC",
"subtitle": "KI-AGENTEN | VOICE AI | PROZESSAUTOMATISIERUNG",
"description": "Entwicklung von KI-Agenten und Automatisierungsloesungen. Von Voice-AI-Plattformen bis zu autonomen Web-Agenten.",
"description": "Entwicklung von KI-Agenten und Automatisierungslösungen. Von Voice-AI-Plattformen bis zu autonomen Web-Agenten.",
"currentRole": "Aktuell @ Everlast Consulting GmbH",
"cta": "KONTAKT AUFNEHMEN",
"navigation": {
"experience": "ERFAHRUNG",
"skills": "FAEHIGKEITEN",
"skills": "FÄHIGKEITEN",
"projects": "PROJEKTE",
"about": "UEBER MICH"
"about": "ÜBER MICH"
}
},
"gallery": {
"title": "Einblicke",
"description": "Professionelle Momente aus meinem Arbeitsalltag"
},
"about": {
"title": "Ueber Damjan Savic - Senior Fullstack Entwickler & Digital Solutions Consultant",
"content": "Damjan Savic ist AI & Automation Specialist mit Fokus auf Voice AI, autonome Agenten und Prozessautomatisierung. Mit einem M.A. in Software Development und ueber 7 Jahren Erfahrung in der Entwicklung digitaler Loesungen verbindet er technische Expertise mit strategischem Geschaeftsverstaendnis.",
"title": "Über Damjan Savić - Senior Fullstack Entwickler & Digital Solutions Consultant",
"content": "Damjan Savić ist AI & Automation Specialist mit Fokus auf Voice AI, autonome Agenten und Prozessautomatisierung. Mit einem M.A. in Software Development und über 7 Jahren Erfahrung in der Entwicklung digitaler Lösungen verbindet er technische Expertise mit strategischem Geschäftsverständnis.",
"buttons": {
"learnMore": "Mehr erfahren",
"downloadCV": "CV herunterladen"
@@ -143,7 +148,7 @@
"period": "12/2024 - HEUTE",
"highlights": [
"Entwicklung von KI-Agenten mit n8n und Zapier",
"Aufbau von Web-Scraping-Loesungen",
"Aufbau von Web-Scraping-Lösungen",
"Migration von Power Automate zu n8n"
]
},
@@ -154,7 +159,7 @@
"highlights": [
"Backend-Services auf dedizierten Servern",
"KI-Integration via Power Automate",
"RFID/IoT-Loesungen mit Zebra-Hardware"
"RFID/IoT-Lösungen mit Zebra-Hardware"
]
},
{
@@ -164,14 +169,13 @@
"highlights": [
"ApparelMagic & TradeByte Integration",
"MariaDB Middleware-Entwicklung",
"Windows Server Administration",
"Shopify-Optimierung"
]
}
]
},
"skills": {
"title": "Faehigkeiten",
"title": "Fähigkeiten",
"skills": [
{
"name": "AI & LLMs",
@@ -212,27 +216,158 @@
},
"about": {
"seo": {
"title": "Ueber Mich - Damjan Savic | Fullstack Entwickler & KI-Spezialist",
"description": "Erfahren Sie mehr ueber Damjan Savic - AI & Automation Specialist mit Fokus auf Voice AI, autonome Agenten und Prozessautomatisierung aus Koeln."
"title": "Über Mich - Damjan Savić | Fullstack Entwickler & KI-Spezialist",
"description": "Erfahren Sie mehr über Damjan Savić - AI & Automation Specialist mit Fokus auf Voice AI, autonome Agenten und Prozessautomatisierung aus Köln."
},
"hero": {
"aboutMe": "FULLSTACK ENTWICKLER KOELN - DAMJAN SAVIC",
"title": "Python Entwickler Koeln & React Developer - Damjan Savic",
"description": "Als Fullstack Entwickler Koeln ist Damjan Savic Ihr Freelance Developer fuer Python Automatisierung und React Entwicklung."
"aboutMe": "Über mich",
"title": "FULLSTACK ENTWICKLER KÖLN",
"description": "Als AI & Automation Specialist mit über 7 Jahren Erfahrung entwickle ich skalierbare Lösungen für komplexe Geschäftsprozesse. Mein Fokus liegt auf Voice AI, autonomen Agenten und Prozessautomatisierung.",
"expertise": {
"processAutomation": {
"title": "Prozessautomatisierung",
"description": "Automatisierung komplexer Geschäftsprozesse mit n8n, Zapier und Python"
},
"systemIntegration": {
"title": "System-Integration",
"description": "Nahtlose Integration von ERP, CRM und E-Commerce Systemen"
},
"customDevelopment": {
"title": "Individuelle Entwicklung",
"description": "Maßgeschneiderte Softwarelösungen mit Python, TypeScript und React"
}
},
"languages": {
"python": "Python",
"typescript": "TypeScript",
"react": "React",
"nextjs": "Next.js",
"nodejs": "Node.js",
"sql": "SQL"
}
},
"skills": {
"title": "Fähigkeiten & Expertise",
"description": "Meine technischen Fähigkeiten und Kompetenzen, die ich in über 7 Jahren Berufserfahrung erworben habe.",
"skillGroups": [
{
"category": "Backend & Automation",
"items": [
{ "name": "Python", "level": 90 },
{ "name": "n8n / Zapier", "level": 85 },
{ "name": "Node.js", "level": 80 },
{ "name": "FastAPI", "level": 85 }
]
},
{
"category": "Frontend",
"items": [
{ "name": "React", "level": 85 },
{ "name": "TypeScript", "level": 85 },
{ "name": "Next.js", "level": 80 },
{ "name": "Tailwind CSS", "level": 90 }
]
},
{
"category": "Datenbanken & Cloud",
"items": [
{ "name": "PostgreSQL", "level": 85 },
{ "name": "Supabase", "level": 80 },
{ "name": "Docker", "level": 75 },
{ "name": "Azure", "level": 70 }
]
}
]
},
"workflow": {
"title": "Mein Arbeitsablauf",
"description": "Strukturierter Prozess von der Anforderungsanalyse bis zur erfolgreichen Implementierung.",
"steps": [
{ "number": "01", "title": "Anforderungsanalyse & Beratung" },
{ "number": "02", "title": "Technische Konzeption & Architektur" },
{ "number": "03", "title": "Agile Entwicklung & Testing" },
{ "number": "04", "title": "Deployment & Integration" },
{ "number": "05", "title": "Monitoring & Optimierung" },
{ "number": "06", "title": "Support & Wartung" }
]
},
"journey": {
"title": "Mein Werdegang",
"subtitle": "Ausbildung, Sprachen und berufliche Erfahrung",
"education": {
"title": "Ausbildung",
"degrees": {
"masters": {
"degree": "M.A. Software Development",
"university": "FOM Hochschule für Ökonomie & Management",
"period": "2021 - 2023"
},
"bachelors": {
"degree": "B.Sc. Wirtschaftsinformatik",
"university": "FOM Hochschule für Ökonomie & Management",
"period": "2017 - 2021"
}
}
},
"languages": {
"title": "Sprachen",
"items": {
"german": { "name": "Deutsch", "level": "Muttersprache" },
"english": { "name": "Englisch", "level": "Fließend (C1)" },
"serbian": { "name": "Serbisch", "level": "Muttersprache" }
}
},
"work": {
"positions": [
{
"title": "Process Automation Specialist",
"period": "12/2024 - Heute",
"company": "Everlast Consulting GmbH",
"location": "Köln",
"highlights": [
"Entwicklung von KI-Agenten mit n8n und Zapier",
"Aufbau von Web-Scraping-Lösungen",
"Migration von Power Automate zu n8n"
]
},
{
"title": "Consultant Digital Solutions",
"period": "08/2023 - 11/2024",
"company": "Ritter Digital GmbH",
"location": "Köln",
"highlights": [
"Backend-Services auf dedizierten Servern",
"KI-Integration via Power Automate",
"RFID/IoT-Lösungen mit Zebra-Hardware"
]
},
{
"title": "ERP-Integrationsspezialist",
"period": "01/2023 - 08/2023",
"company": "Joyce & Girls",
"location": "Köln",
"highlights": [
"ApparelMagic & TradeByte Integration",
"MariaDB Middleware-Entwicklung",
"Shopify-Optimierung"
]
}
]
}
}
},
"contact": {
"breadcrumb": "KONTAKT",
"hero": {
"title": "Lassen Sie uns zusammenarbeiten",
"subtitle": "Sie haben ein Projekt im Sinn? Lassen Sie uns besprechen, wie wir Ihnen bei der Erreichung Ihrer Ziele helfen koennen."
"subtitle": "Sie haben ein Projekt im Sinn? Lassen Sie uns besprechen, wie wir Ihnen bei der Erreichung Ihrer Ziele helfen können."
},
"contactInfo": {
"title": "Kontaktinformationen",
"description": "Sie koennen mich ueber folgende Wege erreichen",
"description": "Sie können mich über folgende Wege erreichen",
"address": {
"label": "Buerostandort",
"value": "Rotdornallee, Koeln"
"label": "Bürostandort",
"value": "Rotdornallee, Köln"
},
"phone": {
"label": "Telefon",
@@ -241,14 +376,15 @@
"email": {
"label": "E-Mail",
"value": "info@damjan-savic.com"
}
},
"availabilityNote": "Ich antworte in der Regel innerhalb von 24 Stunden."
},
"contactForm": {
"title": "Kontaktieren Sie mich",
"description": "Haben Sie Fragen oder moechten Sie zusammenarbeiten? Schreiben Sie mir eine Nachricht.",
"description": "Haben Sie Fragen oder möchten Sie zusammenarbeiten? Schreiben Sie mir eine Nachricht.",
"name": {
"label": "Name",
"placeholder": "Ihr vollstaendiger Name"
"placeholder": "Ihr vollständiger Name"
},
"email": {
"label": "E-Mail",
@@ -259,44 +395,44 @@
"placeholder": "Ihre Nachricht an mich..."
},
"submit": "Nachricht senden",
"successMessage": "Vielen Dank fuer Ihre Nachricht! Ich werde mich so schnell wie moeglich bei Ihnen melden.",
"successMessage": "Vielen Dank für Ihre Nachricht! Ich werde mich so schnell wie möglich bei Ihnen melden.",
"errorMessage": "Entschuldigung, beim Senden Ihrer Nachricht ist ein Fehler aufgetreten."
}
},
"privacy": {
"seo": {
"title": "Datenschutzerklaerung",
"description": "Datenschutzerklaerung fuer die Portfolio-Website von Damjan Savic"
"title": "Datenschutzerklärung",
"description": "Datenschutzerklärung für die Portfolio-Website von Damjan Savić"
},
"content": {
"title": "Datenschutzerklaerung",
"lastUpdated": "Zuletzt aktualisiert: 10. Maerz 2024"
"title": "Datenschutzerklärung",
"lastUpdated": "Zuletzt aktualisiert: 10. März 2024"
}
},
"terms": {
"seo": {
"title": "Allgemeine Geschaeftsbedingungen",
"description": "Allgemeine Geschaeftsbedingungen fuer die Portfolio-Website von Damjan Savic"
"title": "Allgemeine Geschäftsbedingungen",
"description": "Allgemeine Geschäftsbedingungen für die Portfolio-Website von Damjan Savić"
},
"content": {
"title": "Allgemeine Geschaeftsbedingungen",
"lastUpdated": "Zuletzt aktualisiert: 10. Maerz 2024"
"title": "Allgemeine Geschäftsbedingungen",
"lastUpdated": "Zuletzt aktualisiert: 10. März 2024"
}
},
"notfound": {
"title": "Seite nicht gefunden",
"description": "Die angeforderte Seite existiert nicht oder wurde verschoben.",
"backHome": "Zurueck zur Startseite"
"backHome": "Zurück zur Startseite"
}
},
"portfolio": {
"seo": {
"title": "Portfolio - Fullstack Entwickler Koeln Damjan Savic | Python & React Projekte",
"description": "Portfolio von Freelance Developer Koeln Damjan Savic: Python Automatisierung, OLLAMA KI Integration, ERP System Integration, E-Commerce Entwicklung."
"title": "Portfolio - Fullstack Entwickler Köln Damjan Savić | Python & React Projekte",
"description": "Portfolio von Freelance Developer Köln Damjan Savić: Python Automatisierung, OLLAMA KI Integration, ERP System Integration, E-Commerce Entwicklung."
},
"sections": {
"title": "Software Entwickler Koeln - Portfolio Damjan Savic",
"subtitle": "Python Entwickler Koeln & React Developer - Erfolgreiche Projekte"
"title": "Software Entwickler Köln - Portfolio Damjan Savić",
"subtitle": "Python Entwickler Köln & React Developer - Erfolgreiche Projekte"
},
"filters": {
"all": "Alle",
@@ -312,39 +448,46 @@
"loading": "Projekte werden geladen...",
"noProjects": "Keine Projekte gefunden",
"viewProject": "Projekt ansehen",
"backToPortfolio": "Zurueck zum Portfolio",
"backToPortfolio": "Zurück zum Portfolio",
"technologies": "Technologien"
}
},
"blog": {
"meta": {
"title": "Blog von Damjan Savic - JTL Integration & Digital Solutions",
"description": "Insights und Best Practices von Damjan Savic zu JTL-WaWi, E-Commerce und digitaler Transformation.",
"title": "Blog von Damjan Savić - JTL Integration & Digital Solutions",
"description": "Insights und Best Practices von Damjan Savić zu JTL-WaWi, E-Commerce und digitaler Transformation.",
"header": {
"title": "Insights & Best Practices von Damjan Savic",
"subtitle": "Damjan Savic teilt Insights und Best Practices zu JTL-WaWi, E-Commerce und digitaler Transformation"
"title": "Insights & Best Practices von Damjan Savić",
"subtitle": "Damjan Savić teilt Insights und Best Practices zu JTL-WaWi, E-Commerce und digitaler Transformation"
}
},
"ui": {
"readMore": "Weiterlesen",
"loading": {
"posts": "Blogbeitraege werden geladen...",
"posts": "Blogbeiträge werden geladen...",
"post": "Blogbeitrag wird geladen..."
},
"errors": {
"posts": "Fehler beim Laden der Blogbeitraege",
"posts": "Fehler beim Laden der Blogbeiträge",
"post": "Der gesuchte Blogbeitrag existiert nicht oder wurde verschoben."
},
"backToBlog": "Zurueck zum Blog",
"publishedOn": "Veroeffentlicht am",
"backToBlog": "Zurück zum Blog",
"publishedOn": "Veröffentlicht am",
"category": "Kategorie",
"tags": "Tags"
"tags": "Tags",
"pagination": {
"previous": "Zurück",
"next": "Weiter",
"page": "Seite",
"of": "von",
"showing": "Zeige {start}-{end} von {total} Artikeln"
}
}
},
"login": {
"seo": {
"title": "Login",
"description": "Anmelden fuer Zugriff auf das Dashboard"
"description": "Anmelden für Zugriff auf das Dashboard"
},
"header": {
"title": "Im Dashboard anmelden"
@@ -360,11 +503,11 @@
},
"submit": {
"default": "Anmelden",
"loading": "Anmeldung laeuft..."
"loading": "Anmeldung läuft..."
},
"errors": {
"default": "Ein Fehler ist aufgetreten",
"invalidCredentials": "Ungueltige Anmeldedaten"
"invalidCredentials": "Ungültige Anmeldedaten"
}
},
"security": {
@@ -399,7 +542,7 @@
"columns": {
"path": "Pfad",
"views": "Aufrufe",
"change": "Aenderung"
"change": "Änderung"
}
},
"status": {