<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Next.js on Benedykt Huszcza | Blog</title><link>https://blog.huszcza.dev/pl/tags/next.js/</link><description>Recent content in Next.js on Benedykt Huszcza | Blog</description><generator>Hugo -- gohugo.io</generator><language>pl</language><lastBuildDate>Mon, 24 Feb 2025 16:00:00 +0000</lastBuildDate><atom:link href="https://blog.huszcza.dev/pl/tags/next.js/index.xml" rel="self" type="application/rss+xml"/><item><title>Benedykt-the-Dev – Portfolio i Blog Programistyczny</title><link>https://blog.huszcza.dev/pl/p/benedykt-the-dev/</link><pubDate>Mon, 24 Feb 2025 16:00:00 +0000</pubDate><guid>https://blog.huszcza.dev/pl/p/benedykt-the-dev/</guid><description>&lt;img src="https://blog.huszcza.dev/p/benedykt-the-dev/cover.jpg" alt="Featured image of post Benedykt-the-Dev – Portfolio i Blog Programistyczny" />&lt;h2 id="czym-jest-benedykt-the-dev">Czym jest Benedykt-the-Dev?
&lt;/h2>&lt;p>&lt;strong>Benedykt-the-Dev&lt;/strong> to moja &lt;strong>strona osobista&lt;/strong>, na której dzielę się &lt;strong>portfolio&lt;/strong>, &lt;strong>umiejętnościami&lt;/strong> oraz &lt;strong>wpisami na blogu&lt;/strong> o moich doświadczeniach i zainteresowaniach. Do stworzenia tego projektu użyłem &lt;strong>Next.js&lt;/strong> oraz kilku mniejszych bibliotek, o których opowiem za chwilę. Blog zbudowałem na &lt;strong>Hugo&lt;/strong>, co pozwala na szybkie działanie i świetną optymalizację pod kątem SEO.&lt;/p>
&lt;p>Nie mogę nie wspomnieć, że inspirację do tego projektu zaczerpnąłem od &lt;a class="link" href="https://kaszkowiak.org/" target="_blank" rel="noopener"
>Macieja&lt;/a>. Jego wpisy zawsze czytałem z ciekawością, co ostatecznie zmotywowało mnie do stworzenia własnej strony.&lt;/p>
&lt;p>Szczerze mówiąc, rok temu nie przypuszczałbym, że będę pisał wpis na bloga o swojej własnej stronie. Liczę na to, że za rok spojrzę na to z podobną refleksją – ale tym razem w kontekście czegoś zupełnie innego, o czym teraz nawet nie mam pojęcia.&lt;/p>
&lt;h2 id="co-znajdziesz-na-stronie">Co znajdziesz na stronie?
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Portfolio&lt;/strong> – Najważniejsze projekty z linkami do wpisów na blogu, moja ścieżka kariery, zainteresowania oraz możliwość kontaktu.&lt;/li>
&lt;li>&lt;strong>Blog&lt;/strong> – Miejsce, w którym dzielę się przemyśleniami, poradnikami i doświadczeniami z mojego życia.&lt;/li>
&lt;/ul>
&lt;h2 id="stack-technologiczny">Stack technologiczny
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Next.js&lt;/strong> – Framework frontendowy, który świetnie współpracuje z SEO oraz oferuje szybkie działanie dzięki renderowaniu po stronie serwera (SSR). W przyszłości ułatwi mi też wdrażanie nowych funkcji, np. formularza kontaktowego.&lt;/li>
&lt;li>&lt;strong>Framer Motion&lt;/strong> – Moje pierwsze doświadczenie z tą biblioteką animacji. Bardzo intuicyjne rozwiązanie, które pozwala ograniczyć zbędny kod.&lt;/li>
&lt;li>&lt;strong>React Typist&lt;/strong> – Użyłem tego narzędzia, żeby uzyskać efekt pisania na ekranie. Jest lekkie i proste w implementacji – dokładnie to, czego potrzebowałem.&lt;/li>
&lt;li>&lt;strong>Tailwind CSS&lt;/strong> – Framework CSS typu utility-first, który umożliwia pisanie spójnych i nowoczesnych stylów bez potrzeby korzystania z dodatkowych plików CSS. Uwielbiam to rozwiązanie za możliwość pisania komponentów i stylów w jednym miejscu.&lt;/li>
&lt;li>&lt;strong>Hugo&lt;/strong> – Blog oparty jest na &lt;strong>Hugo&lt;/strong>, co gwarantuje szybkie ładowanie oraz dobrą optymalizację pod kątem SEO. Początkowo miałem ambitny plan, by napisać wszystko od podstaw, włącznie z backendem i CMS-em. Jednak ostatecznie postawiłem na &lt;strong>Hugo&lt;/strong>, co pozwoliło mi szybciej zacząć publikować wpisy na blogu. Tutaj również inspirowałem się podejściem &lt;a class="link" href="https://kaszkowiak.org/" target="_blank" rel="noopener"
>Macieja&lt;/a>, który polecił to rozwiązanie.&lt;/li>
&lt;/ul>
&lt;h2 id="co-dalej">Co dalej?
&lt;/h2>&lt;p>Ten projekt był świetną okazją do &lt;strong>pokazania moich umiejętności&lt;/strong> oraz &lt;strong>dzielenia się wiedzą&lt;/strong> z zakresu web developmentu, AI i innych tematów, które mnie interesują. Planuję rozbudować stronę o sekcję dotyczącą hobby czy wykształcenia.&lt;/p>
&lt;p>Jednak nie oszukujmy się – najbliższe miesiące będą dość intensywne, bo za tydzień zaczynam &lt;strong>nową pracę na 3/4 etatu&lt;/strong> oraz &lt;strong>studia II stopnia ze specjalnością AI&lt;/strong>. Presja? Owszem, ale podobno to przywilej – więc zamierzam to wykorzystać na maksa. Na nudę na pewno nie będę narzekać!&lt;/p>
&lt;p>Chcesz zobaczyć kod źródłowy albo dowiedzieć się więcej? Sprawdź &lt;strong>repozytorium na &lt;a class="link" href="https://github.com/benhus8/benedykt-the-dev" target="_blank" rel="noopener"
>GitHubie&lt;/a>&lt;/strong>.&lt;/p></description></item><item><title>SpeedDatingMatcher – Event Management z Django i Next.js</title><link>https://blog.huszcza.dev/pl/p/speeddating-matcher/</link><pubDate>Sun, 23 Feb 2025 17:00:00 +0000</pubDate><guid>https://blog.huszcza.dev/pl/p/speeddating-matcher/</guid><description>&lt;img src="https://blog.huszcza.dev/p/speeddating-matcher/cover.png" alt="Featured image of post SpeedDatingMatcher – Event Management z Django i Next.js" />&lt;h2 id="skąd-wziął-się-pomysł">Skąd wziął się pomysł?
&lt;/h2>&lt;p>Pomysł na &lt;strong>SpeedDatingMatcher&lt;/strong> zrodził się dzięki mojej siostrze Róży, która studiuje na Uniwersytecie Medycznym w Białymstoku. Co więcej, nie tylko studiuje – prowadzi również uczelniane pismo – &lt;a class="link" href="https://www.instagram.com/mlodymedyk_/" target="_blank" rel="noopener"
>Młody Medyk&lt;/a>. Od dwóch lat jej organizacja studencka organizuje eventy speed datingowe. No i tutaj pojawił się problem – według relacji Róży nic nie okazuje się bardziej żmudne, okropne i jest bólem nie do zniesienia jak sprawdzenie preferencji kontaktu uczestników oraz wysyłanie do nich maili z informacją zwrotną. Jeśli dobrze pamiętam to podczas wypowiadania tych słów, uroniła nawet nie jedną, a dwie łzy, ale takie krokodyle nawyki nabyła już w dzieciństwie. Mimo wszystko jako brat-deweloper postanowiłem jej pomóc i wziąłem sprawy w swoje ręce.&lt;/p>
&lt;h2 id="czym-jest-speeddatingmatcher">Czym jest SpeedDatingMatcher?
&lt;/h2>&lt;p>&lt;strong>SpeedDatingMatcher&lt;/strong> to system do zarządzania wydarzeniami speed datingowymi. Obsługuje rejestrację uczestników, dopasowywanie preferencji (kto chce się skontaktować z kim) oraz wysyłanie maili z kontaktami dzięki integracji z &lt;strong>Brevo&lt;/strong>. Pierwsza wersja została wdrożona na &lt;strong>Microsoft Azure&lt;/strong>, ale nie będę ukrywał – brak doświadczenia z SSR dał mi w kość. Skończyło się to większą frustracją, niż się spodziewałem, ale ostatecznie udało mi się aplikację uruchomić.&lt;/p>
&lt;p>W tegorocznej edycji (2025) postanowiłem podejść do tematu bardziej rozsądnie – nie tylko ze względu na moje doświadczenie z Azure, a również to finansowe, bo pakiet edukacyjnych stu dolarów całkowicie wykorzystałem na poprzednią edycję. Finalnie postawiłem na &lt;strong>VPS&lt;/strong> z wykorzystaniem &lt;strong>Dockera&lt;/strong> i &lt;strong>nginx&lt;/strong>. Miałem też do dyspozycji serwer &lt;strong>AWS EC2 Free Tier&lt;/strong>, ale wiedziałem, że wkrótce będę potrzebował serwera do tego bloga, więc od razu zdecydowałem się na VPS.&lt;/p>
&lt;h2 id="jak-to-działa">Jak to działa?
&lt;/h2>&lt;p>Głównym celem aplikacji nie jest tylko wysyłanie maili, ale &lt;strong>automatyczne dopasowywanie uczestników&lt;/strong> wydarzenia. Jak to działa?
Jeśli uczestnik z numerem 3 chce skontaktować się z numerem 2 oraz 1, muszę sprawdzić, czy zarówno numer 2, jak i 1 również chcą kontaktu z numerem 3. Dopiero wtedy, gdy jest &lt;strong>wzajemna chęć kontaktu&lt;/strong>, wysyłamy maila. Sytuację obrazuje poniższa grafika:&lt;/p>
&lt;p>&lt;img src="https://blog.huszcza.dev/p/speeddating-matcher/persons_preferences.png"
width="365"
height="262"
srcset="https://blog.huszcza.dev/p/speeddating-matcher/persons_preferences_hu54643acddc985cee68ba355411069e18_10118_480x0_resize_box_3.png 480w, https://blog.huszcza.dev/p/speeddating-matcher/persons_preferences_hu54643acddc985cee68ba355411069e18_10118_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Graf przedstawiający dopasowanie preferencji"
class="gallery-image"
data-flex-grow="139"
data-flex-basis="334px"
>&lt;/p>
&lt;p>Aplikacja oferuje m.in.:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Zarządzanie wydarzeniami randkowymi&lt;/strong> – Kompleksowe zarządzanie uczestnikami i spotkaniami.&lt;/li>
&lt;li>&lt;strong>Walidacja emaili&lt;/strong> – Sprawdzanie poprawności podanych adresów email.&lt;/li>
&lt;li>&lt;strong>Integracja z Brevo&lt;/strong> – Automatyczne powiadomienia i przypomnienia dla uczestników.&lt;/li>
&lt;/ul>
&lt;p>Dzięki wykorzystaniu &lt;strong>Django&lt;/strong>, mogę łatwo zarządzać użytkownikami i ich danymi.&lt;/p>
&lt;h2 id="stack-technologiczny">Stack technologiczny
&lt;/h2>&lt;ul>
&lt;li>&lt;strong>Django&lt;/strong> – Backend i zarządzanie bazą danych.&lt;/li>
&lt;li>&lt;strong>Next.js&lt;/strong> – Szybki frontend z renderowaniem po stronie serwera.&lt;/li>
&lt;li>&lt;strong>Brevo&lt;/strong> – Integracja do wysyłania e-maili.&lt;/li>
&lt;li>&lt;strong>BeautifulSoup4&lt;/strong> – Dynamiczna modyfikacja szablonów HTML w mailach.&lt;/li>
&lt;li>&lt;strong>Microsoft Azure&lt;/strong> – Hosting aplikacji w chmurze (pierwsza wersja).&lt;/li>
&lt;li>&lt;strong>Docker&lt;/strong> – Konteneryzacja aplikacji.&lt;/li>
&lt;li>&lt;strong>Nginx&lt;/strong> – Reverse proxy na serwerze VPS.&lt;/li>
&lt;/ul>
&lt;h2 id="czego-się-nauczyłem-i-co-dalej">Czego się nauczyłem i co dalej?
&lt;/h2>&lt;p>Szczerze mówiąc, był to &lt;strong>pierwszy poważniejszy projekt&lt;/strong>, który zrealizowałem poza pracą. Gdybym powiedział, że planowanie architektury, dobór technologii oraz pisanie kodu nie sprawiło mi ogromnej frajdy, to bym skłamał. Ten projekt naprawdę rozbudził moją deweloperską pasję.&lt;/p>
&lt;p>Mogłem &lt;strong>przetestować swoje pomysły&lt;/strong>, a przy okazji &lt;strong>nauczyć się dużo o SSR, Django i Azure&lt;/strong>. Nie było łatwo, ale każde wyzwanie było nową lekcją.&lt;/p>
&lt;p>Projekt współtworzyłem z &lt;a class="link" href="https://www.linkedin.com/in/maciej-korsakowski-a65b0226a/" target="_blank" rel="noopener"
>Maćkiem&lt;/a>, co pozwoliło mi zdobyć cenne doświadczenie w &lt;strong>zarządzaniu zadaniami&lt;/strong>, &lt;strong>współpracy zespołowej&lt;/strong> oraz &lt;strong>Code Review&lt;/strong>.&lt;/p>
&lt;p>Chcesz dowiedzieć się więcej? Sprawdź &lt;strong>repozytorium na &lt;a class="link" href="https://github.com/benhus8/SpeedDatingMatcher" target="_blank" rel="noopener"
>GitHubie&lt;/a>&lt;/strong>.&lt;/p></description></item></channel></rss>