Work

Sites I have actually built

A site for a real business and eleven concept projects — four on WordPress, seven hand-coded. In the concept ones the businesses and reviews are invented and I wrote the copy myself — the code, the design and the measured scores are entirely real. I say so plainly, because passing invented work off as paying clients would be dishonest.

A real business

Nothing here is invented

I built this one for my own photography studio. The business is real, and so is what it offers.

B-Art M Studio homepage — full-bleed sunset photograph with a serif headline

B-Art M Studio — event and portrait photography

  • Warsaw region
  • Photography
  • Bilingual PL/EN
  • Blog
  • Pricing

The whole site is built around photographs, so everything else had to get out of their way: a full-bleed hero, a serif face and a gallery split by category.

Beyond the shop window there is a price list, a journal of guides for clients and a booking form. All of it in two languages, with a switcher and separate addresses for each version.

For the record: B-Art M Studio is a second business of mine, so I was both the client and the builder here. I mention it so nobody counts it as somebody else's commission.

Open the site ↗

On WordPress

Four sites you edit in a panel

Classic WordPress with a theme written from scratch — no Elementor or other page builder, no paid plugins. The owner edits what changes most in their trade: service prices, the menu, products or the header film. All four run on ordinary shared hosting and score 99–100 in Lighthouse on mobile. The businesses are invented; the code and the scores are real.

KLAR on WordPress, English version — light hero with a yellow car and clickable hotspots

KLAR on WordPress — the same site, built twice

  • Warsaw
  • Detailing
  • Services in the panel
  • Bilingual PL/EN

To compare the two approaches fairly, I built KLAR a second time — same design, same copy, this time on WordPress. Each of the five services is an entry in the panel with a name, scope, time and price, and one edit shows up on the car, in the price list and in the quote basket.

Measured live on the same day, both versions score a full 100 in Lighthouse on mobile, and the largest element appears after 1.3–1.5 seconds. The difference is not speed — it is who changes the prices.

Concept demo — invented business, real code. The hand-coded version is further down.

Open the site ↗

Kredens, English version — cream hero with the bistro headline, booking and menu buttons, and the lunch of the day with prices

Kredens — bistro in Wrocław

  • Wrocław
  • Hospitality
  • Menu in the panel
  • Bilingual PL/EN

Restaurant sites go stale fastest: changing a price often means calling the developer, so the menu online stops matching the one on the table. Here 22 dishes in six categories are entries in the panel — with price, allergens and dietary labels — and the lunch of the day shows on the home page by itself.

Table booking is built into the theme with no plugin: it turns down Mondays, keeps to shorter Sunday hours and replies in the language the guest wrote in. The menu has no food photography on purpose — small places rarely have good photos, so the layout is typographic.

Concept demo — invented bistro, real code. A full 100 in Lighthouse, in Polish and in English.

Open the site ↗

Plumpkin homepage — light hero reading “Bears with names, not model numbers” with an image of plush bears on a bench

Plumpkin — teddy bear shop

  • Bristol
  • WooCommerce
  • Shop
  • English

A deliberately familiar shop — the kind every buyer already knows — without a page builder or paid add-ons. The only third-party plugin is WooCommerce, which is free, and product pages skip its style files and jQuery.

Every bear can get a name on its tag — up to 12 letters, free — and the name travels through the basket into the order; gift wrap adds £3. Both features are a few dozen lines in the theme, not separate plugins.

Concept demo — invented shop, AI-generated bear images. The basket and checkout run to the order confirmation, with no card payments.

Open the site ↗

Nocturne homepage — dark hero with a film still of a home battery unit and the line “Store the sun. Spend it at night.”

Nocturne — home batteries

  • Berlin
  • Energy
  • Header video
  • English

A film in the header can mean megabytes downloaded on every phone. Here a loop rendered in Blender weighs 65 KB as WebM, loads only on screens at least 768 pixels wide, and the owner swaps it in the WordPress panel — no plugin.

Below, instead of a stack of sections, one scene changes as you scroll: the sun turns into the moon while the battery charges and drains. A calculator turns household size, solar panels, car and heat pump into a price and a module count, and carries the result into the form.

Concept demo — invented company, real code. A full 100 in Lighthouse, on mobile and on desktop with the film loaded.

Open the site ↗

Hand-coded

Seven trades, seven separate worlds

