Skip to content

©2025 · Offer website · 3D product · Local SEO

Schol-Bud

Thirteen static pages for a company installing windows and doors since 2004. Three content layers, three contact paths and zero CMS to maintain.

Industry

Windows & doors — sales and installation

Schol-Bud website, dark editorial hero with a 3D window model and two CTA paths
Client
Schol-Bud. Producent okien i drzwi PCV
Location
Rynarzewo, Kuyavian-Pomeranian Voivodeship
Year
2025
Scope
Visual identity · UX and interface design · Front-end implementation · Technical and local SEO · Performance, accessibility, security

Challenge and approach

How do you sell windows to someone who collects five quotes and can't compare them? Give them numbers, a process and a company with a face — before they pick up the phone.

  • Visual identity
  • UX and interface design
  • Front-end implementation
  • Technical and local SEO
  • Performance, accessibility, security
View live

Challenge

Schol-Bud has been installing windows and doors since 2004 — PVC and aluminium windows, doors, roller shutters, garage gates — in Żnin, Rynarzewo, Bydgoszcz and the surrounding counties. A company with twenty years of experience and eight regular manufacturers had no place online that showed it.

Windows are a purchase spread over weeks. The client collects three to five quotes, compares the Uw coefficient, burglary-resistance class, acoustic insulation, lead time and warranty, and makes the decision only after an on-site measurement. A business-card website with a phone number supports none of these stages.

In local search — “windows Żnin”, “exterior doors Bydgoszcz” — chain showrooms and listing portals with ad budgets compete for every click. A small company won't win a bidding war. It can win with specifics: parameters, a described process and looking like a company rather than a template.

Approach

Instead of a one-page brochure — thirteen static pages arranged in three layers: brand (home, about), product (six categories with full specifications) and decision (installation, manufacturers, contact). The client enters at any level and always has a next step.

Three contact paths with different entry barriers: a one-thumb phone call on mobile, a three-field quote form on the home page and a full form with a project description on /kontakt. Whoever is ready to call — calls. Whoever compares at 10 p.m. — leaves a number.

The visual layer: a dark editorial hero, the Fraunces serif in headings, a single blue accent and a 3D window model in the background. In an industry where everyone uses the same stock photos and the same gradient, design is the cheapest way to stand out in search results and link previews.

Deployment result

Lighthouse scorescholbud.pl · desktop
  • 100
    Performance
  • 100
    Accessibility
  • 100
    Best Practices
  • 100
    SEO
Scope/ N° 01 · WHAT I DELIVERED

What I delivered.

A complete product, not a template — from visual identity to security headers and GDPR consents. Thirteen static pages in three layers of the purchase decision: brand, product, decision.

The scope was closed so that nothing was left “to add later”: the site works, measures, indexes and accepts enquiries from day one.

  1. 01Visual identity and design system — palette, typography, components
  2. 0213 static pages in three layers: brand → product → decision
  3. 03Six product cards with full specifications (Uw, RC class, acoustics, warranty)
  4. 04Three conversion paths — phone, quote form, contact form
  5. 05A catalogue of eight manufacturers with a category filter and PDF catalogue links
  6. 06Technical and local SEO — JSON-LD, sitemap, robots, OG
  7. 07Cookie consents, GA4 with Consent Mode v2 and a privacy policy
  8. 08Production audit: Lighthouse mobile and desktop, WCAG contrast, cross-browser
Schol-Bud PVC windows product card: description, feature list and a technical parameters table

Product card — Uw, RC class, acoustics, warranty

Process/ N° 02 · HOW I DID IT

How I did it.

The whole site is static HTML generated at build time. No database, no CMS, no plugins — content lives in seven TypeScript files, every change is a commit and an automatic redeploy. Twenty-one routes are generated statically; only two form endpoints and the Open Graph image are dynamic.

Next.js 15 with the App Router, React 19, TypeScript in strict mode, Tailwind without a component library. One motion system for the whole site: 200 ms for colours, 300 ms ease-out for link underlines and card lift. The hero entrance is animated by GSAP through gsap.matchMedia, so with prefers-reduced-motion the animation never starts.

The window model in the hero is a DRACO-compressed glTF — 7 kB of geometry rendered by React Three Fiber. The render loop stops when the section leaves the screen, so the tab doesn't burn frames in the background for the lifetime of the page.

Seventy tests in nine suites (Jest + Testing Library) cover what can realistically break: quote form validation, the manufacturer filter, the GA4 pre-consent block, navigation and content data consistency. Finally a production audit with a re-measurement after every fix.

Schol-Bud home page on a phone, dark hero with trust chips and two CTAs
Schol-Bud offer on a phone, six product categories as numbered cards
Schol-Bud contact page on a phone, company details and a form within thumb reach

Swipe to see more

Three layers on mobile — home, offer, contact

Design decisions/ N° 03 · WHY THIS WAY

Why this way.

Static Next.js instead of WordPress: zero plugins to update, no admin panel as an attack vector, hosting with no server or database, TTFB from a CDN. The code belongs to the client and can be moved anywhere.

The Fraunces serif with an optical-size axis instead of a corporate sans — large headings are sharper, small ones more readable. The 3D scene renders only from 1024 px up: on a phone it cost ~530 ms of TBT, and conditional rendering means the three.js chunk never downloads at all.

Technical parameters on every product card — Uw, burglary-resistance class, acoustics, warranty — are exactly the numbers the client pastes into a comparison sheet. The quote form has three fields, because every extra one lowers conversion and dimensions have to be measured on site anyway. A separate page for each of the six categories: phrases like “aluminium windows Żnin” face much weaker competition than “windows” alone.

Underneath, the layer you don't see: a honeypot and request limits on the forms, server-side validation, Content-Security-Policy with an explicit source list, HSTS with preload. GA4 downloads no script before consent — alongside it runs Vercel's cookieless analytics as a baseline.

Schol-Bud contact section on desktop: a map of the office, company details and a server-validated form

Contact — map, company details and a server-validated form

Visual language/ Design system

Design system.

Warm white, graphite and a single blue accent. The Fraunces serif with an optical-size axis in headings, Inter in body text — so a window company looks like a brand with character, not a wholesaler's catalogue.

Wordmark

SCHOL-BUD

  • 01O firmie
  • 02Oferta
  • 03Montaż
  • 04Producenci
  • 05Kontakt
Palette
  • Background#f8f7f4
  • Text#111111
  • Accent#2b6299
  • Border#d6d6d0
Typography
Display
OKNA I DRZWI
H1
Pełna oferta produktów.
H2
Jak wygląda współpraca
Lead
Dobieramy, dostarczamy i montujemy.

Tech stack

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS
  • GSAP
  • Three.js
  • React Three Fiber
  • Resend
  • Jest
  • Vercel

Credits

Design & code
SoraWeb Studio · Aleksander Pietrzak
Stack
Next.js · TypeScript · Tailwind · Three.js · R3F · Vercel
Hosting
Vercel
Next project
Next case study, MIK Usługi, website for a renovation and finishing company from Bydgoszcz

MIK Usługi

A similar project?

Let's talk about your site.

Every site starts with a short conversation about goals. No brief, no strings attached. First I make sure we're a good fit.