[{"data":1,"prerenderedAt":451},["ShallowReactive",2],{"/pl":3,"seo-stack":39,"seo-faq-data-pl":130,"projects-pl":200,"faq-pl-/":338,"mdc-6g74qf-key":377,"mdc--ja4wea-key":416,"mdc--lwkk54-key":443},{"id":4,"title":5,"body":6,"date":28,"description":29,"extension":30,"head":31,"meta":32,"navigation":33,"ogImage":31,"path":34,"robots":31,"schemaOrg":31,"seo":35,"sitemap":36,"stem":37,"__hash__":38},"content_pl/pl/1.index.md","KetusDev | Full-Stack Developer",{"type":7,"value":8,"toc":25},"minimark",[9],[10,11,12,20],"home",{},[13,14,16],"template",{"v-slot:hero_title":15},"",[17,18,19],"p",{},"Od pomysłu do działającego kodu",[13,21,22],{"v-slot:hero_subtitle":15},[17,23,24],{},"Jestem developerem i designerem, który łączy solidną technologię z pięknym interfejsem. Tworzę aplikacje i strony, które nie tylko działają idealnie, ale wyglądają naprawdę dobrze. Każdy projekt to szansa, aby coś rzeczywiście wyjątkowego stworzyć.",{"title":15,"searchDepth":26,"depth":26,"links":27},2,[],"2026-01-01","Portfolio Szymona Skorupskiego (KetusDev) — full-stack developera z Polski. Nowoczesne aplikacje webowe, API i produkty cyfrowe z Nuxt, Vue, TypeScript i PostgreSQL.","md",null,{},true,"/pl",{"title":5,"description":29},{"loc":34},"pl/1.index","p77QxqwaqbZfViI53khvc7b2UNay-yCZb8IZnVJINuk",{"id":40,"extension":41,"items":42,"meta":107,"stem":128,"__hash__":129},"stack/stack.json","json",[43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,103],{"name":44,"link":45,"icon":46},"Nuxt","https://nuxt.com/","custom:nuxt",{"name":48,"link":49,"icon":50},"Vue","https://vuejs.org/","custom:vue",{"name":52,"link":53,"icon":54},"TypeScript","https://www.typescriptlang.org/","custom:typescript",{"name":56,"link":57,"icon":58},"Node.js","https://nodejs.org/","custom:node-js",{"name":60,"link":61,"icon":62},"React/React Native","https://react.dev/","custom:reactjs",{"name":64,"link":65,"icon":66},"TailwindCSS","https://tailwindcss.com/","custom:tailwind",{"name":68,"link":69,"icon":70},"Supabase","https://www.prisma.io/","custom:supabase",{"name":72,"link":73,"icon":74},"Postgre","https://www.postgresql.org/","custom:pgsql",{"name":76,"link":77,"icon":78},"Rust","https://www.rust-lang.org/","custom:rust",{"name":80,"link":81,"icon":82},"Python","https://www.python.org/","custom:python",{"name":84,"link":85,"icon":86},"Lua","https://www.lua.org/","custom:lua",{"name":88,"link":89,"icon":90},"C++","https://isocpp.org/","custom:cpp",{"name":92,"link":93,"icon":94},"Golang","https://go.dev/","custom:go",{"name":96,"link":97,"icon":98},"Figma","https://www.figma.com/","custom:figma",{"name":100,"link":101,"icon":102},"Photoshop","https://www.adobe.com/products/photoshop.html","custom:photoshop",{"name":104,"link":105,"icon":106},"Illustrator","https://www.adobe.com/products/illustrator.html","custom:illustrator",{"path":108,"body":109,"title":127},"/stack",{"items":110},[111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],{"name":44,"link":45,"icon":46},{"name":48,"link":49,"icon":50},{"name":52,"link":53,"icon":54},{"name":56,"link":57,"icon":58},{"name":60,"link":61,"icon":62},{"name":64,"link":65,"icon":66},{"name":68,"link":69,"icon":70},{"name":72,"link":73,"icon":74},{"name":76,"link":77,"icon":78},{"name":80,"link":81,"icon":82},{"name":84,"link":85,"icon":86},{"name":88,"link":89,"icon":90},{"name":92,"link":93,"icon":94},{"name":96,"link":97,"icon":98},{"name":100,"link":101,"icon":102},{"name":104,"link":105,"icon":106},"Stack","stack","aWyFpcVGYuaHymPCKadQyiY7s0WWw_rDYWJaXBNtvoc",{"id":131,"title":132,"extension":41,"faqQuestions":133,"meta":176,"stem":198,"subtitle":179,"__hash__":199},"faq_pl/pl/faq.json","FAQ",[134,146,164],{"title":135,"questions":136},"O mnie i umiejętnościach",[137,140,143],{"label":138,"content":139},"Jakie usługi oferujesz?","**Web Development**: Strony responsywne, landing page'i, aplikacje webowe, UI/UX | **Mobile**: Aplikacje mobilne (uczę się React Native) | **Game Dev**: Skrypty dla FiveM (Lua), Modelowanie 3D (budynki, pojazdy etc) | **Backend**: Node.js, API, bazy danych. Szukam projektów, które pomogą mi rosnąć, a klientowi dostarczę jakość.",{"label":141,"content":142},"Czym się zajmujesz?","**Frontend**: HTML, CSS, JavaScript, TypeScript, Vue.js, Nuxt.js, React, Tailwind | **Backend**: Node.js, Express.js, PostgreSQL, MongoDB | **DevOps**: Git, Docker, Linux, wdrażanie aplikacji. Ciągle się uczę i rozwijam swoje umiejętności.",{"label":144,"content":145},"Jesteś dostępny do pracy?","Tak! Szukam projektów freelance, staży i pracy pełnoetatowej. Interesują mnie projekty, które pozwolą mi się rozwijać i dostarczać wartość.",{"title":147,"questions":148},"Współpraca i ceny",[149,152,155,158,161],{"label":150,"content":151},"Ile kosztuje?","Stawki są elastyczne - zazwyczaj €25-40 za godzinę dla pracy freelance. Dla większych projektów możemy ustalić cenę całościową lub pakietową.",{"label":153,"content":154},"Jak wygląda proces płatności?","Zazwyczaj proszę o 40% zaliczki na start, resztę 60% na koniec. Mogę zaakceptować przelew, PayPal albo inne metody. Dla dużych projektów - płatności etapowe po osiągnięciu milestones'ów.",{"label":156,"content":157},"Jak długo trwa projekt?","Zależy od skali. Prosta landing page: 1-2 tygodnie. Złożona aplikacja: 1-3 miesiące. Zawsze daję realny szacunek i informuję o postępach.",{"label":159,"content":160},"Jak pracujesz nad projektami?","Zaczynam od zrozumienia wymagań, potem rozbijam to na mniejsze zadania. Wierzę w jasną komunikację i czystym kod. Nie boję się pytać, gdy coś jest niejasne.",{"label":162,"content":163},"Pracujesz w zespołach?","Lubię! Pracowałem w zespołach, znam Git, code review, patrzę na kod innych. Staram się być łatwy do pracy i otwarty na feedback.",{"title":165,"questions":166},"Osobiste",[167,170,173],{"label":168,"content":169},"Co Cię motywuje?","Rozwiązywanie problemów i widzenie, że coś moje działa w prawdziwym życiu. Każdy projekt to szansa, aby się nauczyć czegoś nowego. To satysfakcjonujące!",{"label":171,"content":172},"Jak się aktualizujesz?","Czytam blogi, uczestniczę w społecznościach developerów, robię side-projecty, biorę kursy. W tej branży musisz się ciągle uczyć - i lubię to.",{"label":174,"content":175},"Czego się uczysz teraz?","Pogłębiam TypeScript, zaawansowane wzorce Vue.js, optymalizację wydajności i accessibility. Chciałbym też więcej wiedzieć o backend'zie i DevOps'ie.",{"path":177,"body":178},"/pl/faq",{"title":132,"subtitle":179,"faqQuestions":180},"Często zadawane pytania",[181,186,193],{"title":135,"questions":182},[183,184,185],{"label":138,"content":139},{"label":141,"content":142},{"label":144,"content":145},{"title":147,"questions":187},[188,189,190,191,192],{"label":150,"content":151},{"label":153,"content":154},{"label":156,"content":157},{"label":159,"content":160},{"label":162,"content":163},{"title":165,"questions":194},[195,196,197],{"label":168,"content":169},{"label":171,"content":172},{"label":174,"content":175},"pl/faq","TXjuRP2jHY72uT4DTozaL4U0aHHBGEzUGSD0KbL_qaU",[201,232,253,273,313],{"id":202,"date":203,"description":204,"extension":41,"featured":33,"gallery":205,"github":15,"image":206,"link":31,"meta":210,"name":213,"release":203,"slug":214,"stem":229,"techStack":230,"website":227,"__hash__":231},"projects_pl/pl/projects/omniroute.json","2026","OmniRoute to pełnostackowa platforma dla wirtualnych firm spedycyjnych (VS) w Euro Truck Simulator 2 i American Truck Simulator. Automatycznie śledzi trasy z telemetrii gry poprzez natywną aplikację desktopową zbudowaną w Tauri i Rust, a następnie przesyła je do centralnego API z statystykami, rankingami i zarządzaniem firmą. Ekosystem obejmuje panel webowy Next.js z ponad 40 stronami, REST API Fastify z bazą PostgreSQL, bota Discord ze slash komendami i systemem ticketów oraz współdzielone monorepo TypeScript. Kluczowe funkcje to ekonomia OmniCoins, role firmowe z niestandardowymi uprawnieniami, opisy firm w rich-text, storage Cloudflare R2, weryfikacja e-mail i narzędzia administracyjne.",[206,207,208,209],"/projects/omniroute/omniroute.png","/projects/omniroute/omniroute-home.png","/projects/omniroute/omniroute-dashboard.png","/projects/omniroute/omniroute-desktop.png",{"path":211,"body":212,"title":228},"/pl/projects/omniroute",{"name":213,"slug":214,"date":203,"release":203,"featured":33,"image":206,"gallery":215,"description":204,"techStack":216,"website":227,"github":15},"OmniRoute","omniroute",[206,207,208,209],[217,52,218,76,219,220,221,222,223,224,225,226],"Next.js","Tauri","Fastify","PostgreSQL","Prisma","Tailwind CSS","Cloudflare R2","Discord.js","Docker","Framer Motion","https://omniroute.cloud","Omniroute","pl/projects/omniroute",[217,52,218,76,219,220,221,222,223,224,225,226],"IfYhuY296jQ9BcWP9OcHT30yovy2Yep2o_47K6lTsII",{"id":233,"date":203,"description":234,"extension":41,"featured":33,"gallery":235,"github":15,"image":236,"link":31,"meta":238,"name":241,"release":203,"slug":242,"stem":250,"techStack":251,"website":248,"__hash__":252},"projects_pl/pl/projects/roder-vs.json","Röder VS to wirtualna firma spedycyjna działająca na platformach Euro Truck Simulator 2 oraz American Truck Simulator. Po rebrandingu stawia na profesjonalizm, minimalistyczną estetykę i najwyższą jakość. Charakterystyczny design – biała Scania S z czarną naczepą Krone – wyróżnia flotę na drogach Europy i Ameryki. Firma organizuje regularne konwoje, dba o aktywną społeczność kierowców i najwyższe standardy wirtualnego transportu. Röder VS to miejsce dla osób ceniących terminowość, nowoczesną flotę i kulturę zespołową. Dołącz do elity wirtualnych dróg!",[236,237],"/projects/roder-vs/roder-vs.png","/projects/roder-vs/roder-vs2.png",{"path":239,"body":240,"title":249},"/pl/projects/roder-vs",{"name":241,"slug":242,"date":203,"release":203,"featured":33,"image":236,"gallery":243,"description":234,"techStack":244,"website":248,"github":15},"Röder VS","roder-vs",[236,237],[245,52,246,222,226,247],"React","Vite","React Router DOM","https://roder-vs.pl","Roder Vs","pl/projects/roder-vs",[245,52,246,222,226,247],"9GCntLjKp2Y7Vosd_OYH8-m1fOjsWKPnuMNHGJ3A1XU",{"id":254,"date":255,"description":256,"extension":41,"featured":33,"gallery":257,"github":15,"image":258,"link":31,"meta":261,"name":264,"release":255,"slug":265,"stem":270,"techStack":271,"website":268,"__hash__":272},"projects_pl/pl/projects/projectcracow.json","2025","Project Cracow to immersyjny serwer roleplay (FiveM) osadzony we współczesnym Krakowie, stworzony jako centrum społeczności graczy szukających realizmu, narracji i wyborów z konsekwencjami. Strona prezentuje trzy ścieżki kariery (półświatek przestępczy, cywile i biznesy, służby mundurowe), gospodarkę opartą na frakcjach, aktualności, eventy oraz onboarding zachęcający do dołączenia na Discord i na serwer. Projekt reprezentuje zespół Project Cracow i rekrutuje polskich graczy RP, podkreślając żyjące dzielnice, rozwój postaci i wspólnotę, która współtworzy miasto.",[258,259,260],"/projects/projectcracow/projectcracow.png","/projects/projectcracow/projectcracow2.png","/projects/projectcracow/projectcracow3.png",{"path":262,"body":263,"title":269},"/pl/projects/projectcracow",{"name":264,"slug":265,"date":255,"release":255,"featured":33,"image":258,"gallery":266,"description":256,"techStack":267,"website":268,"github":15},"Project Cracow","project-cracow",[258,259,260],[245,52,246,222,226,247],"https://projectcracow.pl","Projectcracow","pl/projects/projectcracow",[245,52,246,222,226,247],"xgepewSOSFzp55tHglRnIVPozrUGo7U8s1Dp0BFj68o",{"id":274,"date":275,"description":276,"extension":41,"featured":33,"gallery":277,"github":281,"image":278,"link":31,"meta":282,"name":285,"release":275,"slug":286,"stem":310,"techStack":311,"website":308,"__hash__":312},"projects_pl/pl/projects/portfoliov2.json","2024","Nowoczesne, interaktywne portfolio programisty stworzone z wykorzystaniem najnowszych technologii frontendowych. Projekt prezentuje portfolio, umiejętności i doświadczenie w atrakcyjny, wizualnie imponujący sposób z efektami glassmorphism i zaawansowanymi animacjami. Główne funkcjonalności obejmują: efekt glassmorphism z przeszklonymi kartami, animowany background z 1500 interaktywnymi cząsteczkami, responsywny design dopasowany do wszystkich urządzeń, płynne animacje wykorzystujące Framer Motion, parallax scrolling w sekcji hero oraz zaawansowane hover effects. Portfolio wspiera wiele języków, zawiera interaktywną nawigację glassmorphic, sekcje z animowanym nagłówkiem hero, karty informacyjne 'o mnie', kategoryzowaną sekcję umiejętności, grid projektów z filtrowaniem według kategorii (Web, Mobile, Scripts, Other), modale projektów ze szczegółami oraz sekcję kontaktową. Projekt wykorzystuje smooth scrolling, eleganckie loading states, micro-interactions oraz progressive disclosure dla lepszego UX. Zbudowane na Next.js 15.2.4 z React 19 i TypeScript 5, stylizowane przy użyciu Tailwind CSS 3.4, z bogatym zestawem komponentów Radix UI, walidacją formularzy przez React Hook Form i Zod, oraz wdrożone na Vercel.",[278,279,280],"/projects/portfoliov2/portfoliov2.png","/projects/portfoliov2/portfoliov2-1.png","/projects/portfoliov2/portfoliov2-2.png","https://github.com/KetusDev/PortfolioV2",{"path":283,"body":284,"title":309},"/pl/projects/portfoliov2",{"name":285,"slug":286,"date":275,"release":275,"featured":33,"image":278,"gallery":287,"description":276,"techStack":288,"website":308,"github":281},"Portfolio V2","portfoliov2",[278,279,280],[289,290,291,292,226,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307],"Next.js 15.2.4","React 19","TypeScript 5","Tailwind CSS 3.4","Radix UI","React Hook Form","Zod","Lucide React","Sonner","cmdk","date-fns","embla-carousel-react","react-day-picker","recharts","vaul","class-variance-authority","tailwind-merge","pnpm","Vercel","https://ketusdev2.vercel.app/","Portfoliov2","pl/projects/portfoliov2",[289,290,291,292,226,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307],"lszXxmigkKJzh8nfvGVLoWy9NKGTWSSd6JwYaGG8Wcc",{"id":314,"date":315,"description":316,"extension":41,"featured":317,"gallery":318,"github":321,"image":319,"link":31,"meta":322,"name":325,"release":315,"slug":326,"stem":335,"techStack":336,"website":333,"__hash__":337},"projects_pl/pl/projects/oldportfolio.json","2023","Old Portfolio to poprzednia wersja mojego portfolio — szybka, dwujęzyczna (PL/EN) i pełna animacji, zbudowana, by czytelnie pokazywać projekty, doświadczenie i możliwość kontaktu. Stworzyłem responsywny layout z dark mode, płynnymi mikroanimacjami (Framer Motion) oraz formularzem na EmailJS, walidowanym przez React Hook Form. UI opiera się na Tailwind CSS oraz komponentach shadcn/ui i Radix UI, a mapy w sekcji kontaktu obsługuje React Leaflet. Całość działa na Next.js 15 z TypeScriptem, wdrożona na Vercel z analityką Vercel Analytics, zoptymalizowana pod wydajność i SEO. Ten projekt był solidną bazą pod obecną, nuxtową odsłonę portfolio.",false,[319,320],"/projects/old-portfolio/old-portfolio.png","/projects/old-portfolio/old-portfolio2.png","https://github.com/KetusDev/old-portfolio",{"path":323,"body":324,"title":334},"/pl/projects/oldportfolio",{"name":325,"slug":326,"date":315,"release":315,"featured":317,"image":319,"gallery":327,"description":316,"techStack":328,"website":333,"github":321},"Portfolio V1","portfoliov1",[319,320],[217,52,222,329,293,226,294,330,331,332],"shadcn/ui","EmailJS","React Leaflet","Vercel Analytics","https://ketusdev-old.vercel.app/","Oldportfolio","pl/projects/oldportfolio",[217,52,222,329,293,226,294,330,331,332],"2vtD5o8W4aQ1vg-xzxaMFXu8AqZzCm6EvTip4sPH7_8",{"id":131,"title":132,"extension":41,"faqQuestions":339,"meta":357,"stem":198,"subtitle":179,"__hash__":199},[340,345,352],{"title":135,"questions":341},[342,343,344],{"label":138,"content":139},{"label":141,"content":142},{"label":144,"content":145},{"title":147,"questions":346},[347,348,349,350,351],{"label":150,"content":151},{"label":153,"content":154},{"label":156,"content":157},{"label":159,"content":160},{"label":162,"content":163},{"title":165,"questions":353},[354,355,356],{"label":168,"content":169},{"label":171,"content":172},{"label":174,"content":175},{"path":177,"body":358},{"title":132,"subtitle":179,"faqQuestions":359},[360,365,372],{"title":135,"questions":361},[362,363,364],{"label":138,"content":139},{"label":141,"content":142},{"label":144,"content":145},{"title":147,"questions":366},[367,368,369,370,371],{"label":150,"content":151},{"label":153,"content":154},{"label":156,"content":157},{"label":159,"content":160},{"label":162,"content":163},{"title":165,"questions":373},[374,375,376],{"label":168,"content":169},{"label":171,"content":172},{"label":174,"content":175},{"data":378,"body":379},{},{"type":380,"children":381},"root",[382],{"type":383,"tag":17,"props":384,"children":385},"element",{},[386,393,395,400,402,407,409,414],{"type":383,"tag":387,"props":388,"children":389},"strong",{},[390],{"type":391,"value":392},"text","Web Development",{"type":391,"value":394},": Strony responsywne, landing page'i, aplikacje webowe, UI/UX | ",{"type":383,"tag":387,"props":396,"children":397},{},[398],{"type":391,"value":399},"Mobile",{"type":391,"value":401},": Aplikacje mobilne (uczę się React Native) | ",{"type":383,"tag":387,"props":403,"children":404},{},[405],{"type":391,"value":406},"Game Dev",{"type":391,"value":408},": Skrypty dla FiveM (Lua), Modelowanie 3D (budynki, pojazdy etc) | ",{"type":383,"tag":387,"props":410,"children":411},{},[412],{"type":391,"value":413},"Backend",{"type":391,"value":415},": Node.js, API, bazy danych. Szukam projektów, które pomogą mi rosnąć, a klientowi dostarczę jakość.",{"data":417,"body":418},{},{"type":380,"children":419},[420],{"type":383,"tag":17,"props":421,"children":422},{},[423,428,430,434,436,441],{"type":383,"tag":387,"props":424,"children":425},{},[426],{"type":391,"value":427},"Frontend",{"type":391,"value":429},": HTML, CSS, JavaScript, TypeScript, Vue.js, Nuxt.js, React, Tailwind | ",{"type":383,"tag":387,"props":431,"children":432},{},[433],{"type":391,"value":413},{"type":391,"value":435},": Node.js, Express.js, PostgreSQL, MongoDB | ",{"type":383,"tag":387,"props":437,"children":438},{},[439],{"type":391,"value":440},"DevOps",{"type":391,"value":442},": Git, Docker, Linux, wdrażanie aplikacji. Ciągle się uczę i rozwijam swoje umiejętności.",{"data":444,"body":445},{},{"type":380,"children":446},[447],{"type":383,"tag":17,"props":448,"children":449},{},[450],{"type":391,"value":145},1785840163381]