Skip to content
Case study · WordPress

A custom WordPress theme for a mineral museum.

The Museum of Minerals and Precious Stones in Kudowa-Zdrój had a website that looked like it came straight from 2002 - hard to read, broken on phones, with the opening hours buried somewhere in the text. The owners wanted something clean, minimal, modern and responsive, and a site they could keep up to date themselves. I built them a custom WordPress theme: light, independent of plugins, and with an admin screen designed around the facts they actually update. Visit the site (opens in a new tab)

The new homepage, drawn in code The hero as the theme renders it: the same markup, type and colours. The line under the ticker - today's hours and the ticket price - is worked out live below, from the admin screen.
The challenge

A website stuck in 2002.

The museum's old site had aged badly: dense, dated layouts, tiny text, nothing that adapted to a phone - on a site visited mostly by tourists checking their phones in the spa park. The practical answers a visitor needs, like “are you open today?” and “how much is a ticket?”, took real effort to find. The owners asked for a clean, minimal, modern and fully responsive site that lets the collection speak for itself - and that they could run on their own, without calling a developer every time the season changes.

What I made

A theme, not a template.

01

A theme for one museum

One stylesheet and one small script, written for this site alone - no page builder, no framework, no icon font.

02

The homepage as editable blocks

Six sections registered as native WordPress blocks. The editor shows the real page, and sections can be reordered or removed like any content.

03

One screen for the facts

Hours, tickets, address and phones live on a single “Dane muzeum” screen, and feed the hero, the visit cards, the footer and Google at once.

04

Hours that know the date

Seasons with date ranges the owners can edit. The site works out today's hours on its own - closed on a Monday in October, open over Christmas.

05

Light by design

One stylesheet, one small script, no icon font and no page builder. WordPress extras the site doesn't use - emoji scripts, unused block styles - are switched off.

06

Essentials without plugins

Redirects so old links keep working, Museum structured data for Google and a consent-first cookie banner - all inside the theme.

Try it

Change it once, it's right everywhere.

The owners open “Dane muzeum” - Museum details - right under the Dashboard. Opening hours and prices are plain text in a simple format they already understand: “days | hours”, one per line, with a new season starting on any line without a bar. No field builder, no plugin, nothing to learn.

From that one field the theme builds the visit cards, the Google opening hours and the line in the hero that says whether the museum is open today. Edit the text below, or pick a date, and watch both update - this is the theme's own logic, running in your browser.

Dane muzeum

Te dane pojawiają się w kilku miejscach naraz: w kafelku na górze strony, w kartach na dole, w stopce i w wizytówce muzeum w Google. Dlatego są tutaj w jednym miejscu — wystarczy zmienić je raz.

Godziny i bilety
Domyślnie: w sezonie wakacyjnym [06-24..08-31] (od rozpoczęcia wakacji szkolnych do końca sierpnia) Pon…
Zapisz zmiany
Admin screen and site in Polish, as the owners use them. The admin menu around it is standard WordPress.
Pretend today is
The hero line
Dziś otwarte 11.00 – 17.00 Bilet 18 / 14 zł
The opening-hours card
Godziny otwarcia
w sezonie wakacyjnym (od rozpoczęcia wakacji szkolnych do końca sierpnia) Pon – Nd10.00 – 18.00Wszystkie dni świąteczne10.00 – 18.00
poza sezonem (od września do rozpoczęcia wakacji szkolnych) Wt – Nd11.00 – 17.00Wszystkie dni świąteczne11.00 – 17.00
od 24.12 do 6.01 Codziennie11.00 – 16.00
Why WordPress

Easy to run, easy to trust

For a small family museum, the right system is the one the owners can use on their own for years.

01

An editor anyone can learn

WordPress is the most widely used website editor in the world. Adding an article, swapping a photo or correcting the hours takes minutes, with help one search away.

02

Their hosting, their data

The site runs on their own hosting, in a system any WordPress developer can pick up. No lock-in to me or to a platform.

03

Safe to hand over

An editor can correct the hours without full admin rights. Clearing a field restores the original text, and fields that don't exist can't be saved - so a mistake is always easy to undo.

Why custom

Independent, light, exact

Custom means the site carries only what this museum needs - and nothing that breaks when a plugin updates.

01

No plugin dependencies

Plain text fields instead of a field-builder plugin, blocks registered from simple JSON files, redirects and structured data written in the theme. Plugins for analytics, security or caching are the owners' choice - the theme itself needs none of them.

02

Only what the page uses

One stylesheet and one small script, written for this design. No icon font - the few arrows are inline SVG - and the WordPress extras the site doesn't need are switched off on the front end.

03

Details a template misses

Dates spelled the Polish way, image crops generated once at upload instead of full-size photos in small slots, and a fix for Polish letters that otherwise split “świąteczne” in half.

04

Found by Google, correctly

The museum is described as a Museum in structured data, with its address, ticket prices and seasonal opening hours taken from the same screen the owners edit - so search results can't contradict the site.

Results
98

Lighthouse performance score

0.3 s

First Contentful Paint

0.4 s

Largest Contentful Paint

0 ms

Total Blocking Time

Measured with Google Lighthouse on the new theme before launch. Best Practices scored 100.

An outdated website quietly tells visitors the place is outdated too. A clean, fast site that answers “are you open today?” at a glance does the opposite - and the owners keep it that way on their own.

Like what you see?

Is your website showing its age?

Tell me what your visitors need to find and what you'd like to update yourself - and let's build a site that looks like today and stays easy to run.