Strony i serwisy · Case study
BudMax – koncepcyjna strona firmy budowlanej z CMS i SEO
Projekt portfolio pokazujący, jak buduję nowoczesną stronę dla firmy budowlanej: portfolio realizacji, Sanity CMS, formularz zapytań, lokalne SEO, bezpieczeństwo i optymalizację wydajności.
- Klient
- Projekt koncepcyjny Netova
- Publikacja
- Czas czytania
- 6 min
- Zakres
- Biznes

94+/100
Performance
100/100
SEO Score
97/100
Accessibility
0.8s
Czas ładowania
Galeria
Spis treści
BudMax to projekt koncepcyjny przygotowany do portfolio Netova. Nie jest to realizacja wykonana dla zewnętrznego klienta, dlatego nie przypisuję jej fikcyjnych wyników sprzedażowych, pozycji w Google ani opinii właściciela.
Projekt zbudowałem wokół realistycznego scenariusza firmy budowlanej, która potrzebuje profesjonalnie prezentować realizacje, zbierać zapytania ofertowe i samodzielnie zarządzać treścią.
Co chciałem pokazać
- projektowanie serwisu dla lokalnej firmy usługowej,
- architekturę treści nastawioną na ofertę, realizacje i kontakt,
- wdrożenie headless CMS Sanity,
- formularz zabezpieczony przed spamem i nadużyciami,
- techniczne SEO i przygotowanie pod pozycjonowanie lokalne,
- wydajny frontend w Next.js,
- możliwość rozwoju strony o blog, kolejne usługi i realizacje.
Status projektu: projekt koncepcyjny / portfolio. Dane techniczne dotyczą wersji demonstracyjnej; nie są to wyniki biznesowe prawdziwego klienta.
Jak zbudowałem projekt
Projekt realizowaliśmy w ramach planu Biznes (od 4 000 PLN) — zakres: dedykowany headless CMS (Sanity Studio), rozbudowane formularze, integracje z Google Reviews, panel zarządzania treścią, zabezpieczenia antyspamowe i pełne SEO.
To nie była „strona wizytówka". To system sprzedażowy z panelem administracyjnym, który pozwala firmie samodzielnie zarządzać realizacjami, zespołem, usługami i opiniami.
1. Strategia i audyt
- Analiza 10 stron firm budowlanych w Warszawie — zidentyfikowaliśmy standardy i luki
- Badanie fraz kluczowych: „firma budowlana Warszawa", „budowa domu Warszawa", „remont mieszkania Warszawa", „wykończenia pod klucz"
- Kluczowy insight: klienci B2B podejmują decyzję na podstawie portfolio i opinii — te dwie sekcje musiały dominować
- Zdefiniowanie person: (1) inwestor prywatny budujący dom, (2) deweloper szukający generalnego wykonawcy, (3) właściciel mieszkania planujący remont
- Mapowanie ścieżki: Google → Hero → Statystyki → Usługi → Realizacje → Opinie → Formularz kontaktowy
2. Architektura CMS — Sanity Studio
Najważniejsza decyzja techniczna w projekcie: headless CMS zamiast WordPress.
Dlaczego Sanity, a nie WordPress?
- Treści dostarczane przez API (GROQ) → Next.js renderuje je w SSR → natywny PageSpeed
- Panel admina wbudowany w stronę pod
/studio— zero osobnego hostingu, zero aktualizacji wtyczek - Klient edytuje treści w czasie rzeczywistym: tekst, obrazy, kolejność sekcji — bez dzwonienia do nas
- Content revalidation co 60 sekund — zmiany widoczne niemal natychmiast
Schemat content types:
| Content Type | Pola edytowalne |
|---|---|
| Home Page | Hero (tekst, CTA, karuzela zdjęć), sekcje: stats, about, FAQ |
| Services | Nazwa, opis, ikona, slug, zdjęcie — każda usługa osobna podstrona |
| Projects | Tytuł, kategoria, opis, lokalizacja, rok, galeria — filtrowane |
| Team Members | Imię, stanowisko, bio, zdjęcie, kontakt |
| Testimonials | Autor, tekst, ocena, rola — lub auto-import z Google Reviews |
| Blog Posts | Tytuł, treść (Portable Text), kategorie, SEO fields |
| Legal Pages | Polityka prywatności, regulamin — edytowalne z CMS |
| Global Settings | Logo, kolory, dane kontaktowe, social links, godziny pracy, SEO |
Panel w języku polskim (@sanity/locale-pl-pl) — klient od razu rozumie interfejs.
3. Rozwój
Stack technologiczny:
- Next.js 16 — SSR, ISR z
revalidate: 60, natywnesitemap.tsirobots.ts, optymalizacja obrazów przez Sharp - Sanity v5 + next-sanity 12 — headless CMS ze Studio wbudowanym w
/studio, GROQ queries, CDN obrazów - Tailwind CSS 4 — utility-first; spójny design system, zero zbędnego CSS
- TypeScript 5 — pełne typowanie wszystkich content types z Sanity; zero runtime errors
- Cloudflare Turnstile — nowoczesna alternatywa dla reCAPTCHA; chroni formularz bez CAPTCHy; lazy-loaded dopiero przy scrollu do formularza
- IP Rate Limiting — ochrona API route przed bruteforce; max 5 wiadomości / 15 min z jednego IP
- Google Reviews API — automatyczny import opinii z Google z filtrem minimum 4 gwiazdek
- Sharp — optymalizacja obrazów server-side; AVIF/WebP, ostre thumbnails
- Critters + cssnano — critical CSS inline + minifikacja; zero FOUC
- Lucide React — ikony tree-shakeable; zero bloatu
- Vercel — edge hosting z CDN, automatyczne deploye
Kluczowe decyzje techniczne:
- Karuzela Hero — klient sam dodaje zdjęcia realizacji do hero; każde zoptymalizowane przez Sanity CDN +
quality(45)+ lazy blur placeholder - Dynamic imports — sekcje poniżej foldu ładowane dynamicznie (Services, Projects, Reviews, FAQ, Contact); redukcja initial JS o ~45 kB
- HomeDeferredContent — jeden komponent Suspense opakowuje wszystkie non-critical sekcje; hero renderowany bez opóźnień
- Intersection Observer na Turnstile — widget antyspam ładuje się dopiero gdy formularz wejdzie w viewport (200px margin); zero kosztu JS na starcie
- Google Reviews z konfiguracją z CMS — klient w Sanity Studio decyduje: czy pokazywać Google Reviews, ile, z jakim minimum gwiazdek
- JSON-LD GeneralContractor — structured data z pełnymi danymi firmy: adres, NIP, godziny pracy, rating; rich snippet w Google
- Revalidation 60s — ISR cache odświeżany co minutę; szybkość statycznej strony + świeżość CMS
4. Architektura sekcji
| Sekcja | Cel biznesowy |
|---|---|
| Hero | Karuzela realizacji w tle + 3 checkmarki (Darmowa wycena 24h, Gwarancja, Terminowość) + 2 CTA |
| Stats | 15+ lat, 200+ projektów, 50+ pracowników, 100% zadowolonych — dowód skali w 3 sekundach |
| About | 6 wyróżników z ikonami + lista osiągnięć — budowanie zaufania |
| Services | 6 usług z ikoną i opisem → osobna podstrona każdej → SEO long-tail |
| Projects | Filtrowane po kategorii (dom, remont, hala, wykończenie) + lokalizacja + rok |
| Team | Twarze zespołu: właściciel, architekt, kierownik budowy, specjalista ds. klienta |
| CTA | Mid-page: „Gotowy na realizację swojego projektu?" + telefon + formularz |
| Reviews | Opinie klientów (z CMS lub Google Reviews) z nazwiskiem i typem projektu |
| FAQ | 5 najczęstszych pytań — odpowiedzi redukujące obiekcje (czas, koszt, gwarancja) |
| Contact | Formularz (imię, tel, email, usługa, wiadomość) + mapa Google (click-to-load) + dane |
| Blog | Artykuły z Portable Text + kategorie — content marketing i SEO długoterminowe |
5. Bezpieczeństwo
Strona firmy budowlanej to cel spamerów — dlatego wdrożyłem wielowarstwowe zabezpieczenia:
- Cloudflare Turnstile — weryfikacja human/bot bez irytującej CAPTCHy; ładowana lazy
- Server-side IP rate limiting — max 5 wiadomości z jednego IP na 15 minut
- Server Actions — formularz przetwarzany po stronie serwera; zero wystawionych endpointów
- Input validation — walidacja po stronie klienta i serwera; sanityzacja danych
- CSP headers — Content Security Policy ograniczająca external scripts
6. SEO on-page
- Metadata API Next.js z danymi z Sanity CMS — title i description zarządzane z panelu
- JSON-LD GeneralContractor — organizacja, adres, godziny, rating, NIP
- Schema.org AggregateRating — średnia ocen widoczna w Google (konfigurowana z CMS)
- Open Graph — obraz OG z realizacją budowlaną; CTR z social media i komunikatorów
- Dynamiczne
sitemap.ts— automatycznie generuje URL-e usług, projektów i bloga - Blog z kategoriami — strategia content marketingowa: „Jak długo trwa budowa domu?", „Ile kosztuje remont?" — frazy, które klienci wpisują w Google
Ten projekt ma pokazać sposób, w jaki podchodzę do stron dla firm usługowych: nie tylko do wyglądu, ale też do struktury treści, zarządzania stroną, bezpieczeństwa formularzy, SEO i wydajności.
Weryfikacja techniczna wersji demonstracyjnej
| Obszar | Wartość / rozwiązanie |
|---|---|
| Lighthouse Performance | 94/100 |
| Lighthouse SEO | 100/100 |
| Lighthouse Accessibility | 97/100 |
| LCP | 0,8 s |
| Zarządzanie treścią | Sanity CMS |
| Ochrona formularza | Turnstile + rate limiting |
Wartości powyżej opisują testy techniczne wersji demonstracyjnej. Nie przedstawiają wzrostu sprzedaży, liczby leadów ani efektów SEO po wdrożeniu u klienta.
Podsumowanie
BudMax pokazuje, że potrafię połączyć nowoczesny frontend z praktycznym zapleczem dla firmy: CMS-em, formularzami, strukturą realizacji, SEO i zabezpieczeniami. To przykład rozwiązania, które można dopasować do realnej firmy budowlanej, remontowej lub wykończeniowej.
Prowadzisz firmę usługową i potrzebujesz podobnego rozwiązania? Porozmawiajmy o tym, czego faktycznie potrzebuje Twój biznes.