[{"data":1,"prerenderedAt":153},["ShallowReactive",2],{"portfolio:sk":3},{"projects":4,"experience":141,"technologies":142,"profile":143},[5,82],{"id":6,"slug":6,"title":7,"shortDescription":8,"description":9,"role":10,"featured":11,"technologies":12,"media":40,"links":57,"sections":61},"copystaq","copyStaq","Natívny správca schránky pre macOS s prehľadávateľnou históriou textov a obrázkov, inteligentnými filtrami a rýchlym vkladaním. Súčasťou projektu je produktový web, licenčný backend a distribúcia aktualizácií.","copyStaq pomáha nájsť a znovu použiť skopírovaný obsah bez návratu do pôvodnej aplikácie. Desktopová aplikácia uchováva históriu lokálne; web zabezpečuje prezentáciu produktu, sťahovanie, nákup a správu licencií.","Vývoj macOS aplikácie, produktového webu, backendu, licencií a distribúcie aktualizácií.",true,[13,16,19,22,25,28,31,34,37],{"id":14,"name":15},"swift","Swift",{"id":17,"name":18},"swiftui","SwiftUI",{"id":20,"name":21},"appkit","AppKit",{"id":23,"name":24},"sqlite","SQLite",{"id":26,"name":27},"nuxt","Nuxt",{"id":29,"name":30},"typescript","TypeScript",{"id":32,"name":33},"postgresql","PostgreSQL",{"id":35,"name":36},"prisma","Prisma",{"id":38,"name":39},"docker","Docker",[41,49],{"id":42,"src":43,"alt":44,"width":45,"height":46,"srcSet":47,"caption":48},"app","\u002Fimages\u002Fprojects\u002Fcopystaq\u002Fapp.jpg","Aplikácia copyStaq na macOS s históriou schránky, vyhľadávaním, filtrami a tagmi",1280,720,"\u002Fimages\u002Fprojects\u002Fcopystaq\u002Fapp-640.webp 640w, \u002Fimages\u002Fprojects\u002Fcopystaq\u002Fapp-960.webp 960w, \u002Fimages\u002Fprojects\u002Fcopystaq\u002Fapp-1280.webp 1280w","História schránky a filtre v macOS aplikácii — ukážka z verejného produktového dema.",{"id":50,"src":51,"alt":52,"width":53,"height":54,"srcSet":55,"caption":56},"home","\u002Fimages\u002Fprojects\u002Fcopystaq\u002Fhome.jpg","Produktový web copyStaq s predstavením aplikácie a ukážkou okna Quick Paste",1265,712,"\u002Fimages\u002Fprojects\u002Fcopystaq\u002Fhome-640.webp 640w, \u002Fimages\u002Fprojects\u002Fcopystaq\u002Fhome-960.webp 960w, \u002Fimages\u002Fprojects\u002Fcopystaq\u002Fhome-1265.webp 1265w","Produktový web s predstavením aplikácie a odkazom na stiahnutie.",[58],{"label":59,"url":60},"live","https:\u002F\u002Fcopystaq.app\u002F",[62,66,70,73,75,78],{"type":63,"heading":64,"body":65},"text","Zadanie a prístup","Prepojiť každodennú prácu so schránkou s nástrojom, ktorý ovládaš klávesnicou. Projekt zahŕňa natívnu macOS aplikáciu aj webové zázemie pre distribúciu a licencie.",{"type":67,"heading":68,"body":69},"feature","História, vyhľadávanie a Quick Paste","Aplikácia uchováva text, RTF a HTML formátovanie aj obrázky. SQLite s fulltextovým indexom podporuje vyhľadávanie; filtre podľa aplikácie, typu, dátumu, tagov či poznámok sa dajú uložiť. Quick Paste otvorí históriu globálnou skratkou a vloží vybraný obsah do aktívnej aplikácie.",{"type":67,"heading":71,"body":72},"Lokálne dáta a natívne rozhranie","SwiftUI a AppKit prepájajú hlavné okno, menu bar a panel Quick Paste. História zostáva na Macu. Pravidlá zachytávania umožňujú vylúčiť vybrané aplikácie a správcov hesiel; dôležité položky možno pripnúť, označiť tagmi a doplniť poznámkou.",{"type":74,"mediaId":50},"image",{"type":67,"heading":76,"body":77},"Produktový web a licenčný backend","Viacjazyčný web v Nuxt, Vue a TypeScript dopĺňa PostgreSQL s Prisma. Integrácia Lemon Squeezy zabezpečuje checkout a licencie; zákaznícky účet používa prihlásenie e-mailovým odkazom cez Resend. Backend spravuje aktivácie a vydáva podpísané licenčné oprávnenia, ktoré aplikácia overuje lokálne.",{"type":79,"heading":80,"body":81},"technical-details","Distribúcia a aktualizácie","Aplikácia sa distribuuje ako DMG a aktualizácie zabezpečuje Sparkle s Ed25519 podpismi. Publikovanie overuje balík aj appcast a sprístupní aktualizačný feed až po nahratí súborov. Webové zázemie beží v Docker kontajneroch za Nginx a Traefik.",{"id":83,"slug":84,"title":85,"shortDescription":86,"description":87,"role":88,"featured":11,"technologies":89,"media":98,"links":117,"sections":120},"immaculata","restaurovanie-immaculata","Reštaurovanie Immaculata","Viacjazyčný web pre prezentáciu reštaurátorských a umeleckých prác. Verejnú galériu dopĺňa vlastná administrácia obsahu, fotografií a požiadaviek od návštevníkov.","Cieľom bolo prepojiť vizuálnu prezentáciu realizácií s praktickou správou webu. Klient môže upravovať stránky, pridávať práce a fotografie aj spracovať otázky z kontaktného formulára v jednej administrácii.","Frontend, backend, CMS a vlastný hosting — od verejného webu po správu obsahu a nasadenie.",[90,91,94,97],{"id":26,"name":27},{"id":92,"name":93},"laravel","Laravel",{"id":95,"name":96},"filament","Filament",{"id":38,"name":39},[99,105,111],{"id":50,"src":100,"alt":101,"width":45,"height":102,"srcSet":103,"caption":104},"\u002Fimages\u002Fprojects\u002Fimmaculata\u002Fhome.jpg","Úvodná stránka Immaculata s hlavnou fotografiou a úvodom do reštaurátorských služieb",1000,"\u002Fimages\u002Fprojects\u002Fimmaculata\u002Fhome-640.webp 640w, \u002Fimages\u002Fprojects\u002Fimmaculata\u002Fhome-960.webp 960w, \u002Fimages\u002Fprojects\u002Fimmaculata\u002Fhome-1280.webp 1280w","Úvodná stránka verejného webu.",{"id":106,"src":107,"alt":108,"width":45,"height":46,"srcSet":109,"caption":110},"works","\u002Fimages\u002Fprojects\u002Fimmaculata\u002Fworks.jpg","Prehľad reštaurátorských prác s vyhľadávaním a fotografiou realizácie","\u002Fimages\u002Fprojects\u002Fimmaculata\u002Fworks-640.webp 640w, \u002Fimages\u002Fprojects\u002Fimmaculata\u002Fworks-960.webp 960w, \u002Fimages\u002Fprojects\u002Fimmaculata\u002Fworks-1280.webp 1280w","Prehľad realizácií s vyhľadávaním.",{"id":112,"src":113,"alt":114,"width":45,"height":46,"srcSet":115,"caption":116},"detail","\u002Fimages\u002Fprojects\u002Fimmaculata\u002Fdetail.jpg","Detail reštaurátorskej práce s fotografickou galériou","\u002Fimages\u002Fprojects\u002Fimmaculata\u002Fdetail-640.webp 640w, \u002Fimages\u002Fprojects\u002Fimmaculata\u002Fdetail-960.webp 960w, \u002Fimages\u002Fprojects\u002Fimmaculata\u002Fdetail-1280.webp 1280w","Fotografie a detail konkrétnej realizácie.",[118],{"label":59,"url":119},"https:\u002F\u002Frestaurovanie-immaculata.sk\u002F",[121,123,126,129,132,135,138],{"type":63,"heading":64,"body":122},"Web má ukázať výsledky reštaurátorskej práce a pomôcť návštevníkovi dostať sa od ukážky realizácie ku kontaktu. Dôraz je na fotografie, prehľadnú navigáciu a lokalizovaný obsah v slovenčine, češtine a angličtine.",{"type":67,"heading":124,"body":125},"Verejný web","Frontend v Nuxt a Vue prezentuje služby, prehľad prác a detaily s fotogalériou. Obsah načítava cez API z backendu. Vyhľadávanie pomáha nájsť realizácie podľa názvu alebo lokality.",{"type":127,"mediaIds":128},"gallery",[106,112],{"type":67,"heading":130,"body":131},"Administrácia a správa fotografií","Backend v Laravel s administráciou Filament tvorí jednoduché CMS. Správa stránok, obsahových sekcií, navigácie, realizácií a lokalizovaných textov je spojená s knižnicou médií a priraďovaním fotografií k obsahu.",{"type":67,"heading":133,"body":134},"Požiadavky z kontaktného formulára","Otázky od návštevníkov sa ukladajú do backendu. V administrácii ich možno spracovať podľa stavu a doplniť interné poznámky, aby komunikácia zostala prehľadná.",{"type":79,"heading":136,"body":137},"Vlastný hosting a nasadenie","Aplikácia beží v Docker kontajneroch na našom dedikovanom serveri, ktorý hostí aj ďalšie projekty. Požiadavka prechádza cez Nginx a Traefik do príslušnej aplikácie. Súčasťou realizácie bola príprava vlastného hostingu a nasadenie frontendovej aj backendovej časti.",{"type":63,"heading":139,"body":140},"Výsledok","Jedno riešenie spája prezentáciu prác, každodennú správu obsahu, fotografie a požiadavky od návštevníkov. Oddelený frontend a backend umožňujú rozvíjať verejný web aj administráciu samostatne.",[],[],{"id":144,"displayName":145,"role":146,"introduction":147,"email":148,"links":149},"linko","Linko","Softvérový vývojár","Vyvíjam webové aplikácie od používateľského rozhrania a backendu po nasadenie.","info@link0.eu",[150],{"id":151,"label":151,"url":152},"github","https:\u002F\u002Fgithub.com\u002F4713n",1791122151467]