(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{6579:function(A,e,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return s(8902)}])},1707:function(A,e,s){"use strict";var t=s(1527),a=s(5829),l=s.n(a);e.Z=()=>(0,t.jsxs)(l(),{children:[(0,t.jsx)("title",{children:"David Recheni"}),(0,t.jsx)("meta",{name:"description",content:"Personal website. Fullstack + web3 dev"}),(0,t.jsx)("link",{rel:"icon",href:"/favicon.ico"})]})},8902:function(A,e,s){"use strict";s.r(e),s.d(e,{default:function(){return N}});var t=s(1527),a=s(1707),l=s(25),i=s(7568),r=s.n(i),n=s(315),c=A=>{let{link:{to:e,icon:s,alt:a}}=A;return(0,t.jsx)(l.E.a,{href:e,whileHover:{scale:1.1},whileTap:{scale:.95},target:"_blank",rel:"noreferrer",children:(0,t.jsx)(s,{size:30,title:a})})},o=A=>{let{children:e}=A;return(0,t.jsx)("p",{className:"px-2 py-1 bg-gray-400 text-gray-900 rounded-md",children:e})},d=A=>{let{project:e}=A;return(0,t.jsxs)("div",{className:"flex flex-col gap-y-2 rounded-sm border bg-white text-slate-900 p-4",children:[(0,t.jsx)("a",{href:e.link,target:"_blank",rel:"noreferrer",children:(0,t.jsx)(r(),{src:e.image,alt:"".concat(e.title," Screenshot")})}),(0,t.jsxs)("div",{className:"flex flex-col gap-y-2 mt-2 pt-2 ",children:[(0,t.jsx)("div",{className:"flex justify-between items-start",children:(0,t.jsx)("div",{className:"flex gap-2 text-gray-900",children:e.repo&&(0,t.jsx)(c,{link:{to:e.repo,icon:n.rFR,alt:"Repository"}})})}),(0,t.jsx)("h2",{className:"text-lg font-medium",children:e.title}),(0,t.jsx)("p",{className:"",children:e.description}),(0,t.jsx)("div",{className:"flex gap-2 flex-wrap",children:e.tags.map(A=>(0,t.jsx)(o,{children:A},A))})]})]},e.title)},h=[{title:"Kopff snacks",description:"I founded Kopff, a company that sells healthy snacks focused on mental performance. I created the brand, the website, the packaging, the social media and the marketing strategy. I am currently working on the business development and the growth of the company.",tags:["Nextjs","TypeScript","Mysql","Prisma","Tailwind","TRPC","Stripe"],link:"https://kopff.shop",repo:"",image:{src:"/_next/static/media/kopff.2360483b.png",height:1003,width:1902,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAMAAACEE47CAAAAMFBMVEXO2uTk5enE0N2TgHv17fC6ztze297My8qMnLLHyNasvc6er8Kwp7Tsvb5+cGrW1NRseAAbAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAJ0lEQVR4nB3Bhw0AMAwCMCCr+/9zK8XGCgWYRJ49ZOag5vVnjlbFDwsoAJFNafDVAAAAAElFTkSuQmCC",blurWidth:8,blurHeight:4},creationDate:"Running"},{title:"Chaintree",description:"App with Metamask based backend login through signature verification that allows users to create and manage special NFTs",tags:["React","Nestjs","TypeScript","Solidity","Alchemy","Ethers.js","Web3.js","Truffle","Ganache","Mongodb","TypeORM","React query"],link:"https://main.d1m4v20wvlpjin.amplifyapp.com",repo:"",image:{src:"/_next/static/media/chaintree.088c3d91.jpg",height:1009,width:1920,blurDataURL:"data:image/jpeg;base64,/9j/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wgARCAAEAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAVAQEBAAAAAAAAAAAAAAAAAAAABP/aAAwDAQACEAMQAAABlBQ//8QAFhABAQEAAAAAAAAAAAAAAAAAAQIT/9oACAEBAAEFAmTP/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAwEBPwF//8QAGBEBAAMBAAAAAAAAAAAAAAAAAQADEVH/2gAIAQIBAT8BvATOT//EABUQAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEBAAY/Aq//xAAXEAADAQAAAAAAAAAAAAAAAAAAAREx/9oACAEBAAE/IUp6f//aAAwDAQACAAMAAAAQB//EABURAQEAAAAAAAAAAAAAAAAAAAAB/9oACAEDAQE/EK//xAAWEQEBAQAAAAAAAAAAAAAAAAARACH/2gAIAQIBAT8QIRi//8QAFxABAQEBAAAAAAAAAAAAAAAAASEAEf/aAAgBAQABPxAMDZe7/9k=",blurWidth:8,blurHeight:4},creationDate:"Under construction..."},{title:"Customizable credit card",description:"Customizable 3d model of a credit card using threejs",tags:["React","Threejs","TypeScript","Tailwindcss","vite","Netlify"],link:"https://3d-card-viewer.netlify.app/",repo:"https://github.com/DavidRecheni/3d-card-customizable",image:{src:"/_next/static/media/cardviewer.ac7c1008.jpg",height:1009,width:1920,blurDataURL:"data:image/jpeg;base64,/9j/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wgARCAAEAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAf/aAAwDAQACEAMQAAABsAn/xAAUEAEAAAAAAAAAAAAAAAAAAABC/9oACAEBAAEFAl//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAEDAQE/AX//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAECAQE/AX//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAY/An//xAAYEAACAwAAAAAAAAAAAAAAAAARMQABQf/aAAgBAQABPyEMbSyf/9oADAMBAAIAAwAAABD3/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAwEBPxB//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPxB//8QAGBABAAMBAAAAAAAAAAAAAAAAEQAxUSH/2gAIAQEAAT8QQvDrVmz/2Q==",blurWidth:8,blurHeight:4},creationDate:"23-04-2022"},{title:"Star wars force graph",description:"3d force graph of star wars where darker nodes are planets and lighter nodes are movies, and the connections are if the movie has the planet in it. Planets that don't appear on any movie are shown in a different cluster",tags:["React","GraphQL","ThreeJs","AWS Amplify","Styled components"],link:"https://master.dag66l2ggpz29.amplifyapp.com/",repo:"https://github.com/DavidRecheni/SW-Force-Graph",image:{src:"/_next/static/media/swgraph.677095e3.jpg",height:1009,width:1919,blurDataURL:"data:image/jpeg;base64,/9j/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wgARCAAEAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAb/xAAVAQEBAAAAAAAAAAAAAAAAAAACA//aAAwDAQACEAMQAAABmxQ//8QAFxAAAwEAAAAAAAAAAAAAAAAAAAIDBP/aAAgBAQABBQLRd7H/xAAVEQEBAAAAAAAAAAAAAAAAAAAAAf/aAAgBAwEBPwGP/8QAFREBAQAAAAAAAAAAAAAAAAAAAAH/2gAIAQIBAT8Br//EABoQAAAHAAAAAAAAAAAAAAAAAAABAhESIkH/2gAIAQEABj8CRJqlg//EABcQAQEBAQAAAAAAAAAAAAAAAAERADH/2gAIAQEAAT8hNB5CJv/aAAwDAQACAAMAAAAQD//EABURAQEAAAAAAAAAAAAAAAAAAAAx/9oACAEDAQE/EJf/xAAVEQEBAAAAAAAAAAAAAAAAAAAAMf/aAAgBAgEBPxCn/8QAFxAAAwEAAAAAAAAAAAAAAAAAAAEhYf/aAAgBAQABPxBTJfqWn//Z",blurWidth:8,blurHeight:4},creationDate:"11-06-2021"},{title:"GLTF viewer",description:"Basic GLTF 3d files viewer using threejs",tags:["React","Threejs","Styled components","Netlify"],link:"http://simple-react-three-viewer.netlify.app/",repo:"https://github.com/DavidRecheni/react-3d-viewr",image:{src:"/_next/static/media/gltfviewer.2d295b1b.jpg",height:1007,width:1919,blurDataURL:"data:image/jpeg;base64,/9j/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wgARCAAEAAgDASIAAhEBAxEB/8QAFQABAQAAAAAAAAAAAAAAAAAAAAX/xAAVAQEBAAAAAAAAAAAAAAAAAAADBP/aAAwDAQACEAMQAAABuhZv/8QAFRABAQAAAAAAAAAAAAAAAAAAESH/2gAIAQEAAQUCL//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Bf//EABUQAQEAAAAAAAAAAAAAAAAAAAAR/9oACAEBAAY/Aq//xAAWEAEBAQAAAAAAAAAAAAAAAAARAEH/2gAIAQEAAT8hG6F//9oADAMBAAIAAwAAABAH/8QAFREBAQAAAAAAAAAAAAAAAAAAAAH/2gAIAQMBAT8Qr//EABURAQEAAAAAAAAAAAAAAAAAAAAB/9oACAECAQE/EI//xAAaEAACAgMAAAAAAAAAAAAAAAABEQAhMUFR/9oACAEBAAE/EAa3ROk3js//2Q==",blurWidth:8,blurHeight:4},creationDate:"07-03-2021"}],m=s(4701),x=s(5977),g=s(1615);let p=g.z.object({name:g.z.string(),email:g.z.string().email({message:"Invalid email address"}),message:g.z.string()});function E(){let{register:A,handleSubmit:e,formState:{errors:s}}=(0,x.cI)({resolver:(0,m.F)(p)}),a=async A=>{await fetch("/api/sendemail",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)})};return(0,t.jsxs)("form",{onSubmit:e(a),className:"flex flex-col items-center",children:[(0,t.jsxs)("div",{className:"flex flex-col w-full",children:[(0,t.jsxs)("label",{className:"input  flex items-center gap-2",children:["Name",(0,t.jsx)("input",{placeholder:"David",...A("name",{required:!0}),className:"grow border-b border-black font-semibold"})]}),(0,t.jsx)("div",{className:"label",children:s.name&&(0,t.jsx)("span",{className:"label-text-alt text-error",children:"This field is required"})}),(0,t.jsxs)("label",{className:"input flex items-center gap-2 w-full ",children:["Email",(0,t.jsx)("input",{placeholder:"your@email.com",...A("email",{required:!0}),className:"grow border-b border-black font-semibold"})]}),(0,t.jsx)("div",{className:"label",children:s.email&&(0,t.jsx)("span",{className:"label-text-alt text-error",children:s.email.message})})]}),(0,t.jsxs)("div",{className:"flex flex-col w-full",children:[(0,t.jsx)("textarea",{...A("message",{required:!0}),className:"textarea textarea-bordered text-base border-black textarea-md w-full font-semibold",rows:5,placeholder:"Enter your message here"}),(0,t.jsx)("div",{className:"label",children:s.message&&(0,t.jsx)("span",{className:"label-text-alt text-error",children:"This field is required"})})]}),(0,t.jsx)(l.E.button,{type:"submit",whileHover:{scale:1.05},whileTap:{scale:.95},className:"bg-slate-900 text-white px-6 py-1  cursor-pointer rounded-sm",children:"Send message"})]})}var w=A=>{let{link:{to:e,icon:s,alt:a}}=A;return(0,t.jsx)(l.E.a,{href:e,whileHover:{scale:1.1},whileTap:{scale:.95},target:"_blank",rel:"noreferrer",children:(0,t.jsx)(s,{size:30,title:a})})},B={src:"/_next/static/media/laureles.540ab464.svg",height:160,width:174,blurWidth:0,blurHeight:0},j=A=>{let{title:e,description:s,event:a,className:l=""}=A;return(0,t.jsxs)("a",{href:a.url,target:"_blank",rel:"noreferrer",className:"relative ".concat(l," flex items-center justify-center flex-col"),children:[(0,t.jsxs)("div",{className:"relative w-14 h-14 sm:w-20 sm:h-20 flex items-center justify-center",children:[(0,t.jsx)(r(),{src:B,alt:"".concat(a.name," event logo"),className:"absolute top-0 right-0"}),(0,t.jsx)("div",{className:"absolute bottom-4 sm:bottom-6 -left m-auto w-16 sm:w-24 h-5 bg-black text-white",children:(0,t.jsx)("p",{className:"text-center text-xs sm:text-sm whitespace-nowrap",children:e})})]}),(0,t.jsx)("p",{className:"font-light text-xs sm:text-sm whitespace-nowrap",children:a.name}),(0,t.jsx)("p",{className:"text-xs sm:text-sm italic font-light whitespace-nowrap",children:s})]})};let f=()=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"DAVID RECHENI"}),(0,t.jsx)("span",{children:"\xb7"}),(0,t.jsx)("span",{children:"DAVID RECHENI"}),(0,t.jsx)("span",{children:"\xb7"}),(0,t.jsx)("span",{children:"DAVID RECHENI"}),(0,t.jsx)("span",{children:"\xb7"}),(0,t.jsx)("span",{children:"DAVID RECHENI"}),(0,t.jsx)("span",{children:"\xb7"})]}),u=()=>(0,t.jsxs)("div",{className:"animate-marquee space-x-10 whitespace-nowrap text-[3rem] sm:text-[5rem] uppercase text-slate-900 pointer-events-none pt-2",children:[(0,t.jsx)(f,{}),(0,t.jsx)(f,{}),(0,t.jsx)(f,{}),(0,t.jsx)(f,{})]});var b=()=>(0,t.jsxs)("div",{className:"relative flex w-full overflow-hidden ",children:[(0,t.jsx)(u,{}),(0,t.jsx)(u,{})]});let Q=[{to:"https://github.com/DavidRecheni",icon:n.rFR,alt:"Github"},{to:"https://www.linkedin.com/in/david-recheni/",icon:n.NQh,alt:"Linkedin"},{to:"https://twitter.com/deiv_re",icon:n.meP,alt:"Twitter"}];var v=()=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("section",{className:"grid grid-cols-12 relative w-full h-screen grid-rows-12 gap-4 bg-white text-gray-900",id:"main",children:[(0,t.jsx)(l.E.div,{initial:{y:-50},animate:{y:0},exit:{y:-50},className:"col-start-2 sm:col-start-5 lg:col-start-6 row-start-1 col-span-4 lg:col-span-2 z-10 mt-4 sm:mt-0",children:(0,t.jsx)("div",{className:"flex items-center justify-center gap-5 pl-4 py-2 rounded-b-xl bg-white",children:Q.map(A=>(0,t.jsx)(w,{link:A},A.to))})}),(0,t.jsxs)(l.E.div,{initial:{x:-200},animate:{x:0},exit:{x:-200},className:"row-start-1 col-start-1 col-span-7 row-span-12 p-6 grid grid-rows-10 grid-cols-4 sm:grid-cols-6 gap-4",children:[(0,t.jsx)("h2",{className:"row-start-2 col-span-3 sm:col-span-5 text-3xl sm:text-5xl md:text-6xl lg:text-7xl xl:text-8xl antialiased sm:-mt-5",children:"Developer"}),(0,t.jsx)("h2",{className:"row-start-3 col-span-3 sm:col-span-6 xl:col-span-5 text-3xl sm:text-5xl md:text-6xl lg:text-7xl xl:text-8xl antialiased -mt-5 whitespace-nowrap",children:"& Designer"}),(0,t.jsx)("div",{className:"row-start-4 col-span-4 sm:col-span-4 md:col-span-5 lg:col-span-3 row-span-2",children:(0,t.jsx)("h1",{className:"text-lg sm:text-xl 2xl:text-2xl lg:mt-10",children:"I help startups build and optimize their product, team and processes."})}),(0,t.jsx)("div",{className:"row-start-6 col-start-1 col-span-4 lg:col-span-3 2xl:col-span-2 flex items-end",children:(0,t.jsx)(l.E.button,{onClick:()=>{var A;null===(A=document.getElementById("contact_modal"))||void 0===A||A.showModal()},className:"text-lg sm:text-xl bg-black text-white font-normal px-3 pt-1 pb-2 rounded-sm border w-full",whileHover:{scale:1.05},whileTap:{scale:.95},"aria-label":"Get in touch",children:"Get in touch"})}),(0,t.jsx)(j,{title:"Winner",description:"Urbit challenge",event:{name:"NFT Berlin'22",url:"https://2022.nftberlin.org/"},className:"row-start-7 col-start-1 col-span-2 lg:col-span-1 lg:ml-6 xl:ml-0 row-span-2"}),(0,t.jsx)(j,{title:"Winner",description:"1st Place",event:{name:"ETH Zurich'23",url:"https://ethereumzuri.ch/"},className:"row-start-7 col-start-2 col-span-3 lg:col-span-1 ml-12 lg:mr-6 xl:mr-0 xl:col-start-2 row-span-2"})]}),(0,t.jsx)("div",{className:"col-span-6 row-span-12 row-start-1 sm:col-start-7 p-4 bg-white",children:(0,t.jsx)(r(),{src:"/images/profile.jpg",alt:"Me",width:1700,height:800,style:{objectFit:"cover",height:"100%"},quality:100})}),(0,t.jsx)("div",{className:"absolute bottom-10 w-full",children:(0,t.jsx)(b,{})})]}),(0,t.jsxs)("section",{className:"grid relative w-full min-h-screen text-white p-4 bg-black",id:"main",children:[(0,t.jsx)("h2",{className:"text-[3.5rem] sm:text-[7rem]",children:"PROJECTS"}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2  gap-4 md:gap-12 pt-6 pb-24",children:h.map(A=>(0,t.jsx)(d,{project:A},A.title))}),(0,t.jsxs)("dialog",{id:"contact_modal",className:"modal text-black",children:[(0,t.jsxs)("div",{className:"modal-box rounded-sm",children:[(0,t.jsx)("h3",{className:"text-center mb-4 text-lg font-medium",children:"Contact form"}),(0,t.jsx)(E,{})]}),(0,t.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,t.jsx)("button",{children:"close"})})]})]})]}),N=()=>(0,t.jsxs)("div",{className:"w-full min-h-screen flex justify-center relative",children:[(0,t.jsx)(a.Z,{}),(0,t.jsx)("main",{children:(0,t.jsx)(v,{})})]})}},function(A){A.O(0,[84,932,209,888,774,179],function(){return A(A.s=6579)}),_N_E=A.O()}]);