Case study

Jak zbudowaliśmy postawmy.pl — portal z 256 domami modułowymi od 94 firm

postawmy.pl to nasz własny portal — katalog domów i obiektów modułowych — i najkrótsza odpowiedź na pytanie, jak podchodzimy do aplikacji webowych: cena pojawia się tylko ze źródłem, kontakt kupującego nie wychodzi poza serwis bez jego decyzji, a mapa nie pokazuje niczego, czego nie dało się sprawdzić.

Marcin PrzybyłCzas czytania: 10 minut
Zrzut strony postawmy.pl w ramce przeglądarki, obok schematyczna mapa z pinezkami i pięcioma najbliższymi punktami połączonymi linią
postawmy.pl: katalog, mapa producentów i giełda zapytań. Portal wydaje Wataha Media.

Większość naszych realizacji to strony i aplikacje klientów. postawmy.pl jest inny: to nasz własny portal — wydawcą jest Wataha Media — więc możemy pokazać go od środka, łącznie z kodem, decyzjami i rzeczami, które jeszcze nie działają tak, jak byśmy chcieli. Jeśli planujesz portal branżowy, katalog firm albo giełdę zleceń, ten tekst jest zapisem problemów, na które trafisz.

Modeli w katalogu

256

postawmy.pl, 27.09.2026

Firm z modelami

94

postawmy.pl, 27.09.2026

Artykułów w poradniku

37

postawmy.pl/poradnik

Problem: ceny domów modułowych są rozproszone i nieporównywalne

Kto szuka domu modułowego, szybko odkrywa, że producentów są dziesiątki, a każdy pokazuje ofertę inaczej: jeden podaje cenę brutto pod klucz, drugi „od” za stan surowy, trzeci nie podaje żadnej. Katalog miał zebrać to w jednym miejscu — z wyszukiwarką po rodzaju obiektu, metrażu i cenie, porównywarką modeli różnych firm i mapą — w sześciu kategoriach: domy całoroczne (146 modeli), domki letniskowe i rekreacyjne (49), domy mobilne i holenderskie (31), lokale usługowe i biura (16), zaplecze budowy (8) i glamping (6).

Decyzja 1: cena tylko ze źródłem, a brak ceny to nie zero

Najważniejsza decyzja w całym projekcie zapadła w bazie danych. Cena modelu ma jeden z trzech stanów: stała, „od” albo „do ustalenia” — i w tym ostatnim przypadku pole kwoty zostaje puste, a nie wypełnione zerem. Komentarz w kodzie mówi wprost, że zero zamiast braku wartości byłoby gorsze niż brak kolumny: psułoby sortowanie, średnie i filtry. Modele „do ustalenia” wypadają z filtra ceny, ale nie znikają — pod wynikami stoi informacja, ile jeszcze ofert ma cenę do ustalenia.

Druga połowa tej decyzji to źródło. Wpis redakcyjny — dodany przez nas, a nie przez firmę — bez adresu strony, z której pochodzą dane, jest odrzucany przy imporcie. Na stronie firmy stoi potem „Źródło: …” i oznaczenie „wpis redakcyjny”. Tam, gdzie producent nie napisał, czy cena jest netto czy brutto, pole zostaje puste zamiast zgadywania.

Skąd tyle ostrożności? Przy dodawaniu jednej z partii producentów, 26 sierpnia 2026, ośmiu z dziewięciu nie publikowało ceny żadnego modelu. Katalog, który w takiej sytuacji „uzupełnia” ceny, przestaje być katalogiem. A 26 września 2026 zrobiliśmy audyt cen: z 239 sprawdzonych modeli 148 potwierdziło się od razu, a 91 sprawdzaliśmy ręcznie.

Pustki nie wolno maskować treścią, której nikt nie sprzedaje, a awarii nie wolno maskować pustką.
zasada z dokumentacji projektu postawmy.pl

