| Server IP : 35.80.110.71 / Your IP : 216.73.216.221 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/philiprehberger-nextjs/.next/static/chunks/ |
Upload File : |
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[878],{598:(e,o,r)=>{r.r(o),r.d(o,{default:()=>c});var t=r(5155),n=r(1130);function c(e){let{children:o,delay:r=0,className:c=""}=e;return(0,t.jsx)(n.P.div,{initial:{opacity:0,y:40},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-100px"},transition:{duration:.5,delay:r,ease:"easeOut"},className:c,children:o})}},3919:(e,o,r)=>{r.d(o,{TechMarquee:()=>f});var t=r(5155),n=r(2115),c=r(457),i=r(898),l=r(3828),a=r(9637);let s={React:{icon:c.GWR,color:"#61DAFB"},"React Native":{icon:c.GWR,color:"#61DAFB"},"Next.js":{icon:c.wlC,color:"#000000"},TypeScript:{icon:c.cyb,color:"#3178C6"},JavaScript:{icon:c.AeH,color:"#F7DF1E"},"Node.js":{icon:c.h$$,color:"#5FA04E"},PHP:{icon:c.XeU,color:"#777BB4"},Laravel:{icon:c.kuL,color:"#FF2D20"},"Laravel Passport":{icon:c.kuL,color:"#FF2D20"},"Laravel Sanctum":{icon:c.kuL,color:"#FF2D20"},Angular:{icon:c.h47,color:"#0F0F11"},"Vue.js":{icon:c.Zmg,color:"#4FC08D"},"Alpine.js":{icon:c.Krq,color:"#8BC0D0"},Python:{icon:c.ptC,color:"#3776AB"},Go:{icon:c.ZRx,color:"#00ADD8"},"Express.js":{icon:c.t5I,color:"#000000"},"Tailwind CSS":{icon:c.IR8,color:"#06B6D4"},"Sass / SCSS":{icon:c.$Ue,color:"#CC6699"},"Styled Components":{icon:c.WJ9,color:"#DB7093"},PostgreSQL:{icon:c.$Wy,color:"#4169E1"},MySQL:{icon:c.z33,color:"#4479A1"},MongoDB:{icon:c.$pK,color:"#47A248"},Redis:{icon:c.mIs,color:"#FF4438"},DynamoDB:{icon:i.x0_,color:"#4053D6"},SQLite:{icon:c.H$_,color:"#003B57"},MariaDB:{icon:c.$On,color:"#003545"},Elasticsearch:{icon:c.Uhn,color:"#005571"},Docker:{icon:c.tih,color:"#2496ED"},AWS:{icon:i.x0_,color:"#FF9900"},"AWS API Gateway":{icon:l.vwk,color:"#FF9900"},"AWS CloudFront":{icon:l.gCm,color:"#FF9900"},"AWS CloudWatch":{icon:l.tmj,color:"#FF9900"},"AWS RD":{icon:l.nBS,color:"#FF9900"},"AWS S3":{icon:l.qZY,color:"#FF9900"},"AWS ECS":{icon:l.vwk,color:"#FF9900"},"Amazone ECS":{icon:l.vwk,color:"#FF9900"},Kubernetes:{icon:c.tev,color:"#326CE5"},Terraform:{icon:c.PyV,color:"#844FBA"},Ansible:{icon:c.Xsd,color:"#EE0000"},"Google Cloud":{icon:c.lpS,color:"#4285F4"},Linode:{icon:a.ir4,color:"#00A95C"},Apache:{icon:c.PAE,color:"#D22128"},Git:{icon:c.rYG,color:"#F05032"},"GitHub Actions":{icon:c.R6r,color:"#2088FF"},Vercel:{icon:c.ogR,color:"#000000"},Jest:{icon:c.tT5,color:"#C21325"},Playwright:{icon:a.bNs,color:"#2EAD33"},PHPUnit:{icon:c.XeU,color:"#777BB4"},Pest:{icon:c.XeU,color:"#777BB4"},GraphQL:{icon:c.S9M,color:"#E10098"},Prisma:{icon:c.bzD,color:"#2D3748"},Redux:{icon:c.fpf,color:"#764ABC"},Kafka:{icon:c.rmh,color:"#231F20"},Prometheus:{icon:c.zPG,color:"#E6522C"},Sentry:{icon:c.yB7,color:"#362D59"},"Chart.js":{icon:c.x6n,color:"#FF6384"},"Framer Motion":{icon:c.ieP,color:"#0055FF"},Storybook:{icon:c.dLL,color:"#FF4785"},Vite:{icon:c.zUm,color:"#646CFF"},Webpack:{icon:c.Kkd,color:"#8DD6F9"},Turbopack:{icon:c.ogR,color:"#000000"},Swagger:{icon:c.B5b,color:"#85EA2D"},Zod:{icon:c.Kh4,color:"#3E67B1"},WebAssembly:{icon:c.oTy,color:"#654FF0"},Auth0:{icon:c.vTi,color:"#EB5424"},"OpenAI API":{icon:c.pz8,color:"#412991"},OpenTelemetry:{icon:c.gRq,color:"#000000"},OpenAPI:{icon:c.hgj,color:"#6BA539"},gRPC:{icon:c.i$7,color:"#0091BD"},"IDS/IPS":{icon:a.nfp,color:"#6366F1"},"ISO 27001":{icon:a.nfp,color:"#6366F1"},NIST:{icon:a.nfp,color:"#6366F1"},SIEM:{icon:a.nfp,color:"#6366F1"},SAML:{icon:a.tWn,color:"#6366F1"},JWT:{icon:a.tWn,color:"#FB015B"},OAuth:{icon:a.tWn,color:"#3C3C3D"},"OpenID Connect":{icon:a.tWn,color:"#F78C40"},CDN:{icon:a.ir4,color:"#3B82F6"},"REST APIs":{icon:a.bNs,color:"#3B82F6"},WebSockets:{icon:a.ir4,color:"#3B82F6"},Webhooks:{icon:a.ir4,color:"#3B82F6"},"Progressive Web Apps":{icon:a.ir4,color:"#5A0FC8"},"Service Workers":{icon:a.rDf,color:"#3B82F6"},SEO:{icon:a.ir4,color:"#4285F4"},JSON:{icon:a.bNs,color:"#000000"},SQL:{icon:a.o8d,color:"#4479A1"},CRM:{icon:a.o8d,color:"#FF6B35"},"CI/CD":{icon:a.pEQ,color:"#2088FF"}},u={icon:a.bNs,color:"#6B7280"};function d(e){let{name:o,className:r="h-4 w-4",colored:n=!1}=e,c=s[o]||u,i=c.icon;return(0,t.jsx)(i,{className:r,style:n?{color:c.color}:void 0,"aria-hidden":"true"})}let A=["AWS API Gateway","AWS CloudFront","AWS CloudWatch","AWS DynamoDB","AWS ECS","AWS RDS","AWS S3","AWS","Alpine.js","Angular","Ansible","Apache","Auth0","CDN","CI/CD","CRM","Chart.js","Docker","Elasticsearch","Express.js","Framer Motion","Git","GitHub Actions","Go","Google Cloud","GraphQL","IDS/IPS","ISO 27001","JSON","JWT","JavaScript","Jest","Kafka","Kubernetes","Laravel Passport","Laravel Sanctum","Laravel","Linode","MariaDB","MongoDB","MySQL","NIST","Next.js","Node.js","OAuth","OpenAI API","OpenAPI","OpenID Connect","OpenTelemetry","PHP","PHPUnit","Pest","Playwright","PostgreSQL","Prisma","Progressive Web Apps","Prometheus","Python","REST APIs","React Native","React","Redis","Redux","SAML","SEO","SIEM","SQL","SQLite","Sass / SCSS","Sentry","Service Workers","Storybook","Styled Components","Swagger","Tailwind CSS","Terraform","Turbopack","TypeScript","Vercel","Vite","Vue.js","WebAssembly","WebSockets","Webhooks","Webpack","Zod","gRPC"];function f(){let[e,o]=(0,n.useState)(A);return(0,n.useEffect)(()=>{o(function(e){let o=[...e];for(let e=o.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1));[o[e],o[r]]=[o[r],o[e]]}return o}(A))},[]),(0,t.jsx)("div",{className:"relative overflow-hidden py-6 mt-4",children:(0,t.jsx)("div",{className:"flex animate-marquee whitespace-nowrap",children:[...e,...e].map((e,o)=>(0,t.jsxs)("span",{className:"mx-4 inline-flex items-center gap-2 bg-transparent px-4 py-1.5 text-sm font-medium text-gray-700 dark:text-gray-300",children:[(0,t.jsx)(d,{name:e,colored:!0,className:"h-4 w-4 shrink-0"}),e]},o))})})}},4652:(e,o,r)=>{Object.defineProperty(o,"__esModule",{value:!0}),!function(e,o){for(var r in o)Object.defineProperty(e,r,{enumerable:!0,get:o[r]})}(o,{default:function(){return a},getImageProps:function(){return l}});let t=r(8140),n=r(5040),c=r(1356),i=t._(r(1124));function l(e){let{props:o}=(0,n.getImgProps)(e,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(o))void 0===r&&delete o[e];return{props:o}}let a=c.Image},6724:(e,o,r)=>{r.d(o,{k5:()=>u});var t=r(2115),n={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},c=t.createContext&&t.createContext(n),i=["attr","size","title"];function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var o=1;o<arguments.length;o++){var r=arguments[o];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(null,arguments)}function a(e,o){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);o&&(t=t.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,t)}return r}function s(e){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?a(Object(r),!0).forEach(function(o){var t,n,c;t=e,n=o,c=r[o],(n=function(e){var o=function(e,o){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,o||"default");if("object"!=typeof t)return t;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===o?String:Number)(e)}(e,"string");return"symbol"==typeof o?o:o+""}(n))in t?Object.defineProperty(t,n,{value:c,enumerable:!0,configurable:!0,writable:!0}):t[n]=c}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(r,o))})}return e}function u(e){return o=>t.createElement(d,l({attr:s({},e.attr)},o),function e(o){return o&&o.map((o,r)=>t.createElement(o.tag,s({key:r},o.attr),e(o.child)))}(e.child))}function d(e){var o=o=>{var r,{attr:n,size:c,title:a}=e,u=function(e,o){if(null==e)return{};var r,t,n=function(e,o){if(null==e)return{};var r={};for(var t in e)if(({}).hasOwnProperty.call(e,t)){if(-1!==o.indexOf(t))continue;r[t]=e[t]}return r}(e,o);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(t=0;t<c.length;t++)r=c[t],-1===o.indexOf(r)&&({}).propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(e,i),d=c||o.size||"1em";return o.className&&(r=o.className),e.className&&(r=(r?r+" ":"")+e.className),t.createElement("svg",l({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},o.attr,n,u,{className:r,style:s(s({color:e.color||o.color},o.style),e.style),height:d,width:d,xmlns:"http://www.w3.org/2000/svg"}),a&&t.createElement("title",null,a),e.children)};return void 0!==c?t.createElement(c.Consumer,null,e=>o(e)):o(n)}},8590:(e,o,r)=>{r.d(o,{ProjectCard:()=>u});var t=r(5155),n=r(2115),c=r(2619),i=r.n(c),l=r(4652),a=r.n(l);let s=function(){for(var e,o,r=0,t="",n=arguments.length;r<n;r++)(e=arguments[r])&&(o=function e(o){var r,t,n="";if("string"==typeof o||"number"==typeof o)n+=o;else if("object"==typeof o)if(Array.isArray(o)){var c=o.length;for(r=0;r<c;r++)o[r]&&(t=e(o[r]))&&(n&&(n+=" "),n+=t)}else for(t in o)o[t]&&(n&&(n+=" "),n+=t);return n}(e))&&(t&&(t+=" "),t+=o);return t};function u(e){let{title:o,description:r,technologies:c,imageUrl:l,link:u,className:d}=e,[A,f]=(0,n.useState)(!1),p=s("group block overflow-hidden rounded-xl","bg-white dark:bg-gray-900","border border-gray-200 dark:border-gray-800","transition-all hover:shadow-lg hover:border-gray-300 dark:hover:border-gray-700",d),m=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"relative aspect-video overflow-hidden bg-gray-100 dark:bg-gray-800",children:l?(0,t.jsx)(a(),{src:l,alt:o,fill:!0,sizes:"(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw",className:s("object-cover transition-all duration-500",A?"scale-100 blur-0 group-hover:scale-105":"scale-105 blur-sm"),placeholder:"blur",blurDataURL:"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMCwsLCgwMDQwMDA0MDAsMDBEQEBEQFBQUFBQUFBQUFBQUFBT/wAALCAAIAAoBAREA/8QAFgABAQEAAAAAAAAAAAAAAAAABgAH/8QAIhAAAQMEAgIDAAAAAAAAAAAAAQIDBAUGESEAEgcxQWFx/9oACAEBAAA/AN8hT5dVdUFT1hwrOEqOVYHhJ+vnPsfepPLkC3LZtSJR6KHEtuqCnH3PW4o+8a/MfX4yB0qnz/9k=",onLoad:()=>f(!0)}):(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,t.jsx)(a(),{src:"/images/placeholder.svg",alt:"Project screenshot coming soon",fill:!0,className:"object-cover"})})}),(0,t.jsxs)("div",{className:"p-6",children:[(0,t.jsx)("h3",{className:"text-xl font-semibold text-gray-900 dark:text-white group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors",children:o}),(0,t.jsx)("p",{className:"mt-2 text-gray-600 dark:text-gray-400 line-clamp-2",children:r}),(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[c.slice(0,4).map(e=>(0,t.jsx)("span",{className:"px-2 py-1 text-xs font-medium bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 rounded",children:e},e)),c.length>4&&(0,t.jsxs)("span",{className:"px-2 py-1 text-xs text-gray-500 dark:text-gray-400",children:["+",c.length-4," more"]})]})]})]});return u?(0,t.jsx)(i(),{href:u,className:p,children:m}):(0,t.jsx)("div",{className:p,children:m})}},9009:(e,o,r)=>{r.d(o,{default:()=>a});var t=r(5155),n=r(2115),c=r(8561);let i={some:0,all:1};var l=r(1130);function a(e){let{target:o,duration:r=2,suffix:a="",label:s}=e,u=(0,n.useRef)(null),d=function(e){let{root:o,margin:r,amount:t,once:l=!1,initial:a=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[s,u]=(0,n.useState)(a);return(0,n.useEffect)(()=>{if(!e.current||l&&s)return;let n={root:o&&o.current||void 0,margin:r,amount:t};return function(e,o,{root:r,margin:t,amount:n="some"}={}){let l=(0,c.K)(e),a=new WeakMap,s=new IntersectionObserver(e=>{e.forEach(e=>{let r=a.get(e.target);if(!!r!==e.isIntersecting)if(e.isIntersecting){let r=o(e.target,e);"function"==typeof r?a.set(e.target,r):s.unobserve(e.target)}else"function"==typeof r&&(r(e),a.delete(e.target))})},{root:r,rootMargin:t,threshold:"number"==typeof n?n:i[n]});return l.forEach(e=>s.observe(e)),()=>s.disconnect()}(e.current,()=>(u(!0),l?void 0:()=>u(!1)),n)},[o,e,r,l,t]),s}(u,{once:!0,margin:"-50px"}),[A,f]=(0,n.useState)(0);return(0,n.useEffect)(()=>{if(!d)return;let e=performance.now(),t=1e3*r;requestAnimationFrame(function r(n){let c=Math.min((n-e)/t,1);f(Math.round((1-Math.pow(1-c,3))*o)),c<1&&requestAnimationFrame(r)})},[d,o,r]),(0,t.jsxs)(l.P.div,{ref:u,initial:{opacity:0,y:20},animate:d?{opacity:1,y:0}:{},transition:{duration:.5},className:"text-center",children:[(0,t.jsxs)("div",{className:"text-4xl md:text-5xl font-bold gradient-text",children:[A,a]}),(0,t.jsx)("div",{className:"mt-2 text-sm text-gray-600 dark:text-gray-400 font-medium",children:s})]})}}}]);