Dlaczego to robię?

Cześć, nazywam się Mateusz Polak i od dekady jestem programistą. W swojej karierze pracowałem przy projektach rządowych związanych z bezpieczeństwem, tworzyłem rozwiązania dla branży medycznej oraz systemy dla spółdzielni banków skandynawskich.

Za każdym razem powtarzał się ten sam schemat: brakowało jakiegoś drobiazgu. Biblioteki, usługi, aplikacji – czegoś, co powinno istnieć, ale nie istniało, więc albo pisało się to od zera po raz kolejny, albo żyło się z niewygodą. bajty.pl to moja odpowiedź na te braki: biorę rzecz, której sam potrzebowałem, i doprowadzam ją do stanu, w którym ktoś inny może jej po prostu użyć.

Warto to powiedzieć wprost, bo pierwsze projekty mogą sugerować co innego: to nie jest miejsce o integracjach z systemami rządowymi. TERYT wyszedł pierwszy, bo akurat tego potrzebowałem i akurat tam ból był największy. Kryterium jest jedno i nie ma nic wspólnego z dziedziną: czy sam tego szukałem i czy uważam, że komuś jeszcze się przyda. Dlatego obok startera do Spring Boota stoi tu plugin do Steam Decka z aplikacją na iPhone'a – i oba traktuję tak samo poważnie.

Co trafia na tę listę

Brakowało mi tego

Każdy projekt zaczyna się od mojej własnej irytacji, nie od analizy rynku. Jeśli sam tego nie używam, nie mam jak stwierdzić, czy jest dobre.

Ma być skończone

Dokumentacja, testy, sensowne komunikaty błędów i aktualne zależności. Kod „prawie działający” nikomu nie oszczędza czasu – tylko przenosi problem dalej.

Otwarte tam, gdzie to ma sens

Biblioteki na open-source. Tam, gdzie usługa dotyka prywatnych danych, kod jest jawny do audytu, nawet jeśli licencja nie pozwala go hostować.

Model działania i wizja na przyszłość

Open Source

Najbardziej podstawowe komponenty udostępniam całkowicie za darmo – w ramach wsparcia dla innych twórców i firm. Ich kod jest otwarty (licencja open-source), dzięki czemu możesz z niego korzystać od zaraz.

Wersje Premium

Bardziej ambitne moduły i aplikacje mam zamiar udostępniać odpłatnie, co pozwoliłoby mi finansować czas poświęcony na rozwój projektów. O ich zakresie i przyszłości będę informował na bieżąco.

Bezpieczeństwo i Aktualność

Dbam o to, aby projekty były „czyste” dla skanerów bezpieczeństwa. Planuję częste aktualizacje, szczególnie w zakresie nowych podatności, oraz pełną kompatybilność z najnowszymi bibliotekami (Spring Boot itd.), abyś nie musiał martwić się o dług techniczny.

Obecnie rozwijam ten projekt samodzielnie pod szyldem bajty.pl, nie prowadząc jeszcze oficjalnej działalności gospodarczej. Jeśli jednak projekt przyjmie się na rynku, planuję formalnie zarejestrować markę, zrzeszyć wokół niej ambitne osoby i przekształcić bajty.pl w startup realnie wspierający polskie IT.

Jeśli moje rozwiązania zaoszczędziły Ci trochę czasu lub nerwów, a Twoja sytuacja finansowa na to pozwala, będę ogromnie wdzięczny za wsparcie poprzez GitHub Sponsors. Jednocześnie daję słowo: projekty na licencji open-source nigdy nie staną się płatne. Moim głównym celem jest po prostu ułatwianie Ci pracy.

Projekty

Dwa pierwsze projekty to integracje dla Javy, trzeci nie ma z nimi wspólnego ani jednej linijki kodu. To celowe – łączy je tylko to, że każdego z nich sam potrzebowałem.

TERYT Starter

Work in Progress