Decyzja 2: mapa bez zmyślonych pinezek

Mapa pokazuje 43 firmy z 16 województw i 131 postawionych domów z list referencyjnych producentów. Każda z tych liczb wymagała decyzji o tym, jak dokładna ma być pinezka.

  • Producenci stoją w centrum miasta z ich wpisu. Współrzędne 45 miast pobraliśmy raz, z OpenStreetMap, i trzymamy w projekcie — serwis nie pyta żadnej zewnętrznej usługi w trakcie działania. Kilka firm z jednego miasta dzieli jedną pinezkę z licznikiem.
  • Postawione domy mają współrzędne zaokrąglone do 0,01 stopnia, czyli mniej więcej do kilometra, a w dymku stoi „lokalizacja z dokładnością do miejscowości”. Dokładny adres pojawia się tylko za zgodą właściciela domu. Zdjęcie z oferty firmy jest podpisane jako poglądowe.
  • „Kto jest najbliżej?” liczy odległość w linii prostej wzorem haversine — w przeglądarce. Przeglądarka pyta o położenie dopiero po kliknięciu, a bez zgody można wybrać województwo. Interfejs mówi wprost: „liczymy w przeglądarce, niczego nie wysyłamy”.

W kodzie jest też reguła, której łatwo nie zauważyć: warstwa zbudowanych domów włącza się sama dopiero wtedy, gdy jest ich co najmniej 15 od co najmniej 5 firm. Mapa z trzema punktami wyglądałaby na pustą, a pusta mapa jest gorszą reklamą niż jej brak.

Decyzja 3: giełda zapytań, w której kontakt nie wycieka

  1. Kupujący opisuje, czego szuka

    Dostaje prywatny link do swojego zapytania. W bazie leży tylko skrót tego linku (SHA-256), a sam link jest ważny 180 dni. Limit to 2 zapytania na 7 dni — przeciw spamowi.
  2. Zapytanie trafia na giełdę bez kontaktu

    Publicznie widać tylko województwo i imię z inicjałem. Numery telefonów i adresy e-mail wpisane w opis są maskowane jako „[numer ukryty]” i „[e-mail ukryty]”.
  3. Firmy odpowiadają ceną i terminem

    Oba pola są obowiązkowe, do tego opcjonalnie zakres, to, czego oferta nie obejmuje, i plik PDF. Jedna firma składa jedną ofertę na zapytanie.
  4. Kupujący wybiera ofertę

    Pozostałe oferty dostają status „odrzucona”, zapytanie się zamyka, a kontakt trafia mailem wyłącznie do wybranej firmy — to jedyny moment, w którym wychodzi poza serwis.

Decyzja 4: pakiety sprzedają czas, nie dostęp

Pakiety dla producentów na postawmy.pl/dla-producentow, stan na 27.09.2026. Premium: najwyżej 3 firmy na województwo.
StartProPremium
Cena startowa (do 31.12.2026)0 zł83 zł/mies. (997 zł za 12 mies.)250 zł/mies. (2 997 zł za 12 mies.)
Kiedy firma widzi nowe zapytaniepo 48 godzinachpo 24 godzinachod razu
Powiadomienie e-mailembrakpo 24 godzinachod razu
Odpowiedzi na giełdziedo 3 miesięczniebez limitubez limitu
Prowizja od zleceń0%0%0%

Najprostszy model byłby taki: firma płaci — widzi zapytania, nie płaci — nie widzi. Wybraliśmy inny, bo przy małej liczbie zapytań odcięcie darmowych firm zabiłoby giełdę dla kupujących. Pakiety różnią się czasem: Premium widzi zapytanie od razu, Pro po dobie, Start po dwóch. Komentarz w kodzie ujmuje to jednym zdaniem — Premium widzi zapytania wcześniej, a nie więcej. Publiczna tablica też pokazuje zapytania dopiero po 48 godzinach, żeby priorytetu nie dało się obejść, otwierając giełdę w oknie prywatnym.

