Sell directly
Their own booking channel with no fees: a guest picks dates on the site and sends a request straight to the owners.
Website with a custom booking module, a 360° virtual tour and Telegram notifications for a guesthouse in the Polish mountains: rent an apartment or the whole house
4 SOSNY is a private vacation house at the foot of the Karkonosze mountains: 160 sq m, a view of Śnieżka through panoramic windows, a sauna, a jacuzzi, electric bikes. The house is split into two equal halves, so guests can rent the whole place or take just one side - it works for a big group of friends and for a single family alike.
The owners didn’t want to depend on booking aggregators and their fees. They needed a site of their own - one that presents the house and the area, takes booking requests by itself, keeps track of quotas and available slots, and instantly notifies the owners about every new enquiry so it can be handled right away.
We delivered the project in 3 weeks: designed everything in Figma, built a custom WordPress theme, wrote our own booking module with an availability calendar and hooked up Telegram notifications so the owners can manage requests right from their phones.
Their own booking channel with no fees: a guest picks dates on the site and sends a request straight to the owners.
Photos introduce the house from the very first screen: a slider highlights the best features, and the gallery covers every room, the sauna, the gym and the rest. We sell comfort, experiences and a truly gorgeous location.
The house is rented whole or by half, so the calendar has three states: free, half-booked and booked. A formula and a system of slot checks make sure the same night is never sold twice.
Requests land in the owners’ Telegram, where the bot has action buttons. Confirming a booking takes 15 seconds, no laptop needed.

The design was created in Figma from scratch. The palette came straight from the landscape - the deep green of a pine forest and a warm cream, like the light in the windows of the house in the evening. Large typography, plenty of air and borderless photos: the site feels light, shows off the best of the property and sets the mood before you even arrive 🙂
The home page is built from the essential sections and answers pretty much every question a guest might have. There are prices, the surroundings with distances to trails and ski lifts, a gallery, a blog with tips from the hosts, an FAQ and a map with directions. Each section is a separate configurable block in the admin panel: the content can be rearranged without a developer.


Everything you see on the site is our work from start to finish. We came to the property and shot the house ourselves: the interiors, the sauna and wellness area, the bedrooms, the view of Śnieżka and aerial drone footage. No stock photos, nothing borrowed - just the real house in good light.
A special point of pride is the 360° virtual tour. We shot six panoramas of the key rooms and assembled them into an interactive walkthrough: guests spin the view in any direction, as if standing in the middle of the room, and jump between rooms from a list. The panoramas rotate right in the browser and work just as well on a phone. A tour like this answers half of the questions before booking - people see the house with their own eyes and arrive already feeling at home.
We've embedded one panorama from the tour right here - take it for a spin.


The house is split into two equal halves, so it can be rented in different ways: an apartment for a party of up to 4 guests, or the whole house - up to 8 people, four bedrooms, two kitchens and two bathrooms. We put this choice front and centre: two cards with price and details on the home page, and a format switcher in the booking form that changes both the available dates and the total price.

Off-the-shelf booking plugins for WordPress mean subscriptions, extra screens and someone else’s logic. A single house with two halves needed simple, honest mechanics, so we wrote the module ourselves.


The owners are usually on site with their guests, not at a laptop. So every new request instantly arrives in their Telegram group - a neat message in Polish with all the details: dates, format, party size, contacts and the total.
Right under the message there are three buttons: “Confirm”, “In progress”, “Cancel”. A tap goes to the site’s secret-protected REST webhook, the request status changes in WordPress, the calendar recalculates, and the guest optionally gets a status-update email. A booking gets confirmed in a couple of taps from a phone, and the site immediately stops selling those dates.
The bot token and chat ID are configured on the module’s page, and the webhook secret is generated automatically. The same toggle can also mirror quick questions from the contact form into the group.

The settings hold everything that changes day to day: the rental mode (whole house or halves), per-night prices for each format, the house rules text shown next to the form, and the calendar colors. Availability and occupancy are shown in the calendar just as clearly as on the site itself.


Measured in PageSpeed Insights (mobile), July 2026. Every page of the site scores like this (with a small variance in performance), including the home page.
The site lives on ordinary shared hosting - inexpensive for the client and zero administration. But we set up the development process like on “grown-up” infrastructure: a local Docker environment mirrors production exactly, and every push to main triggers GitHub Actions with an incremental rsync deploy over SSH - only the changed theme files, verified by checksums, travel to the server. Uploaded photos and the WordPress core are never touched by the deploy at all.
Any change appears on the live site automatically, in about a minute. In the site’s first ten days we shipped some fifty updates - including the GDPR banner and the Telegram notifications - without a single moment of downtime.
The photography, panoramas and booking module are our work.
Want results like these?
We use cookies for analytics - they help us understand which pages are useful.