Jeden developer. Osiem lat danych. Rok budowania. To nie jest typowa historia startupu — ale jest prawdziwa.
Trzeci produkt platformy. Rejestrujesz endpoint przez API, system pinguje go w zadanych interwałach i zbiera odpowiedzi — kod statusu, czas reakcji, payload. Alerty gdy coś przestaje odpowiadać.
Pierwsza ekspansja poza Polskę. Architektura multi-rejestr była zaprojektowana od pierwszego dnia właśnie z myślą o tym kroku — nowy kraj to nowe źródło danych, ten sam spójny format wyjściowy.
Automatyczne alerty email gdy wykryta zmiana dotyczy obserwowanego podmiotu. Konfigurowalny próg — wybierasz które typy zdarzeń generują powiadomienie.
Pełny reset i test produkcyjny — 23 godziny parsowania, 1.3 mln identity, 35 mln rekordów, 15 GB danych. Wszystkie endpointy przetestowane wielokrotnie: Search, Watchlist, Events, Wallet, kolejkowanie, agregacja logów.
Kompletna dokumentacja API, 4 przewodniki integracyjne, pricing oparty na kredytach. Gotowe.
Kompletna dokumentacja techniczna — Authentication, Tokens, Wallet, Companies, Watchlist, Events. Każdy endpoint z parametrami, przykładami curl i prawdziwymi response'ami. Cztery przewodniki integracyjne w PL i EN.
Trzy produkty platformy. Search z obowiązkowym filtrem kontaktu — każdy wynik ma zweryfikowany telefon, email lub faks. Watchlist z asynchronicznym kolejkowaniem do 100 podmiotów per request. Events feed z 29 typami zdarzeń wykrywanych codziennie z snapshotów GUS.
System kredytowy z integracją Paddle — brak subskrypcji, płacisz za to czego używasz, kredyty nie wygasają. Wielopoziomowy system tokenów: Master Token z pełnym dostępem, tokeny API z ograniczonym zakresem. Świadoma decyzja: checkout przez email, zero przechowywanych danych osobowych użytkowników.
Pipeline przestał być uruchamiany ręcznie z terminala. Cron odpala go codziennie w nocy — pobiera raporty new, updated, deleted z GUS, parsuje XML do domeny, wykrywa zmiany, generuje eventy. Działa bez przerwy od uruchomienia.
Pierwsza wersja integracji z GUS działała ale była spaghetti — CRUD mieszany z DTO, omijane warstwy, logika w złych miejscach. Nowe podejście: silos po silosie, typ raportu po typie, czyste przepięcie do domeny. Styczeń to testy i stabilizacja — uruchamiane ręcznie z terminala, codziennie.
3-etapowy pipeline: fetch raportów historycznych → download XML, parse do JSON, tworzenie batchy → parse batchy do domeny. Działało — ale nie tak jak powinno. Świąteczny reset i nowe podejście.
Trzy tygodnie budowania warstwy domenowej od zera — DTO, Writer, Cleaner, Factory, Resolver, Event. 41 tabel, pełne słowniki. Cały miesiąc na testy — świat musiał być przewidywalny zanim cokolwiek podłączono do produkcji.
Zapadła decyzja — rozwijam własną bazę danych w kierunku wykrywania zmian w podmiotach gospodarczych. Tygodnie researchu: hurtownia danych czy coś innego? Jakie wzorce? Co to DTO, Factory, Resolver — jak to się je? Odpowiedź: nisza, story-telling danych, wykrywanie zmian. Zaczynam budować domenę.
Po odejściu z korporacji w 2022, po latach z myślą "programowanie" z tyłu głowy — AI sprawiło że powiedziałem "sprawdzam". Wykupiłem VPS, dwa tygodnie konfiguracji, kilka pełnych rebootów i Laravel stał. Zacząłem uczyć się PHP i Laravela od absolutnego zera.
Ogrom pomysłów, kilkanaście nieukończonych projektów — ale jedno było pewne: zaczynam od API i na API kończę.
Lato 2017 — pierwszy skrypt pobierający raporty z GUS uruchomiony. Codziennie, w małych porcjach, same raporty new. Przez osiem lat — aktualizacje statusów, aktualizacje rekordów z GUS i CEIDG, upgrade do PHP 8.2 w 2024. Nikt nie wiedział że to kiedyś będzie czymś więcej niż lokalną bazą na dysku.
Marzec 2025 — 4.7 mln unikalnych REGONów w jednej tabeli, bez optymalizacji, za to z konsekwentnie zbieranymi danymi przez osiem lat.
2016/2017 — pierwsza styczność z danymi rejestrowymi. Zakup gotowej bazy do telemarketingu, totalna klapa sprzedażowa, ale jedno pytanie zostało: "skąd te dane?". Szukanie odpowiedzi, CEIDG, KRS, GUS. Przeliczenie — 400 PLN za 1000 rekordów, lepiej zbudować własne.
Lato 2017, upał za oknem, wszyscy nad wodą — pierwszy skrypt napisany przez zewnętrznego developera pobiera pierwsze dane z GUS. Podniecenie przed ekranem. Tak się zaczęło.