Lekka biblioteka ułatwiająca integrację aplikacji Spring Boot z rejestrem TERYT udostępnianym przez Główny Urząd Statystyczny (usługa sieciowa TERYT ws1). Zdejmuje z barków programisty konieczność ręcznej obsługi protokołu SOAP, generowania klas z WSDL oraz konfiguracji nagłówków WS-Security. Udostępnia czyste, współczesne API oparte na rekordach i enumach.

  • Zero Boilerplate'u – podajesz login i hasło w application.yml i gotowe
  • Hermetyzacja – klasy JAXB/CXF nigdy nie wyciekają do kodu biznesowego
  • Język wszechobecny – obiekty Wojewodztwo, Powiat, Gmina, Miejscowosc, Ulica
  • Nowoczesność – Java 25, Spring Boot 4.0, licencja open-source
Java 25 Spring Boot 4.0 open-source v0.9.0

Repozytorium na GitHubie:

github.com/bajty-pl/teryt-spring-boot-starter →

TERYT Rest API

Work in Progress

Aplikacja udostępniająca dane z krajowego rejestru urzędowego podziału terytorialnego kraju (TERYT) poprzez nowoczesny interfejs REST. Stanowi warstwę usługową agregującą i udostępniającą dane o podziale administracyjnym Polski, miejscowościach oraz ulicach.

  • Standard REST – dostęp do danych TERYT poprzez przyjazne endpointy
  • Dokumentacja OpenAPI – wbudowana obsługa Swagger UI ułatwiająca eksplorację API
  • Nowoczesność – Java 25, Spring Boot 4.0, licencja open-source
  • Integracja z ekosystemem bajty.pl – wykorzystuje TERYT Spring Boot Starter
Java 25 Spring Boot 4.0 open-source REST API Swagger UI

Repozytorium na GitHubie:

github.com/bajty-pl/teryt-rest-api →

Decky Homie – Steam Deck na nadgarstku

W budowie

Zupełnie inna półka niż TERYT i najlepszy dowód na to, o co mi chodzi. Steam Deck odłożony na kanapę nie powie Ci, że właśnie skończył pobierać grę ani że zaraz padnie mu bateria. Decky Homie przenosi jego stan tam, gdzie i tak patrzysz – na iPhone'a i Apple Watch: powiadomienia o progach baterii i podłączeniu ładowarki, koniec pobierania, start i koniec sesji gry, widget na ekranie blokady oraz Live Activity w Dynamic Island na czas grania.

Rozwiązanie składa się z trzech części: pluginu do Decky Loadera na Steam Decku, relaya w chmurze (bo Deck bywa uśpiony, a widget ma wtedy nadal coś pokazywać) oraz aplikacji na iOS i watchOS. Parowanie odbywa się kodem z ekranu Decka – bez wklepywania tokenów gamepadem.

  • Plugin Decky – backend w Pythonie (bateria, uptime, zdarzenia, kolejka offline) i cienki frontend w TypeScripcie na callbackach SteamClient; licencja GPL-3.0
  • Relay – Spring Boot, przechowuje ostatni stan i wysyła push przez APNs; kod jawny do audytu, licencja source-available
  • Aplikacja Apple – SwiftUI, niezależna aplikacja na Apple Watch, widget i Live Activity
  • Prywatność – relay dostaje dane z prywatnego urządzenia, więc jego kod jest jawny: widać, co przyjmuje, co zapisuje i jak długo to trzyma
Python TypeScript Spring Boot SwiftUI APNs Steam Deck

Status: prace trwają, repozytoria nie są jeszcze publiczne. Jeśli chcesz wiedzieć, kiedy ruszą testy – napisz na kontakt@bajty.pl.

Społeczność i rozwój

Nie chcę tworzyć kodu do szuflady. Jestem otwarty na Wasze sugestie, Pull Requesty i pomysły na nowe funkcjonalności – także na to, czego Wam brakuje. Zależy mi na tym, aby projekty były regularnie aktualizowane pod kątem bezpieczeństwa i wydajności, a społeczność miała realny wpływ na to, w jakim kierunku ewoluują.