Przejdź do treści
Workin'FlowsBlog → AdRiser na n8n
n8n

AdRiser: SaaS bez backendu. 61 workflowów n8n robi robotę.

Adrian Krawczyk opublikowane ostatnia aktualizacja 7 min czytania

Panel AdRiser na telefonie: ROAS 4,21x, przychód 3525,44 PLN, wydatki 838,16 PLN, 741 kliknięć, 57 konwersji, lista kampanii
Mój własny panel AdRiser, dane z moich kampanii Allegro Ads. ROAS, wydatki, konwersje i P&L liczone po stronie n8n, nie w osobnym serwisie.

AdRiser monitoruje kampanie Allegro Ads: ROAS, wydatki, konwersje, alerty i P&L w jednym panelu PWA. Działa pod adresem adriser.pl. Nie ma pod nim ani jednej linijki backendu w Go czy Node. Backend to 61 workflowów n8n, baza Postgres i rozszerzenie Chrome jako fetch-proxy. Opisuję, jak to spięte i gdzie takie podejście się kończy.

Co AdRiser faktycznie robi

Sprzedawca na Allegro odpala kampanie Ads i po tygodniu nie wie, które zarabiają, a które przepalają budżet. Panel Allegro pokazuje surowe liczby, bez ROAS-u liczonego pod jego marżę i bez alertów. AdRiser zaciąga dane kampanii co 15 minut, liczy ROAS i P&L, pilnuje progów (spadek ROAS, przepalony budżet) i raz na 6 godzin generuje rekomendacje optymalizacji modelem Gemini na Vertex AI. Trzy plany: Manual 49 PLN miesięcznie (monitoring plus alerty), Automat 99 PLN miesięcznie (rekomendacje AI plus akcje automatyczne) i Agencja w wycenie indywidualnej.

Backend, którego nie ma

Klasycznie pod taki produkt napisałbym serwis: REST API, warstwa domeny, scheduler, integracje. W AdRiserze tej warstwy nie ma. Zamiast niej stoi 61 workflowów n8n, które wystawiają 43 endpointy webhookowe na 32 workflowach, plus baza adriser-db w Postgresie (około 40 tabel i 10 widoków). Front (Vite plus React, PWA) nie rozmawia z żadnym własnym API. Rozmawia z webhookami n8n.

Dlaczego tak, skoro to nietypowe. Trzy powody, wszystkie wynikają z tego, że robię to sam:

To nie jest darmowe (o koszcie niżej), ale dla produktu, którego logika to w 90 procentach operacje na danych, opłaca się.

Rozszerzenie Chrome jako fetch-proxy na CORS

Najciekawszy kawałek to nie n8n, tylko obejście CORS-a. Część danych Allegro pociągam serwerowo, oficjalnym API przez OAuth (cron co 15 minut, token trzymany zaszyfrowany AES-256-GCM). Ale są wywołania, które mają sens dopiero z poziomu przeglądarki zalogowanego użytkownika, i te blokuje CORS: Allegro nie pozwala wołać swoich endpointów z obcego origina.

Można było postawić własny serwer-proxy. Zamiast tego napisałem rozszerzenie Chrome w manifeście MV3, które robi fetch w kontekście MAIN world strony. Z tego kontekstu żądanie nie jest cross-origin w sensie, który blokuje przeglądarka, więc CORS odpada, a ja nie utrzymuję dodatkowej infrastruktury proxy. Rozszerzenie jest cienkie: autoryzuje, przekazuje, nic nie cache'uje.

Backend nie musi być serwisem. Czasem to 61 workflowów i jedno cienkie rozszerzenie. Liczy się, czy przepływ danych jest czytelny i czy umiesz go utrzymać w pojedynkę.

Reszta stacku, krótko

Gdzie to podejście się kończy (uczciwie)

Anti-hype, bo n8n jako backend ma realne granice i nie chcę sprzedawać tego jako srebrnej kuli:

Reality check

AdRiser nie jest dowodem, że „nie potrzebujesz backendu". Jest dowodem, że dla konkretnego produktu, robionego przez jedną osobę, n8n plus Postgres plus cienkie rozszerzenie wystarczą, żeby ruszyć i utrzymać. Gdyby AdRiser urósł do skali, gdzie latencja albo ruch zaczynają boleć, część przepływów przepisałbym na serwis. Architektura ma być pod etap, nie pod ego.

AdRiser działa pod adriser.pl. Jeśli sprzedajesz na Allegro i chcesz widzieć ROAS pod swoją marżę, a nie surowe liczby z panelu Ads, to jest dla Ciebie.

Najczęstsze pytania

Czy n8n nadaje się na backend produkcyjnego SaaS?

Dla AdRisera tak, bo logika to w większości operacje na danych: pobierz z Allegro, policz ROAS, zapisz do Postgresa, oddaj do PWA. n8n w queue mode z workerami i PgBouncerem to obsługuje. Granica jest tam, gdzie potrzebujesz niskiej latencji per request albo ciężkiej logiki w gorącej ścieżce.

Po co rozszerzenie Chrome, skoro jest API Allegro?

Część danych pociągam serwerowo przez oficjalne API (OAuth, cron co 15 minut). Rozszerzenie rozwiązuje osobny problem: niektóre wywołania z poziomu przeglądarki użytkownika blokuje CORS. Extension MV3 robi fetch w kontekście MAIN world, więc omija CORS bez stawiania własnego proxy serwerowego.

Ile kosztuje AdRiser?

Trzy plany: Manual 49 PLN miesięcznie, Automat 99 PLN miesięcznie i Agencja w wycenie indywidualnej. Pierwsze 100 kont ma 50 procent zniżki na rozliczenie roczne.

Chcesz backend, który utrzymasz sam?

U Ciebie zaczynam od warsztatu procesu (90 minut, bezpłatny). Rozrysujemy przepływ i powiem wprost, czy w Twoim przypadku wystarczy n8n, czy lepiej zwykły serwis. Bez wciskania jednego słusznego stacku.

Zamów warsztat → Albo zobacz AdRiser live.