Gotowy CMS dla pensjonatów, domów gościnnych, domków letniskowych i apartamentów na wynajem. Edytujesz wszystkie treści, zdjęcia, ceny i SEO z własnego panelu. Bez programisty, bez subskrypcji, bez prowizji od rezerwacji.
Pojedynczy plik ZIP, który po wgraniu przez FTP i 30-sekundowej instalacji daje Ci kompletny CMS gotowy do pracy. Nic nie musisz dodatkowo kupować.
Cała witryna React (statyczne pliki) — szybka, animowana, SEO friendly. Lighthouse 95+.
Logowanie z bcrypt, CSRF, rate-limit. Wszystkie ekrany do edycji treści i zdjęć.
4 endpointy: galleries, settings, track, contact-submit. Frontend pobiera z nich dane.
Tworzy tabele MySQL, dodaje przykładowe treści, 1 demo pokój i 1 galerię obiektu.
Każda aktualizacja sama dorzuca brakujące tabele i kolumny — zero ręcznej pracy w SQL.
Wstrzykuje meta tagi do `<head>` zanim React się załaduje — Google widzi gotowy HTML.
sitemap.xml.php aktualizuje się sam przy każdej zmianie w panelu.
Rewrite, kompresja gzip, cache headers, security headers — wszystko ustawione.
Demo zdjęcia hero/pokój/obiekt do podmiany na własne. Strona od razu wygląda profesjonalnie.
Przejrzysty template konfiguracji — wystarczy uzupełnić 4 pola (DB + login admina).
Pełna instrukcja krok po kroku w języku polskim. Lista typowych problemów + rozwiązania.
Wszystkie sekcje zawierają „Twój obiekt" / „Edytuj w panelu" — łatwo dostosować pod markę.
Cztery główne zakładki: Galerie (zdjęcia pokoi i obiektu), Sekcje (wszystkie treści strony), Blog (artykuły z AI), Statystyki (ruch i klikalność). Wszystko po polsku, bez kodu, bez dokumentacji programistycznej. Poniżej kompletny przegląd — co kliknąć, żeby zmienić co.
Każdy fragment strony głównej (od powitania po stopkę) edytujesz w osobnym formularzu z podglądem. Każdą sekcję możesz włączyć/wyłączyć przełącznikiem — Twoja strona pokaże tylko to, co ma być widoczne.
Pierwsze co widzi gość po otwarciu strony. Edytujesz nazwę obiektu i adres, główny tytuł powitalny w 2 liniach (drugą kursywą i w innym kolorze), opis, dwa CTA (np. „Zadzwoń" / „Zobacz pokoje") oraz 4 statystyki na pasku (np. „10 min do plaży" / „6 pokoi" / „WiFi gratis"). Tło hero — zdjęcie obiektu — wybierasz z biblioteki uploadów lub wgrywasz nowe drag&drop.
Włączasz checkboxem i każdy slajd ma własne tło + tytuł + kursywę + opis. Ustawiasz interwał 2-20 sekund, dodajesz dowolną liczbę slajdów. Crossfade 0.9s, strzałki ◀ ▶ po bokach, kropki na dole, pauza przy hover. Auto-konwersja zdjęć do WebP przy upload — strona ładuje się 30% szybciej.
Sekcja narracyjna — dlaczego ktoś ma wybrać Ciebie. Tytuł 2-liniowy + dowolna liczba akapitów. HTML jest dozwolony w treści — możesz pogrubić frazy kluczowe SEO tagami <strong> (np. „noclegi w Rewalu") bez znajomości kodu. Googlebot widzi je jako mocny sygnał tematyczny.
Tekst tuż nad listą pokoi/domków/apartamentów. Eyebrow, tytuł 2-liniowy oraz opis dlaczego wszystkie Twoje jednostki są warte uwagi.
Każdy pokój / domek / apartament to osobna galeria. Tworzysz dowolną ilość, mieszasz kategorie. Dla każdej ustawiasz:
• Tytuł (np. „Apartament Lawenda")
• Typ (Pokój / Domek / Apartament)
• Liczba osób (1-20)
• Etykieta (np. „2-osobowy z aneksem")
• Opis
• Lista wyposażenia per-galeria (TV LCD, klimatyzacja, kominek…)
• Ikony udogodnień (24 do wyboru: WiFi, Coffee, TV, Bath, Sun, Snowflake…)
• Zdjęcia z drag&drop kolejności, opisy alt-text, wybór miniatury, hide/show, auto-WebP konwersja, auto-pomiar wymiarów (dla Image Sitemap)
Zdjęcia całego obiektu — fasada, ogród, części wspólne. Własny tytuł i opis sekcji. Te zdjęcia trafiają do karuzeli Google Knowledge Graph pod nazwą firmy w wynikach wyszukiwania (do 16 zdjęć w image[] Schema.org).
Tworzysz dowolną liczbę dodatkowych galerii (np. „Okolica", „Wschody słońca", „Wesele 2025"). Wyświetlają się jako przełączane tabsy z dużym podglądem + miniaturkami + lightboxem. Sekcja auto-ukrywa się gdy nie masz żadnej dodatkowej galerii.
Dla każdej kategorii cenowej tworzysz dowolną liczbę okresów (np. „1-5 maja", „lipiec/sierpień") i przypisujesz ceny. Ceny automatycznie trafiają do priceRange i AggregateOffer w Schema.org — Google pokazuje „od X PLN" w wynikach wyszukiwania.
Pasek z głównymi atutami — WiFi, parking, kuchnia, grill, plaża, sklep. Dla każdego: ikona z biblioteki Lucide (24 do wyboru), tytuł i opis. Dodajesz, usuwasz, przesuwasz strzałkami.
Karty z trasami (np. „Trasa do plaży", „Trasa do sklepu") — każda z czasem dojścia, opisem i linkiem prowadzącym do Google Maps z gotową nawigacją z Twojego adresu. Gość klika i ma trasę na telefonie.
Lista lokalnych atrakcji w okolicy. Każda z opisem, oznaczeniem „polecane" i kolejnością. Świetnie pozycjonuje się pod frazy typu „co zwiedzić w [miasto]".
Pytania i odpowiedzi (lokalizacja, ceny, parking, doba hotelowa). Auto-generuje JSON-LD FAQPage — Twoje pytania pojawiają się w wynikach Google jako rich snippets, co zwiększa klikalność (CTR) nawet o 30%.
Zasady pobytu — doba hotelowa, rezerwacje, zadatek, cisza nocna, zwierzęta. Format pytanie + odpowiedź jak FAQ.
Krótki opis pod nazwą obiektu, copyright oraz linijka ze słowami kluczowymi SEO. Przełączniki — pokaż/ukryj słowa kluczowe i notkę RODO.
Pełnoprawny system blogowy — Twoja strona staje się autorytetem tematycznym w okolicy. Google linkuje do Ciebie z wyników wyszukiwania pod frazy typu „co zwiedzić w [miasto]", „najlepsze plaże w [region]".
Tytuł, slug, kategoria, tagi, zdjęcie okładki (auto WebP), excerpt, treść w edytorze WYSIWYG (bold, italic, listy, linki, nagłówki, cytaty, obrazy w treści). Status szkic / zaplanowany / opublikowany, data publikacji (możesz zaplanować na przyszłość). Licznik wyświetleń wpisu. Powiązane wpisy auto-dobiera się po kategorii.
W edytorze masz 3 przyciski AI: „Wygeneruj wpis na temat..." (od briefa do gotowego artykułu w sekundach), „Rozwiń ten akapit" (pisz po polsku, AI dobierze styl), „Wygeneruj alt dla wszystkich zdjęć w treści" (pojedynczy klik, AI opisuje każdą wstawioną grafikę). Używa klucza OpenAI klienta (wklejasz raz w panelu).
Klucz przechowywany szyfrowany w DB. Bezpieczne dla GDPR — żaden tekst nie idzie do nas.
Per-wpis: własny SEO title, meta description, Open Graph image, canonical. Każdy wpis generuje JSON-LD BlogPosting z autorem, datą publikacji/modyfikacji, kategorią, obrazem okładki. Auto-RSS feed pod /blog/rss.xml — odkrywany przez czytniki i przez Google.
Każda kategoria i tag mają własne strony z listą wpisów: /blog/kategoria/atrakcje, /blog/tag/plaza. Wszystkie z SEO meta, breadcrumbs i własnym `BreadcrumbList` schemą. Trafia do sitemap.xml.
Sekcja z 3 najnowszymi wpisami przed kontaktem na stronie głównej. Czeckbox włącz/wyłącz. Jeden szybki strzał — zwiększa pageviews / sesję, zatrzymuje gościa dłużej na stronie.
Dwa źródła opinii: ręcznie wpisane (z Google Maps / Booking) i publicznie zgłaszane przez gości (formularz na stronie).
Dodajesz opinie z innych źródeł (Booking, Google, Facebook): nazwisko gościa, gwiazdki 1-5, treść, oznaczenie pobytu (np. „lipiec 2025"). Sortowanie strzałkami, hide/show, edit/delete.
Na stronie pod sekcją Opinie jest formularz „Napisz opinię" (z miłą ikoną pióra i wskazówką). Gość wpisuje imię, gwiazdki, treść — opinia trafia do panelu admina ze statusem oczekuje na moderację. W panelu masz przyciski ✓ Zatwierdź / ✏ Edytuj / 🗑 Usuń.
Antyspam: honeypot, czas wypełnienia, rate-limit per IP (1/godzinę), filtr botów. Zatwierdzone opinie natychmiast pojawiają się na stronie.
Gdy masz min. 3 opinii, automatycznie generuje się AggregateRating (średnia gwiazdek, liczba opinii) i każda opinia jako Review z itemReviewed, author Person. Gwiazdki pojawiają się obok Twojej nazwy w wynikach Google — najmocniejszy wizualny boost CTR.
Wszystkie kanały kontaktu w jednym miejscu, synchronizowane między nagłówkiem, sekcją kontakt i stopką.
Telefon (display + raw tel: link), e-mail, WhatsApp (z deep-linkiem), Facebook, adres, dane do przelewu (bank + IBAN). Kliknięcie IBAN kopiuje numer do schowka.
Włącznik on/off. Pola standardowe (imię, e-mail, telefon, wiadomość) + data przyjazdu i wyjazdu (kalendarze) — gość od razu pyta o konkretny termin. Twój SMTP (host, port, login, hasło) — każdy mail leci do Ciebie i zapisuje się kopia w bazie.
W panelu masz tabelę „Ostatnie 10 zgłoszeń" ze statusem (✓ wysłany / ✗ błąd SMTP). Antyspam: 4 mechanizmy (honeypot, czas wypełnienia, rate-limit per IP, user-agent filter).
Najpotężniejsza część panelu. Każde pole tu wpływa bezpośrednio na to, jak Twoja strona wygląda w wynikach Google.
Edytujesz wszystko co Google widzi: title, meta description, keywords, robots, canonical. Mała symulacja „Tak Twoja strona wygląda w Google" aktualizuje się na żywo. Liczniki znaków (zielony = optymalnie, czerwony = za długo).
Open Graph (Facebook, WhatsApp) — obrazek, title, description, og:image:width / height / alt auto-mierzone z plików (lepszy preview na FB/LinkedIn/Pinterest). Twitter Cards. Pole na fb:app_id, fb:pages i article:publisher (Facebook Debugger bez ostrzeżeń).
Pole na Google Search Console verification i Bing Webmaster — wklejasz kod i strona zweryfikowana.
Każda sekcja strony głównej ma własną fizyczną podstronę z osobnym URL-em, własnym title, meta description, H1 i intro-tekstem. Lista: /pokoje, /cennik, /galeria, /atrakcje, /faq, /trasy, /kontakt, /o-nas, /regulamin. Każda jest osobno indeksowana przez Google — multiplikuje to widoczność Twojej strony pod różne frazy.
Gdy ktoś otwiera podstronę, Googlebot widzi tylko zawartość tej sekcji w HTML (SSR), bez reszty strony — czysty sygnał tematyczny. Gdy ktoś otwiera /, widzi wszystko (jak dotychczas).
Pod każdą sekcją na podstronie możesz wpisać dedykowany tekst SEO (200-500 znaków) — niewidoczny w pierwszym screen-u, ale obecny w HTML dla Googlebota. Świetnie pozycjonuje pod long-tail keywords typu „spokojne noclegi nad morzem z parkingiem w Rewalu".
Sitemap.xml automatycznie zawiera <image:image> dla każdego zdjęcia z galerii — Googlebot wie o każdej fotce z opisem i lokalizacją. Plus do 16 zdjęć trafia do image[] w schema LodgingBusiness — Google buduje karuzelę zdjęć w Knowledge Graph pod nazwą firmy.
Każde zdjęcie ma w bazie zapisane wymiary (width × height) — auto-mierzone przy uploadzie + backfill 50/request dla starych. Dla guesthouse'u Google Images to często 2-gi co do wielkości kanał ruchu.
Wgrywasz jedno zdjęcie (np. logo 512×512) i panel automatycznie generuje wszystkie warianty: favicon.ico, favicon-16, favicon-32, apple-touch-icon-180, android-192, android-512 + site.webmanifest. Favicon pojawia się w wynikach Google obok nazwy strony — zwiększa rozpoznawalność i CTR.
Podpinasz konto Google jednym kliknięciem (OAuth2) — w panelu widzisz statystyki ze swojego GSC: ilość kliknięć, wyświetleń, średnia pozycja, top frazy, top podstrony. Bez przechodzenia do osobnej zakładki w Google. Dane synchronizowane co kilka godzin.
Zmieniasz kolor strony i menu — bez kodu, bez odświeżania, z podglądem na żywo.
10 gotowych palet: Klasyczny morski, Ciepły piaskowy, Górski leśny, Mazurski jeziorny, Premium ciemny, Minimalistyczny, Śródziemnomorski, Leśny szmaragd, Lawendowe SPA, Koralowy zachód. Plus tryb „Własne" — ustawiasz każdy z 9 kolorów osobno (tło, sekcje, navy, akcent, sand, tekst, obramowania).
Podgląd na żywo — sticky panel po prawej pokazuje Twoją stronę w iframe; każda zmiana aktualizuje się natychmiast bez zapisu. Mini-akcje skoku w podglądzie: Góra / Pokoje / Cennik. Dopiero Zapisz wygląd commit'uje do bazy.
Dodatkowo: kolor i przezroczystość paska menu nad hero (slider 0-100%), tryb tekstu menu jasny/ciemny, opcja „zawsze widoczne tło".
Sterujesz menu w górnym pasku z poziomu admina. 8 gotowych pozycji — każdą możesz wyłączyć checkboxem, zmienić nazwę i kolejność strzałkami ↑ ↓. Sekcja na stronie nadal istnieje — tylko link w menu znika.
Cały tracking lokalnie, bez cookies tożsamościowych, bez bannerów zgody.
4 kafelki KPI (odsłon, sesji, unikalnych, zdarzeń), wykres dzienny/tygodniowy, top źródła wejść (skąd przychodzą goście), urządzenia, przeglądarki, najczęściej klikane przyciski (WhatsApp / Telefon / Galeria itd.), popularność pokoi. Zakresy 7/30/90/365 dni.
IP hashowane SHA-256 z dziennym kluczem (anonimowe, RODO friendly), dane usuwane po 12 miesiącach, filtr botów po user-agencie. Bez bannera cookies, bez tracking-pixels od Google/Meta.
Mechanizmy które dla użytkownika końcowego są niewidzialne — ale to one robią CMS bezpiecznym i solidnym.
Każda paczka jest powiązana z konkretną domeną. Klient wpisuje klucz WCM-XXXX-XXXX-XXXX-XXXX, system sprawdza online co 24h. HMAC-SHA256 podpis odpowiedzi, 7-dniowy grace period offline, obfuskacja PHP krytycznych plików. Nielegalna kopia na innej domenie automatycznie blokuje stronę.
Serwer licencji: Cloudflare Worker + D1 (bezpłatny, 100k requestów/dzień). 99.99% SLA.
Każda aktualizacja CMS sama dorzuca brakujące tabele i kolumny przy pierwszym wejściu w admin. Bez SQL, bez konsoli, bez phpMyAdmin. Idempotentne — bezpieczne dla wielokrotnego uruchamiania.
Wszystkie uploady (hero, slider, pokoje, galeria obiektu, blog, favicon) automatycznie konwertowane do WebP. Frontend używa <picture> z fallbackiem do JPG/PNG — działa wszędzie, gdzie WebP nie obsługiwany (~3% przeglądarek). Strona ładuje się 30-50% szybciej, Lighthouse Performance 95+.
6 najczęściej używanych ekranów admina. Klikasz zakładkę po lewej, edytujesz formularz po prawej, zapisujesz — gotowe. Bez SQL, bez FTP, bez Wordpress-owej skomplikowaności.
Każda sekcja strony głównej ma swój formularz w panelu. Wpisujesz tekst, zaznaczasz fragment, używasz <strong> dla SEO-keyword-ów — Googlebot widzi pogrubione frazy jako sygnał tematyczny.
Liczniki znaków zielone (OK) / czerwone (za długo). Akapity edytujesz osobno, możesz dodawać/usuwać dowolnie wiele.
Każdy pokój / domek / apartament to osobna galeria. Wybierasz typ (dropdown), liczbę osób, etykietę. Ikony udogodnień klikasz spośród 24 dostępnych — pojawiają się natychmiast na karcie pokoju na stronie.
Zdjęcia przeciągasz myszką aby zmienić kolejność. Klikasz gwiazdkę aby ustawić miniaturkę. Wszystkie uploady automatycznie konwertowane do WebP (~70% mniejsze pliki). Wymiary zapisywane do DB dla Image Sitemap.
Klikasz paletę po lewej — iframe po prawej natychmiast pokazuje Twoją stronę w nowych barwach. Bez zapisywania, bez odświeżania. Mini-akcje skoku w podglądzie (Góra / Pokoje / Cennik) — sprawdzasz jak strona wygląda w różnych sekcjach.
Każda paleta to spójny zestaw 9 kolorów dopasowanych do typu obiektu. Tryb "Własne" pozwala ustawić każdą zmienną osobno. Dopiero Zapisz wygląd commit'uje do bazy.
Symulacja wyniku wyszukiwania aktualizuje się na żywo gdy piszesz tytuł i description. Liczniki znaków zielone (idealnie) / czerwone (za długo Google obetnie). Widzisz dokładnie to, co zobaczy potencjalny gość.
Plus pola na fb:app_id (FB Debugger), GSC verification (one-click weryfikacja Google Search Console), Open Graph image z auto-pomiarem wymiarów, toggle FAQPage + HotelRoom JSON-LD.
Edytor WYSIWYG Quill — taki sam jak w Medium / Notion. Pisz normalnie, formatuj zaznaczeniem, wklejaj zdjęcia drag & drop. Trzy fioletowe przyciski AI: „Wygeneruj wpis" (od briefa do gotowego artykułu), „Rozwiń akapit", „Generuj alt dla wszystkich zdjęć".
Planowanie publikacji — wpisy zaplanowane na przyszłość publikują się automatycznie. Status szkic / zaplanowany / opublikowany. Każdy wpis ma własny SEO title, meta i BlogPosting JSON-LD schema.
Gmina Rewal rozciąga się wzdłuż 12 km klifowego wybrzeża Bałtyku...
Najbardziej znaną plażą jest Rewal-Centrum z szerokim piaszczystym pasem...
4 kafelki KPI ze zmianą procentową, wykres dzienny/tygodniowy (lekki SVG, nie Chart.js), top źródła wejść, urządzenia, przeglądarki, klikalność przycisków, popularność pokoi. Zakresy 7/30/90/365 dni.
Wszystko na Twoim serwerze. IP hashowane SHA-256, bez Google Analytics, bez Facebook Pixel, bez cookies tożsamościowych. Zgodne z RODO bez banera zgody.
Goście wpisują opinie z formularza na stronie (antyspam: honeypot, rate-limit, czas wypełnienia). Trafiają do panelu ze statusem OCZEKUJE — Ty decydujesz, czy publikujesz. Zatwierdzone od razu pojawiają się na stronie i zasilają AggregateRating w Schema.org.
Druga zakładka — opinie wpisane przez Ciebie ręcznie (z Booking, Google, Facebook). Ten sam interfejs: edycja, kolejność strzałkami, hide/show. Min. 3 opinie = gwiazdki ⭐ w Google obok Twojej nazwy.
Schema.org to wspólny słownik Google, Microsoft, Yahoo i Yandex do opisywania tożsamości encji w internecie — nazw firm, miejsc, opinii, ofert. Twoja strona emituje 9 typów schematów JSON-LD + microdata, dzięki czemu Google rozumie nie tylko teksty, ale czym Twoja strona jest. Efekt: rich snippets, Knowledge Graph, gwiazdki w wynikach, karuzela zdjęć.
Tożsamość Twojego obiektu — nazwa, adres z addressRegion, geo (lat/lng), telefon, email, godziny check-in/out, range cenowy, do 16 zdjęć w array image[] dla karuzeli Knowledge Graph, social media (sameAs), wszystkie pokoje w containsPlace, oferta cenowa (makesOffer + AggregateOffer).
Każdy pokój jako osobny obiekt: occupancy, BedDetails z numberOfBeds, amenityFeature (lista cech), zdjęcie, opis, URL do anchora, cena minimalna w Offer z priceValidUntil i availability.
Auto-generowany z Twoich FAQ w panelu. Google rozkłada pytania pod Twoim linkiem w wynikach jako rozwijany accordion — zajmujesz więcej miejsca w SERP-ach, CTR rośnie nawet o 30%.
Twoje opinie generują średnią ocenę i listę recenzji. Gwiazdki ⭐⭐⭐⭐⭐ pojawiają się obok Twojej nazwy w wynikach Google — najmocniejszy wizualny sygnał trust'u + boost CTR o 50%+ względem wyników bez gwiazdek.
Ścieżka nawigacji na każdej podstronie. Google wyświetla okruchy chleba zamiast surowego URL-a pod tytułem strony (np. „Strona główna › Atrakcje" zamiast „rewal-jodlowa.com.pl/atrakcje"). Wygląda profesjonalnie, łatwiej zrozumieć strukturę.
Każdy wpis blogowy ma kompletny markup: autor, data publikacji/modyfikacji, kategoria, tagi, okładka, treść. Otwiera Twoją stronę na Google News, Google Discover (mobilny feed) i podgląd „latest news" w wyszukiwarce.
Tożsamość witryny + przygotowanie pod sitelinks searchbox w Google (pasek wyszukiwania bezpośrednio w SERP). Cross-link z LodgingBusiness przez @id — Google rozumie, że to jedna i ta sama firma.
Explicit deklaracja głównego menu (wszystkie pozycje z linkami). Google używa tego do sitelinks pod Twoim adresem w wynikach wyszukiwania (lista podstron pod główną), bez heurystyki, bez niepewności.
Wszystkie typy (LodgingBusiness, WebSite, HotelRoom) połączone stabilnymi URI (https://twoja.pl/#lodgingbusiness, #room-pokoj-101). Google buduje konsystentny graf wiedzy o Twojej firmie przez wszystkie podstrony.
AggregateOffer).
Konkretny przykład: Mała strona Booking.com, Airbnb czy duży portal hotelowy. Otwierasz „Wyświetl źródło strony" (Ctrl+U) i widzisz dziesiątki bloków <script type="application/ld+json">. To dokładnie ten sam mechanizm, który Twoja strona ma w pełni gotowy — bez programisty, bez wtyczek, automatycznie z Twoich treści w panelu.
Krótki e-mail z opisem obiektu (typ, liczba pokoi, czy masz zdjęcia). W ciągu 24 h przygotowujemy ofertę i ustalamy zakres pracy.
Cała zawartość paczki idzie do public_html/. To dosłownie przeciągnięcie folderu w FileZilla.
Kopiujesz config.example.php jako config.php, wpisujesz dane do MySQL i hasło admina. Otwierasz install.php?secret=START.
Logujesz się do /admin/, podmieniasz teksty na własne, wgrywasz zdjęcia, ustawiasz cennik i SEO. Gotowe.
twojobiekt.pl) i sprawdzana online co 24h. Klucz dostajesz e-mailem po zakupie w formacie WCM-XXXX-XXXX-XXXX-XXXX. Jeśli prowadzisz kilka obiektów na różnych domenach, kontaktujesz się z nami i kupujesz osobną licencję dla każdej z 50% rabatu na drugą i kolejne. Przeniesienie strony na nową domenę (np. po rebrandzie) — bezpłatnie, wystarczy maila.Odpowiadamy zwykle w ciągu 24 godzin w dni robocze. Opiszemy Twój obiekt, dopasujemy zakres pracy i przygotujemy konkretną ofertę. Bez zobowiązań.
Bez programisty na wynajem, bez czekania na agencję, bez zobowiązań abonamentowych. Napisz do nas, opowiedz o swoim obiekcie i otrzymaj indywidualną ofertę.