Who we built it for
iShots Wedding is a wedding film and photography studio based in Rybnik, working across Silesia and travelling further when a couple asks. They shoot the day as reportage: two cameras at the ceremony, the vows taken from a separate lapel microphone so the words survive a full church, and the rest of the day documented from the side rather than staged.
Couples do not choose a studio from a price list. They watch one film, then another, and only then do they call. The whole site had to serve that order.
What we delivered
ishots-wedding.pl, a Polish-language site in Next.js on Vercel, built so the work carries the page.
A hero that opens with the studio's showreel, with a full-frame photograph holding the screen from the first paint.
Six wedding films in a portfolio grid, each described with VideoObject markup carrying its real publication date and running time.
Full wedding galleries served from Cloudflare R2, with a lightbox and a grid that reserves space for every photograph before it arrives.
Three package families, video, photo and the two combined, with prices on the page and a side by side comparison table for the video tier.
A frequently asked questions section written from the questions couples actually ask, about booking windows, delivery times and what happens if a camera fails.
An enquiry form validated in the browser and again on the server, mailing the studio directly, next to a phone number reachable in one tap from anywhere on the page.
Seventeen local pages: videographer and photographer for each of eight Silesian cities, plus one for the rest of Poland.
Structured data, a sitemap and a plain-text summary of the offer for AI assistants answering questions about wedding films in Silesia.
Consent handled before anything measures anybody: analytics load only after the visitor agrees, in Polish, with the categories kept separate.
The first screen
A showreel in the hero is easy to ask for and easy to get wrong, because the usual version makes every visitor wait for a video before they see anything at all.
So the page does not wait. A full-frame photograph loads at high priority and owns the first paint, and the player is mounted only once the browser has finished the work that matters, which the code asks for explicitly rather than guessing with a timer. Choosing the quality is the video platform's job, so a phone on patchy LTE gets a version its connection can carry instead of a single encode picked for a desktop monitor.
Visitors who have asked their system for reduced motion never get the player at all. They keep the photograph, and the page still looks like the thing it is selling.
Galleries that hold their place
A wedding gallery runs to dozens of photographs, portrait and landscape mixed, and the usual result is a grid that jumps around while they load. Each gallery is published with an index recording the true dimensions of every photograph and a sixteen pixel blurred preview, so the grid lays out at the correct proportions immediately and shows something in each tile before the photograph arrives. Thumbnails carry the grid, full resolution is fetched only when a photograph is opened, and location data is stripped from every file on the way up.
Adding a gallery is an upload, not a deployment. A directory in storage becomes a page.
Found in the right town
Somebody looking for a videographer types the name of their own city. Each of the seventeen local pages answers that search with something specific: how far it is from Rybnik and how long the drive takes, which nearby towns fall under the same terms, which public locations nearby work for the portrait session, and what actually changes about shooting a wedding there.
Where it stands
The site is live at ishots-wedding.pl: the showreel on the first screen, six films, full galleries, three package families with prices on the page, seventeen local pages and a contact path one tap away from anywhere on the site.
The technical detail
How to put motion on the first screen without making anybody wait for it has more than one answer. Here the bitrate ladder belongs to the video platform. Building and serving that ladder yourself, and keeping the poster from fighting the stream for Largest Contentful Paint, is a longer story, and we wrote it up in How to put video at the top of a page without making visitors wait.