Opinie, których nie da się dopisać samemu

  • Opinię może dodać tylko zalogowany użytkownik: od 1 do 5 gwiazdek i od 20 do 2000 znaków.
  • Właściciel firmy nie może ocenić własnej firmy.
  • Każda opinia czeka w kolejce moderacji, zanim się pojawi.
  • Oznaczenie „po zapytaniu w serwisie” nadaje serwer — tylko wtedy, gdy autor rzeczywiście wysłał tej firmie zapytanie.
  • Firma może odpowiedzieć na opinię dokładnie raz. Opinii z innych serwisów nie importujemy.

SEO: indeksujemy tylko to, co ma treść

Portal katalogowy łatwo zamienić w tysiące pustych podstron, które Google uzna za szum. Dlatego sitemapa i indeksowanie mają twarde reguły zapisane w kodzie:

  • Strona kategorii w województwie (np. domy całoroczne w jednym województwie) trafia do sitemapy dopiero wtedy, gdy ma co najmniej 3 oferty.
  • Strona modelu jest indeksowana tylko wtedy, gdy ma zdjęcie, cenę albo opis ceny i opis dłuższy niż 200 znaków lub tabelę parametrów. Wcześniej w kodzie stała reguła, przez którą 67 stron z fotografią, ceną i opisem było poza wyszukiwarką tylko dlatego, że firma nie miała abonamentu — komentarz nazywa ją najdroższym pojedynczym wierszem w kodzie. Dziś stoi tam: „teraz decyduje treść, nie cennik”. Pakiet sprzedaje wyróżnienie, a nie obecność w Google.
  • Dane strukturalne mówią prawdę o cenie: model z ceną stałą dostaje ofertę z ceną, model z ceną „od” — przedział z ceną minimalną, a model bez ceny nie dostaje oferty wcale.
  • Każda strona ma własny canonical i obraz do udostępniania 1200×630, a plik llms.txt dla asystentów AI powstaje z bazy danych — z sekcją o tym, czego katalog nie wie. Roboty 23 asystentów AI są w robots.txt wpuszczone z nazwy.

Jak przygotować pod AI własną stronę, opisujemy krok po kroku w tekście o stronie gotowej pod AI.

Stack: Next.js, Prisma i baza w Unii Europejskiej

Na podstawie kodu projektu, stan na 27.09.2026.
WarstwaTechnologiaDlaczego
AplikacjaNext.js 15 (App Router), React 19, Tailwindstrony renderowane po stronie serwera — pełna treść dla Google i asystentów AI
Baza danychPostgreSQL (Neon, Frankfurt) przez Prisma; lokalnie SQLitedane w UE, migracje w kodzie
LogowanieNextAuth — e-mail i hasło, opcjonalnie Googlekonta firm i kupujących
Zdjęcia firmVercel Blob, wysyłka prosto z przeglądarkiomija limit 4,5 MB na żądanie serwerowe
MapaLeaflet i OpenStreetMapbez kluczy API i opłat za wyświetlenia mapy
Hosting i zadaniaVercel (Frankfurt), dwa zadania dziennienp. powiadomienia pakietu Pro po 24 godzinach
PocztaResendpowiadomienia o zapytaniach i ofertach

Czego jeszcze nie wiemy

Portal jest świeży i nie będziemy udawać, że jest inaczej. Giełda zapytań działa technicznie, ale ma na razie jedno zapytanie — oznaczone jako przykład, za którym nie stoi klient. Opinii jest zero, firm zweryfikowanych też zero: wszystkie wpisy producentów są redakcyjne i żadna firma nie przejęła jeszcze swojego profilu. Dlatego w tym tekście nie ma ani jednej liczby o ruchu, zapytaniach czy przychodach — opisujemy decyzje, a nie wyniki. Wyniki opiszemy, kiedy będą.

