[{"data":1,"prerenderedAt":293},["ShallowReactive",2],{"project-directory-pl":3},[4,61,108,149,193,229,272],{"id":5,"title":6,"body":7,"category":40,"description":34,"extension":41,"featured":42,"maturity":43,"meta":44,"navigation":42,"order":45,"path":46,"period":47,"repositoryUrl":48,"seo":49,"slug":50,"status":51,"stem":50,"summary":52,"technologies":53,"__hash__":60},"projects_pl\u002Flucidify.md","Lucidify",{"type":8,"value":9,"toc":33},"minimark",[10,15,19,23,26,30],[11,12,14],"h2",{"id":13},"cel-projektu","Cel projektu",[16,17,18],"p",{},"Lucidify rozwija pomysł prywatnego dziennika, w którym można zapisywać i przeglądać sny. Repozytorium zawiera interfejs Vue, API do obsługi kont i wpisów oraz modele użytkowników i snów dla MongoDB.",[11,20,22],{"id":21},"implementacja-i-decyzje","Implementacja i decyzje",[16,24,25],{},"To aplikacja klient-serwer, a nie statyczny dziennik: trasy wymagające uwierzytelnienia ograniczają operacje na snach do danego użytkownika, a osobna usługa AI obsługuje opcjonalną analizę tekstu przez backend. Integracja wymaga konfiguracji serwera; trasa informuje o niedostępności funkcji, gdy brakuje klucza API.",[11,27,29],{"id":28},"status-i-ograniczenia","Status i ograniczenia",[16,31,32],{},"To prototypowa baza kodu, a nie potwierdzenie zweryfikowanej lub produkcyjnej usługi. Analiza snów generuje tekst i nie powinna być przedstawiana jako porada naukowa, psychologiczna ani medyczna. Nie weryfikowałem kompletnego wdrożonego przepływu użytkownika ani rezultatów korzystania z aplikacji.",{"title":34,"searchDepth":35,"depth":35,"links":36},"",2,[37,38,39],{"id":13,"depth":35,"text":14},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},"selected project","md",true,"8",{},"1","\u002Flucidify","2023-2026","https:\u002F\u002Fgithub.com\u002FKarolGitHub\u002Flucidify\u002Ftree\u002Fbb429c2f963262e43a98126b903b2faa53acded5",{"title":6,"description":34},"lucidify","live","Dziennik snów w Vue z kontami użytkowników, zapisami snów i analizą tekstu obsługiwaną przez backend.",[54,55,56,57,58,59],"Vue 3","TypeScript","Node.js","Express","MongoDB","OpenAI API","ShdlrZveAN7MYc8cL7PswdGIdSBvAmqMhHyBW2Ov6Cs",{"id":62,"title":63,"body":64,"category":40,"description":34,"extension":41,"featured":42,"maturity":93,"meta":94,"navigation":42,"order":95,"path":96,"period":97,"repositoryUrl":98,"seo":99,"slug":100,"status":51,"stem":100,"summary":101,"technologies":102,"__hash__":107},"projects_pl\u002Fgeomapping-studio.md","GeoMapping Studio",{"type":8,"value":65,"toc":88},[66,70,73,75,78,80],[11,67,69],{"id":68},"problem","Problem",[16,71,72],{},"Surowe dane GeoJSON są trudne do przeglądania i edytowania. GeoMapping Studio przenosi pracę z obiektami na mapę, a dodatkowy widok tabeli pozwala sprawdzić właściwości obiektów.",[11,74,22],{"id":21},[16,76,77],{},"Aplikacja React zarządza stanem mapy, rysowania, zaznaczenia i widoku, przekazując go do osobnego komponentu mapowego. Łączy on DeckGL z edytowalnymi warstwami GeoJSON z biblioteki nebula.gl. Oddzielne hooki i usługi wczytują dane GeoJSON z adresu URL i eksportują bieżący zbiór do pliku, dzięki czemu te operacje nie są częścią komponentu mapy.",[11,79,29],{"id":28},[16,81,82,83,87],{},"Kod obejmuje rysowanie i edycję obiektów, wczytywanie GeoJSON z adresu URL, przeglądanie danych w tabeli i eksport. Komponent mapy jawnie wyłącza sprawdzanie TypeScript i używa ",[84,85,86],"code",{},"any"," dla części danych, dlatego nie deklaruję pełnego bezpieczeństwa typów. Publiczny szkielet aplikacji klienckiej nie potwierdził działania całego przepływu mapowego; podstawą opisu jest przypięta rewizja kodu.",{"title":34,"searchDepth":35,"depth":35,"links":89},[90,91,92],{"id":68,"depth":35,"text":69},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},"7",{},"2","\u002Fgeomapping-studio","2025","https:\u002F\u002Fgithub.com\u002FKarolGitHub\u002Fgeomapping-studio\u002Ftree\u002F49a312f98b75c934ba936725edf0f69a3e077533",{"title":63,"description":34},"geomapping-studio","Interaktywne narzędzie mapowe do rysowania, edycji, importowania i eksportowania obiektów GeoJSON.",[103,55,104,105,106],"React","deck.gl","nebula.gl","Mapbox GL","vKyRIdkRQap-AjbVQ82HPTuHj_OU_1uCFYTLUxqXaIw",{"id":109,"title":110,"body":111,"category":40,"description":34,"extension":41,"featured":133,"maturity":134,"meta":135,"navigation":42,"order":136,"path":137,"period":97,"repositoryUrl":138,"seo":139,"slug":140,"status":51,"stem":140,"summary":141,"technologies":142,"__hash__":148},"projects_pl\u002Fcoalescent-ai.md","CoalescentAI",{"type":8,"value":112,"toc":128},[113,115,118,120,123,125],[11,114,69],{"id":68},[16,116,117],{},"CoalescentAI łączy kilka procesów zespołowych — tablice, zgłoszenia i informacje o klientach — w jednej aplikacji, zamiast ograniczać współpracę do samodzielnego płótna.",[11,119,22],{"id":21},[16,121,122],{},"Repozytorium oddziela klienta Next.js od usługi Fastify. Serwer udostępnia router tRPC i wykorzystuje Socket.IO do obsługi zdarzeń tablicy; po dołączeniu klienta do tablicy przejrzana trasa pobiera zapisane zdarzenia z Supabase. Po stronie klienta widoki tablic, zgłoszeń i klientów są osobnymi trasami.",[11,124,29],{"id":28},[16,126,127],{},"Baza kodu jest prototypem, a nie zweryfikowaną usługą współpracy produkcyjnej. Obecna publiczna strona wyświetla formularz logowania; nie zakładałem konta ani nie sprawdzałem uwierzytelniania, zapisu danych czy synchronizacji wielu użytkowników z działającym backendem. Opis implementacji opiera się na kodzie repozytorium.",{"title":34,"searchDepth":35,"depth":35,"links":129},[130,131,132],{"id":68,"depth":35,"text":69},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},false,"5",{},"3","\u002Fcoalescent-ai","https:\u002F\u002Fgithub.com\u002FKarolGitHub\u002Fcoalescent-ai\u002Ftree\u002F9102344dbc2afd740b7da7819ce610f0b39884cd",{"title":110,"description":34},"coalescent-ai","Prototyp przestrzeni do współpracy z widokami tablicy, zgłoszeń i klientów oraz usługą TypeScript.",[143,103,55,144,145,146,147],"Next.js","Fastify","tRPC","Socket.IO","Supabase","E8NdXd4gYsm6VgcvL-uw42lqaGIUmG3KdVBiS_eXXrc",{"id":150,"title":151,"body":152,"category":40,"description":34,"extension":41,"featured":133,"maturity":43,"meta":178,"navigation":42,"order":179,"path":180,"period":181,"repositoryUrl":182,"seo":183,"slug":184,"status":185,"stem":184,"summary":186,"technologies":187,"__hash__":192},"projects_pl\u002Fstate-management-benchmark.md","State Management Benchmark",{"type":8,"value":153,"toc":173},[154,158,161,165,168,170],[11,155,157],{"id":156},"pytanie-badawcze","Pytanie badawcze",[16,159,160],{},"Ten historyczny projekt pokazuje, jak implementacje w kilku frameworkach obsługują te same operacje na interaktywnej tabeli. Repozytorium zawiera aplikacje React, Svelte, Vue i Angular z przyciskami do tworzenia, dodawania, wczytywania, aktualizowania, zamiany, zaznaczania i usuwania wygenerowanych wierszy.",[11,162,164],{"id":163},"metoda-pomiaru","Metoda pomiaru",[16,166,167],{},"Aplikacje oznaczają i mierzą operacje interfejsu za pomocą przeglądarkowego Performance API. Zbierają również dane o nawigacji, zasobach, renderowaniu i — jeśli jest dostępna — pamięci. Czasy operacji można wyeksportować do CSV. To zapis eksperymentu, a nie aktualny ranking frameworków.",[11,169,29],{"id":28},[16,171,172],{},"Aktywność repozytorium przypada na lata 2021–2022. Dostępne materiały nie opisują powtarzalnego protokołu dla różnych przeglądarek ani kontrolowanego środowiska, nie zawierają opublikowanych wyników porównawczych, a implementacje korzystają z różnych wersji frameworków. Nie wyciągam więc z tego projektu wniosków o zwycięzcy wydajności ani o obecnej przewadze któregoś frameworka.",{"title":34,"searchDepth":35,"depth":35,"links":174},[175,176,177],{"id":156,"depth":35,"text":157},{"id":163,"depth":35,"text":164},{"id":28,"depth":35,"text":29},{},"4","\u002Fstate-management-benchmark","2021–2022","https:\u002F\u002Fgithub.com\u002FKarolGitHub\u002Fstate-management-benchmark\u002Ftree\u002Fea67883b2e4c9d6b45d910ab04647b4193a69ca8",{"title":151,"description":34},"state-management-benchmark","completed","Historyczny eksperyment przeglądarkowy porównujący typowe operacje na tabeli danych w aplikacjach React, Svelte, Vue i Angular.",[103,188,189,190,191],"Svelte","Vue","Angular","Web Performance API","90SxxWVU6GLlwIcdhNTFvvG6Dq1BBI7mCLPt3dB0-4o",{"id":194,"title":195,"body":196,"category":40,"description":34,"extension":41,"featured":133,"maturity":134,"meta":218,"navigation":42,"order":134,"path":219,"period":97,"repositoryUrl":220,"seo":221,"slug":222,"status":51,"stem":222,"summary":223,"technologies":224,"__hash__":228},"projects_pl\u002Fproofmint-ai.md","ProofMintAI",{"type":8,"value":197,"toc":213},[198,200,203,205,208,210],[11,199,69],{"id":68},[16,201,202],{},"ProofMintAI rozwija koncepcję przepływu dokumentów łączącego obsługę plików z ich przechowywaniem i weryfikacją. Przejrzany interfejs zawiera formularz przesyłania plików z opcją publicznego lub szyfrowanego zapisu.",[11,204,22],{"id":21},[16,206,207],{},"Backend udostępnia trasy zapisu i odczytu przez IPFS, korzystające z osobnej usługi przechowywania. Usługa zawiera funkcje szyfrowania i odszyfrowywania AES-256-GCM oraz kod wysyłający pliki do Web3.Storage, oddzielając te operacje od interfejsu Vue\u002FQuasar.",[11,209,29],{"id":28},[16,211,212],{},"To prototyp; nie weryfikowałem kompletnego przesłania pliku, odszyfrowania ani sesji z zewnętrzną usługą przechowywania. W szczególności trasa obliczająca skrót dokumentu zwraca obecnie odpowiedź zastępczą. Nie opisuję więc repozytorium jako działającej notaryzacji, potwierdzonego dowodu blockchain ani produkcyjnego systemu bezpieczeństwa dokumentów.",{"title":34,"searchDepth":35,"depth":35,"links":214},[215,216,217],{"id":68,"depth":35,"text":69},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},{},"\u002Fproofmint-ai","https:\u002F\u002Fgithub.com\u002FKarolGitHub\u002Fproofmint-ai\u002Ftree\u002F83be42fc817ffce5741c897d06032482c0dfeae3",{"title":195,"description":34},"proofmint-ai","Prototypowy przepływ dokumentów z kodem do publicznego i szyfrowanego zapisu oraz odczytu przez IPFS.",[189,225,56,57,226,227],"Quasar","IPFS","AES-256-GCM","JI63tiW2kM7O5iF-SIEzVcbggfSvVZl-EpU3t6UhQoU",{"id":230,"title":231,"body":232,"category":40,"description":34,"extension":41,"featured":133,"maturity":134,"meta":258,"navigation":42,"order":259,"path":260,"period":261,"repositoryUrl":262,"seo":263,"slug":264,"status":51,"stem":264,"summary":265,"technologies":266,"__hash__":271},"projects_pl\u002Fcrmaize.md","CRMAIze",{"type":8,"value":233,"toc":253},[234,236,239,241,248,250],[11,235,69],{"id":68},[16,237,238],{},"CRMAIze rozwija przepływy pracy nad utrzymaniem klientów w e-commerce: grupowanie rekordów klientów i wykorzystywanie segmentów w widokach zarządzania kampaniami.",[11,240,22],{"id":21},[16,242,243,244,247],{},"Aplikacja jest zorganizowana wokół kontrolerów, repozytoriów i usług PHP, a strony renderuje Twig. ",[84,245,246],{},"AIService"," grupuje klientów według jawnych progów wydatków i czasu od ostatniego zamówienia, a kontroler kampanii wymaga uwierzytelnienia przed wyświetleniem widoków kampanii. Obecna logika segmentacji jest więc regułowa i czytelna, a nie oparta na nieprzejrzystym modelu.",[11,249,29],{"id":28},[16,251,252],{},"Przejrzana usługa segmentacji stosuje ustalone reguły biznesowe; nie deklaruję uczenia maszynowego ani zweryfikowanych prognoz odejścia klientów. Podczas sprawdzania skonfigurowana publiczna aplikacja zwracała błąd połączenia z bazą danych, dlatego nie podaję jej jako działającej wersji demonstracyjnej. Kod można przejrzeć w podlinkowanej rewizji.",{"title":34,"searchDepth":35,"depth":35,"links":254},[255,256,257],{"id":68,"depth":35,"text":69},{"id":21,"depth":35,"text":22},{"id":28,"depth":35,"text":29},{},"6","\u002Fcrmaize","2025-2026","https:\u002F\u002Fgithub.com\u002FKarolGitHub\u002FCRMAIze\u002Ftree\u002F075efd63faaf736c582a014864ddf609f048a528",{"title":231,"description":34},"crmaize","Aplikacja retencyjna PHP\u002FTwig z segmentacją klientów i przepływami zarządzania kampaniami.",[267,268,269,270],"PHP","Twig","PostgreSQL","JavaScript","MgUJLmJMW1OWvP3oXD-rfwsRXD1RMe3OCPzERWbLcXU",{"id":273,"title":274,"body":275,"category":282,"description":279,"extension":41,"featured":42,"maturity":95,"meta":283,"navigation":42,"order":93,"path":284,"period":285,"repositoryUrl":286,"seo":287,"slug":288,"status":289,"stem":288,"summary":290,"technologies":291,"__hash__":292},"projects_pl\u002Frender-tally.md","RenderTally",{"type":8,"value":276,"toc":280},[277],[16,278,279],{},"RenderTally to odrębna, planowana aplikacja, a nie nazwa mojej działalności. Początkowo ma wspierać jednorazowe projekty związane z wydajnością. Aplikacja nie jest dostępna, a ta strona nie udostępnia skanera, portalu klienta, panelu ani usługi subskrypcyjnej.",{"title":34,"searchDepth":35,"depth":35,"links":281},[],"personal project",{},"\u002Frender-tally","2026-2027",null,{"title":274,"description":279},"render-tally","in development","Planowany, prywatny panel wspierający eksperckie audyty wydajności stron i prace nad ich usprawnieniem.",[],"40zUhdnAIqpL_PGdvYYnOkzhog11WkffwE00dJgxiZs",1792326467203]