The easiest way to judge a builder is whether their projects differ by more than colour. These are hand-coded in HTML, CSS and JavaScript — no panel, nothing to update — with different typography, different palettes, different section layouts and, in KLAR's case, a different way of moving around the site altogether. The businesses are invented — the point was to show the craft, not to pretend I had the clients.

KLAR homepage — light hero with a yellow car and clickable hotspots

KLAR — car detailing studio

  • Warsaw
  • Detailing
  • Quote basket
  • Bilingual PL/EN

Detailing sells on specifics: what exactly gets done and what it costs. So instead of a list of packages, the car itself is the navigation — click the paintwork, the interior, the wheels or the headlights and you get the scope, the time and the price for that one thing.

Chosen services collect in a quote basket at the bottom of the screen and travel with the enquiry form. The customer never has to describe what they want in words — they just click it.

This is the kind of custom interactive element the Signature tier is built around. PageSpeed: a full 100 points, in both languages. The same site on WordPress is further up.

Open the site ↗

Lumière homepage — dark hero with a dessert photograph and a serif headline

Lumière — dessert studio

  • Amsterdam
  • Hospitality
  • 4 pages
  • Order form

A patisserie with an extensive menu and celebration cake orders. The mood of a Parisian workshop, built from a serif typeface, chocolate browns and a gold accent.

Sections: full-screen photographic hero, statistics bar, category cards, gallery, reviews, FAQ and an order form with a collection date.

Mobile PageSpeed: 99–100 points for performance, accessibility, best practices and SEO.

Open the site ↗

Velour homepage — light hero with an arch-shaped portrait

Velour — beauty salon

  • London
  • Beauty
  • 4 pages
  • Full price list

A hair and beauty salon with a categorised price list, team profiles and appointment booking. A light, warm palette and a soft grotesque instead of serifs.

I deliberately built this one as the inverse of Lumière: a light hero with an arch-shaped portrait, services as rows rather than cards, a mosaic gallery and a review carousel.

PageSpeed: a full 100 points across all four pages.

Open the site ↗

Rift homepage — dark hero about buying coffee by taste, with a taste finder on the right

Rift Coffee Roasters — coffee roastery

  • Rotterdam
  • Coffee
  • Shop
  • English

Coffee shops file their beans by country, even though nobody buys a coffee because it comes from Colombia. Rift sells by taste: three sliders — acidity, body and roast — and the shelf re-sorts as you move them, showing how many coffees still match.

Every coffee is scored on those same three axes, and a separate section explains what the scores actually mean. For anyone who does not know where to start, there is a taste finder in three questions.

Concept demo — invented company, real code.

Open the site ↗

MALWA homepage — cream hero about buying whole outfits, with photographs of clothes

MALWA — clothing studio

  • Łódź
  • Clothing
  • Shop
  • Bilingual PL/EN

Clothing shops file their stock into categories: trousers, blouses, coats. Except nobody buys trousers — you buy the thing you will walk out in. Malwa sells outfits: four complete sets, and any single piece swaps for another from the same shelf in one click. The total and the discount recalculate straight away.

Sizing is solved without a chart. You enter three measurements once, they stay in your own browser and are never sent anywhere, and each piece tells you whether it runs loose or narrow on you.

Concept demo, bilingual — invented brand, real code.

Open the site ↗

Nightshift homepage — dark hero about systems breaking at 3am, with an on-duty panel

Nightshift — monitoring and incident response

  • Kraków
  • B2B
  • Timeline
  • English

Monitoring companies sell dashboards. Nightshift sells the difference: a slider walks the timeline minute by minute from the moment a certificate expires, and shows side by side what happens with nobody watching and what happens with an engineer on duty.

Next to it sits a field for your revenue per hour, so the outage turns into money while you read. Prices are published outright, in three sizes, with no „contact us for a quote”.

Concept demo — invented company, figures written for the demo.

Open the site ↗

Estúdio Tinta homepage — dark hero with a photograph of a tattooed forearm and a booking button

Estúdio Tinta — tattoo studio

  • Lisbon
  • Tattoo
  • Booking
  • English

Booking a tattoo usually takes four emails back and forth. Tinta starts by asking how long you need — a consultation, a small piece, half a day or a full one — and the calendar then shows only the slots that can genuinely hold that work.

Three artists have their own rates, working days and waiting times, so choosing a person changes which dates open up. The deposit and the cancellation rules are written down before anyone sends a form.

Concept demo — invented studio, real code.

Open the site ↗

Want a site built to this standard?

Get in touch