Problem / Context
The site is live at koprowskastudio.com.
The studio's work is visual: finished houses, natural materials, details that only show in large photographs. The website had to:
- present each project as a full-width photo story without slowing the page down,
- work in Polish and English with proper language signals for search engines,
- describe the business (location, services, founder, service area) in a way Google and AI assistants can read,
- lead visitors from the portfolio to a short inquiry form.
Approach
- Structured the site around how clients decide: portfolio first, then how the studio works, then who is behind it, then contact.
- Kept the visual language quiet (warm neutral palette, serif display type, generous whitespace) so the photography carries the page.
- Used Astro's static output with build-time image processing, so every photo ships as responsive WebP at several widths.
- Built the SEO layer (canonicals, hreflang, sitemap, Open Graph, JSON-LD) into the shared layout instead of per page.
What I shipped
- Homepage with a full-screen project slider, a quote from the founder, a contact teaser and a press section.
- Portfolio index and four case pages (Farmhouse Kaszuby, Zawady house, Serock house, Garnizon apartment in Gdańsk).
- "About the studio" and "How we work" pages: services (consultation, full interior design, author's supervision) and a step-by-step design process.
- Contact page with a Formspree form, thank-you page and direct email.
- Full English version under
/en/, with a language switch on every page. - Privacy policy and a bilingual,
noindex404 page.
Technical implementation details
SEO and indexing
- Canonical URLs on the
wwwhost,hreflangforpl,enandx-defaulton every page. - XML sitemap index with all 20 PL and EN URLs,
robots.txtpointing to it. - Unique titles and descriptions per page, Open Graph and Twitter cards with a 1200x630 image.
Structured data
- One JSON-LD graph per page:
WebSite,WebPage,ProfessionalService+LocalBusinessandPersonfor the founder. - Business details: legal name, address, VAT ID, founding year, languages,
sameAs(Instagram, Pinterest). areaServedcovering Warsaw, the Tricity, Gdańsk, Gdynia, Sopot and Kashubia, plus anOfferCatalogwith the three services.
Performance
- Responsive
srcset(720 to 2400 px) generated at build time,fetchpriority="high"on the first hero image. - Scroll reveal animations through
IntersectionObserverwith a no-JS fallback, so content never stays hidden. - No client framework: small inline scripts only for the mobile menu and reveal animations.
Accessibility and security
- Skip link, focus trap and
Escapehandling in the mobile menu,aria-labelon icon links. - HSTS, a strict
Content-Security-Policy(onlyselfplus Formspree),X-Frame-OptionsandReferrer-Policyset at the edge.
Results (snapshot)
Source: Google PageSpeed Insights, homepage, 2026-10-06.
| Metric | Desktop | Mobile | | --- | --- | --- | | Performance | 100/100 | 80/100 | | LCP | 0.4 s | 5.3 s | | CLS | 0.003 | 0 | | Total Blocking Time | 0 ms | 0 ms |
Desktop is at the ceiling. On mobile the full-screen hero photo is the LCP element, and the apex domain adds a redirect to www before the page loads. Next steps are a smaller mobile hero crop and serving the apex domain without the extra hop.
Outcome
The studio has a fast, bilingual site that shows its work at full size and describes the business clearly to search engines. Together with DeMāre Studio, it shows a repeatable process for photo-heavy service businesses: content architecture, static Astro build, SEO and schema layer, then measurement after launch.
Screenshots