Co z tego wynika dla Twojego portalu

  1. Zacznij od tego, co ma wartość bez użytkowników

    Katalog z rzetelnymi danymi przyciąga ruch od pierwszego dnia. Giełda i opinie potrzebują ruchu, żeby w ogóle zadziałać — dokładaj je jako drugi etap.
  2. Nie maskuj braków

    Brak ceny, brak opinii, brak zapytań — pokaż to uczciwie. Zmyślona liczba albo pinezka szkodzi bardziej niż puste pole.
  3. Chroń to, co najcenniejsze

    W giełdzie zleceń to kontakt kupującego. W katalogu — wiarygodność danych. Architekturę projektuj wokół tego, a nie wokół listy funkcji.
  4. Monetyzuj priorytet, nie dostęp

    Przy małej skali odcięcie darmowych użytkowników zabija rynek. Sprzedawaj czas, pozycję albo wygodę.
  5. Indeksuj tylko strony z treścią

    Reguły indeksowania zapisane w kodzie chronią portal przed tysiącami pustych podstron, które ciągną w dół całą domenę.

Takie projekty budujemy jako serwisy webowe i systemy dedykowane. Inny działający portal, który zbudowaliśmy — ogólnopolską wyszukiwarkę stajni Moja Stajnia — opisujemy na stronie aplikacji mobilnych i webowych.

Źródła

Najczęstsze pytania

Czy postawmy.pl to projekt dla klienta?
Nie. To nasz własny portal — wydawcą jest Wataha Media. Budujemy go i rozwijamy sami, więc możemy opisać go dokładniej niż projekt klienta: łącznie z tym, co jeszcze nie działa tak, jak byśmy chcieli.
Ile kosztuje zbudowanie portalu podobnego do postawmy.pl?
Serwisy webowe zaczynają się u nas od 10 000 zł, a portal z kontami firm, giełdą zapytań, opiniami i mapą wyceniamy indywidualnie, po rozpisaniu funkcji na etapy. Najczęściej radzimy zacząć od części, która ma wartość bez danych od użytkowników — katalogu z dobrymi opisami — i dopiero potem dokładać giełdę i opinie.
Dlaczego w katalogu przy cenach jest podane źródło?
Bo ceny domów modułowych są rozproszone, podawane raz netto, raz brutto, raz „od”, a wielu producentów nie publikuje ich wcale. Wpis redakcyjny bez adresu źródła nie przechodzi importu, a model bez ceny dostaje status „do ustalenia” zamiast wymyślonej kwoty albo zera.
Czy funkcja „Kto jest najbliżej?” wysyła moją lokalizację na serwer?
Nie. Przeglądarka pyta o położenie dopiero po kliknięciu przycisku, a odległość do firm liczy się na miejscu, w przeglądarce — wzorem haversine, do miasta z wpisu firmy. Bez zgody na lokalizację można wybrać województwo. Na serwer nie trafia nic.
Dlaczego firmy w giełdzie nie widzą kontaktu do kupującego?
Bo kontakt jest tym, co kupujący oddaje najtrudniej. Firmy odpowiadają ceną i terminem, kupujący porównuje oferty pod prywatnym linkiem, a kontakt trafia wyłącznie do firmy, której ofertę wybierze — to jedyny moment, w którym wychodzi poza serwis.

O autorze

Marcin Przybył

Prowadzi zespół, który od 2021 roku zajmuje się tworzeniem narzędzi, aplikacji, serwisów i nowoczesnych stron internetowych.

  • wdrożenia AI i agentów w firmach
  • automatyzacja procesów (n8n, Make, integracje API)
  • strony i aplikacje w Next.js
  • sklepy internetowe i systemy dedykowane
  • pozycjonowanie (SEO) i widoczność w wyszukiwarkach generatywnych
  • kampanie Google Ads, Meta Ads i TikTok Ads
Opublikowano

Czytaj dalej