Update: Sitemap, Dependencies und README
- Sitemap aktualisiert mit neuen Portfolio-Projekten - package-lock.json aktualisiert - README.md hinzugefügt 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# Portfolio - Damjan Savić
|
||||
|
||||
Personal portfolio website showcasing my work as an **AI & Automation Specialist** based in Germany.
|
||||
|
||||
**Live:** [damjan-savic.com](https://damjan-savic.com)
|
||||
|
||||
## Current Role
|
||||
|
||||
**Process Automation Specialist** @ Everlast Consulting GmbH (since Dec 2024)
|
||||
- Developing AI agents with n8n and Zapier
|
||||
- Building web scraping solutions
|
||||
- RecroBot Voice Interview Platform
|
||||
- Migration from Power Automate to n8n
|
||||
|
||||
## Tech Stack
|
||||
|
||||
### Frontend
|
||||
- **React 18** - UI Framework with Suspense & Lazy Loading
|
||||
- **TypeScript** - Type-safe development
|
||||
- **Vite** - Build tool & dev server
|
||||
- **Tailwind CSS** - Utility-first styling with custom design tokens
|
||||
- **Framer Motion** - Animations & page transitions
|
||||
|
||||
### Content & Internationalization
|
||||
- **MDX** - Markdown + JSX for blog posts and project pages
|
||||
- **i18next** - Multi-language support (German, English, Serbian)
|
||||
- **react-helmet-async** - SEO meta tags & structured data
|
||||
|
||||
### Backend & Services
|
||||
- **Supabase** - Database & Authentication
|
||||
- **Google Analytics 4** - Privacy-compliant analytics with cookie consent
|
||||
|
||||
### PWA & Performance
|
||||
- **Workbox** - Service Worker & caching strategies
|
||||
- **vite-plugin-pwa** - Progressive Web App functionality
|
||||
- **Code Splitting** - Vendor chunks for React, MDX, i18n, UI libraries
|
||||
|
||||
### Testing & Quality
|
||||
- **Vitest** - Unit testing
|
||||
- **Testing Library** - React component testing
|
||||
- **ESLint** - Code linting
|
||||
|
||||
## Featured Project: RecroBot
|
||||
|
||||
**AI Voice Interview Platform** - [recrobot.site](https://recrobot.site)
|
||||
|
||||
Production Voice-AI platform for automated HR interviews built with:
|
||||
- TypeScript / Next.js 14
|
||||
- Vapi Voice AI
|
||||
- WebSocket for real-time communication
|
||||
- Supabase (PostgreSQL)
|
||||
|
||||
**Demo:** Enter "AI-Manager" as position to test
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-language support** - DE/EN/SR with automatic language detection
|
||||
- **Progressive Web App** - Installable, offline-capable
|
||||
- **SEO optimized** - Structured data (Schema.org), sitemap generation
|
||||
- **Responsive Design** - Mobile-first approach
|
||||
- **Cookie Consent** - GDPR-compliant with granular category control
|
||||
- **Blog System** - MDX-based with frontmatter support
|
||||
- **Portfolio Gallery** - Dynamic project showcase with filtering
|
||||
- **Contact Form** - Integrated with backend services
|
||||
|
||||
## Pages
|
||||
|
||||
| Route | Description |
|
||||
|-------|-------------|
|
||||
| `/` | Homepage with Hero, Experience, Skills, Projects, FAQ |
|
||||
| `/about` | Detailed profile, skills matrix, workflow, journey |
|
||||
| `/portfolio` | Project gallery with category filters |
|
||||
| `/portfolio/:slug` | Individual project detail pages |
|
||||
| `/blog` | Blog post listing |
|
||||
| `/blog/:slug` | Individual blog posts |
|
||||
| `/contact` | Contact form & info |
|
||||
| `/privacy` | Privacy policy |
|
||||
| `/terms` | Terms of service |
|
||||
| `/imprint` | Legal imprint |
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
src/
|
||||
├── components/ # Reusable UI components
|
||||
├── hooks/ # Custom React hooks
|
||||
├── i18n/ # Translations (de, en, sr)
|
||||
├── pages/ # Page components
|
||||
│ ├── home/
|
||||
│ ├── about/
|
||||
│ ├── portfolio/
|
||||
│ │ └── projects/ # MDX project files
|
||||
│ ├── blog/
|
||||
│ └── contact/
|
||||
├── styles/ # Global styles
|
||||
├── utils/ # Helper functions
|
||||
├── routes.tsx # Route definitions
|
||||
└── App.tsx # Root component
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Start dev server
|
||||
npm run dev
|
||||
|
||||
# Build for production
|
||||
npm run build
|
||||
|
||||
# Run tests
|
||||
npm test
|
||||
|
||||
# Preview production build
|
||||
npm run preview
|
||||
```
|
||||
|
||||
## Key Technologies Used
|
||||
|
||||
**Languages:** TypeScript, Python, MDX
|
||||
|
||||
**AI & Automation:** GPT-4 API, Claude API, Vapi Voice AI, n8n, Zapier
|
||||
|
||||
**Frontend:** React, Next.js, Tailwind CSS, Framer Motion, Lucide Icons
|
||||
|
||||
**Backend:** Supabase (PostgreSQL, Auth), WebSocket
|
||||
|
||||
**Build Tools:** Vite, PostCSS, Terser
|
||||
|
||||
**Testing:** Vitest, Testing Library, JSDOM
|
||||
|
||||
**DevOps:** ESLint, Git, PWA/Service Workers, Vercel, Docker
|
||||
|
||||
## Contact
|
||||
|
||||
- **Email:** info@damjan-savic.com
|
||||
- **Phone:** +49 175 695 0979
|
||||
- **LinkedIn:** [linkedin.com/in/damjan-savic](https://www.linkedin.com/in/damjan-savi%C4%87-720288127/)
|
||||
|
||||
---
|
||||
|
||||
Built with React + TypeScript + Vite
|
||||
Generated
+570
@@ -64,6 +64,7 @@
|
||||
"globals": "^15.9.0",
|
||||
"jsdom": "^24.0.0",
|
||||
"postcss": "^8.4.35",
|
||||
"sharp": "^0.34.3",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"typescript": "^5.5.3",
|
||||
"typescript-eslint": "^8.3.0",
|
||||
@@ -1780,6 +1781,17 @@
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/runtime": {
|
||||
"version": "1.7.1",
|
||||
"resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.7.1.tgz",
|
||||
"integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.21.5",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
|
||||
@@ -2391,6 +2403,496 @@
|
||||
"url": "https://github.com/sponsors/nzakas"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/colour": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/@img/colour/-/colour-1.0.0.tgz",
|
||||
"integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-darwin-arm64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz",
|
||||
"integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-darwin-arm64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-darwin-x64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz",
|
||||
"integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-darwin-x64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-darwin-arm64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz",
|
||||
"integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-darwin-x64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz",
|
||||
"integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linux-arm": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz",
|
||||
"integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linux-arm64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz",
|
||||
"integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linux-ppc64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz",
|
||||
"integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linux-riscv64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz",
|
||||
"integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linux-s390x": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz",
|
||||
"integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linux-x64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz",
|
||||
"integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz",
|
||||
"integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz",
|
||||
"integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linux-arm": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz",
|
||||
"integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linux-arm": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linux-arm64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz",
|
||||
"integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linux-arm64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linux-ppc64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz",
|
||||
"integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linux-ppc64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linux-riscv64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz",
|
||||
"integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linux-riscv64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linux-s390x": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz",
|
||||
"integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linux-s390x": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linux-x64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz",
|
||||
"integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linux-x64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linuxmusl-arm64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz",
|
||||
"integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linuxmusl-arm64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-linuxmusl-x64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz",
|
||||
"integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-libvips-linuxmusl-x64": "1.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-wasm32": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz",
|
||||
"integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==",
|
||||
"cpu": [
|
||||
"wasm32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@emnapi/runtime": "^1.7.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-win32-arm64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz",
|
||||
"integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-win32-ia32": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz",
|
||||
"integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@img/sharp-win32-x64": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz",
|
||||
"integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/@isaacs/cliui": {
|
||||
"version": "8.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
|
||||
@@ -5004,6 +5506,16 @@
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/detect-libc": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz",
|
||||
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/devlop": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
|
||||
@@ -10276,6 +10788,64 @@
|
||||
"integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/sharp": {
|
||||
"version": "0.34.5",
|
||||
"resolved": "https://registry.npmmirror.com/sharp/-/sharp-0.34.5.tgz",
|
||||
"integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@img/colour": "^1.0.0",
|
||||
"detect-libc": "^2.1.2",
|
||||
"semver": "^7.7.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.17.0 || ^20.3.0 || >=21.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@img/sharp-darwin-arm64": "0.34.5",
|
||||
"@img/sharp-darwin-x64": "0.34.5",
|
||||
"@img/sharp-libvips-darwin-arm64": "1.2.4",
|
||||
"@img/sharp-libvips-darwin-x64": "1.2.4",
|
||||
"@img/sharp-libvips-linux-arm": "1.2.4",
|
||||
"@img/sharp-libvips-linux-arm64": "1.2.4",
|
||||
"@img/sharp-libvips-linux-ppc64": "1.2.4",
|
||||
"@img/sharp-libvips-linux-riscv64": "1.2.4",
|
||||
"@img/sharp-libvips-linux-s390x": "1.2.4",
|
||||
"@img/sharp-libvips-linux-x64": "1.2.4",
|
||||
"@img/sharp-libvips-linuxmusl-arm64": "1.2.4",
|
||||
"@img/sharp-libvips-linuxmusl-x64": "1.2.4",
|
||||
"@img/sharp-linux-arm": "0.34.5",
|
||||
"@img/sharp-linux-arm64": "0.34.5",
|
||||
"@img/sharp-linux-ppc64": "0.34.5",
|
||||
"@img/sharp-linux-riscv64": "0.34.5",
|
||||
"@img/sharp-linux-s390x": "0.34.5",
|
||||
"@img/sharp-linux-x64": "0.34.5",
|
||||
"@img/sharp-linuxmusl-arm64": "0.34.5",
|
||||
"@img/sharp-linuxmusl-x64": "0.34.5",
|
||||
"@img/sharp-wasm32": "0.34.5",
|
||||
"@img/sharp-win32-arm64": "0.34.5",
|
||||
"@img/sharp-win32-ia32": "0.34.5",
|
||||
"@img/sharp-win32-x64": "0.34.5"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp/node_modules/semver": {
|
||||
"version": "7.7.3",
|
||||
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz",
|
||||
"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
|
||||
+54
-54
@@ -3,7 +3,7 @@
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/"/>
|
||||
@@ -12,7 +12,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/"/>
|
||||
@@ -21,7 +21,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/"/>
|
||||
@@ -30,7 +30,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/about</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/about"/>
|
||||
@@ -39,7 +39,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/about</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/about"/>
|
||||
@@ -48,7 +48,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/about</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/about"/>
|
||||
@@ -57,7 +57,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio"/>
|
||||
@@ -66,7 +66,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio"/>
|
||||
@@ -75,7 +75,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio"/>
|
||||
@@ -84,7 +84,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/blog</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/blog"/>
|
||||
@@ -93,7 +93,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/blog</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog"/>
|
||||
@@ -102,7 +102,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/blog</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog"/>
|
||||
@@ -111,7 +111,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/contact</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/contact"/>
|
||||
@@ -120,7 +120,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/contact</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/contact"/>
|
||||
@@ -129,7 +129,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/contact</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/contact"/>
|
||||
@@ -138,7 +138,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/privacy</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/privacy"/>
|
||||
@@ -147,7 +147,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/privacy</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/privacy"/>
|
||||
@@ -156,7 +156,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/privacy</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/privacy"/>
|
||||
@@ -165,7 +165,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/terms</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/terms"/>
|
||||
@@ -174,7 +174,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/terms</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/terms"/>
|
||||
@@ -183,7 +183,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/terms</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/terms"/>
|
||||
@@ -192,7 +192,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/blog/erp-integration-breuninger</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/blog/erp-integration-breuninger"/>
|
||||
@@ -201,7 +201,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/blog/erp-integration-breuninger</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog/erp-integration-breuninger"/>
|
||||
@@ -210,7 +210,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/blog/erp-integration-breuninger</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog/erp-integration-breuninger"/>
|
||||
@@ -219,7 +219,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/blog/fullstack-development-timetracking</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/blog/fullstack-development-timetracking"/>
|
||||
@@ -228,7 +228,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/blog/fullstack-development-timetracking</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog/fullstack-development-timetracking"/>
|
||||
@@ -237,7 +237,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/blog/fullstack-development-timetracking</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog/fullstack-development-timetracking"/>
|
||||
@@ -246,7 +246,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/blog/rfid-automation</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/blog/rfid-automation"/>
|
||||
@@ -255,7 +255,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/blog/rfid-automation</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog/rfid-automation"/>
|
||||
@@ -264,7 +264,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/blog/rfid-automation</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/blog/rfid-automation"/>
|
||||
@@ -273,7 +273,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/ai-data-reader</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/ai-data-reader"/>
|
||||
@@ -282,7 +282,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/ai-data-reader</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/ai-data-reader"/>
|
||||
@@ -291,7 +291,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/ai-data-reader</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/ai-data-reader"/>
|
||||
@@ -300,7 +300,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/bi-vision</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/bi-vision"/>
|
||||
@@ -309,7 +309,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/bi-vision</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/bi-vision"/>
|
||||
@@ -318,7 +318,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/bi-vision</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/bi-vision"/>
|
||||
@@ -327,7 +327,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/business-intelligence-ai</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/business-intelligence-ai"/>
|
||||
@@ -336,7 +336,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/business-intelligence-ai</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/business-intelligence-ai"/>
|
||||
@@ -345,7 +345,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/business-intelligence-ai</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/business-intelligence-ai"/>
|
||||
@@ -354,7 +354,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/claude-personal-assistant</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/claude-personal-assistant"/>
|
||||
@@ -363,7 +363,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/claude-personal-assistant</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/claude-personal-assistant"/>
|
||||
@@ -372,7 +372,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/claude-personal-assistant</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/claude-personal-assistant"/>
|
||||
@@ -381,7 +381,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/e-commerce-integration</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/e-commerce-integration"/>
|
||||
@@ -390,7 +390,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/e-commerce-integration</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/e-commerce-integration"/>
|
||||
@@ -399,7 +399,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/e-commerce-integration</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/e-commerce-integration"/>
|
||||
@@ -408,7 +408,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/local-llm-training</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/local-llm-training"/>
|
||||
@@ -417,7 +417,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/local-llm-training</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/local-llm-training"/>
|
||||
@@ -426,7 +426,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/local-llm-training</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/local-llm-training"/>
|
||||
@@ -435,7 +435,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/rfid-automation</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/rfid-automation"/>
|
||||
@@ -444,7 +444,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/rfid-automation</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/rfid-automation"/>
|
||||
@@ -453,7 +453,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/rfid-automation</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/rfid-automation"/>
|
||||
@@ -462,7 +462,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/portfolio/timetracking-software</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://damjan-savic.com/en/portfolio/timetracking-software"/>
|
||||
@@ -471,7 +471,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/en/portfolio/timetracking-software</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/timetracking-software"/>
|
||||
@@ -480,7 +480,7 @@
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://damjan-savic.com/sr/portfolio/timetracking-software</loc>
|
||||
<lastmod>2025-12-13</lastmod>
|
||||
<lastmod>2025-12-14</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
<xhtml:link rel="alternate" hreflang="de" href="https://damjan-savic.com/portfolio/timetracking-software"/>
|
||||
|
||||
Reference in New Issue
Block a user