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ć.

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
256postawmy.pl, 27.09.2026
Firm z modelami
94postawmy.pl, 27.09.2026
Artykułów w poradniku
37postawmy.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ą.
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
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.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]”.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.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
| Start | Pro | Premium | |
|---|---|---|---|
| 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 zapytanie | po 48 godzinach | po 24 godzinach | od razu |
| Powiadomienie e-mailem | brak | po 24 godzinach | od razu |
| Odpowiedzi na giełdzie | do 3 miesięcznie | bez limitu | bez 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
| Warstwa | Technologia | Dlaczego |
|---|---|---|
| Aplikacja | Next.js 15 (App Router), React 19, Tailwind | strony renderowane po stronie serwera — pełna treść dla Google i asystentów AI |
| Baza danych | PostgreSQL (Neon, Frankfurt) przez Prisma; lokalnie SQLite | dane w UE, migracje w kodzie |
| Logowanie | NextAuth — e-mail i hasło, opcjonalnie Google | konta firm i kupujących |
| Zdjęcia firm | Vercel Blob, wysyłka prosto z przeglądarki | omija limit 4,5 MB na żądanie serwerowe |
| Mapa | Leaflet i OpenStreetMap | bez kluczy API i opłat za wyświetlenia mapy |
| Hosting i zadania | Vercel (Frankfurt), dwa zadania dziennie | np. powiadomienia pakietu Pro po 24 godzinach |
| Poczta | Resend | powiadomienia 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
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.Nie maskuj braków
Brak ceny, brak opinii, brak zapytań — pokaż to uczciwie. Zmyślona liczba albo pinezka szkodzi bardziej niż puste pole.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.Monetyzuj priorytet, nie dostęp
Przy małej skali odcięcie darmowych użytkowników zabija rynek. Sprzedawaj czas, pozycję albo wygodę.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?
Ile kosztuje zbudowanie portalu podobnego do postawmy.pl?
Dlaczego w katalogu przy cenach jest podane źródło?
Czy funkcja „Kto jest najbliżej?” wysyła moją lokalizację na serwer?
Dlaczego firmy w giełdzie nie widzą kontaktu do kupującego?
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
Czytaj dalej

