Websites 2026

Craft Guild in Radom - A Plugin-Free Website for a Craft Institution, Lighthouse 100

A website for a Polish craft guild built from scratch in two days: content based on the national court register and Chamber of Crafts materials, a look built from the guild's logo, zero WordPress plugins, Consent Mode v2, a rate-limited form, two code reviews, Lighthouse 100 in all four categories and zero WCAG 2.2 AA violations.

Cech Rzemieślników i Przedsiębiorców w Radomiu (Guild of Craftsmen and Entrepreneurs in Radom)
Business self-government - crafts
Two days
Craft Guild in Radom - A Plugin-Free Website for a Craft Institution, Lighthouse 100

A new guild with a name that is easy to confuse

Cech Rzemieślników i Przedsiębiorców w Radomiu (the Guild of Craftsmen and Entrepreneurs in Radom) is a self-governing craft guild based in the House of Crafts on Kilińskiego Street. It brings together craftspeople, handles vocational apprenticeships and examinations, and operates within the structure of the regional Chamber of Crafts. We built the website from scratch, content included.

On top of that, Radom has a second guild with a very similar name, its own website and its own address. A craftsperson or employer looking for information about apprenticeships can easily mistake one for the other. So the site had to do more than inform: it had to answer one question without any doubt, am I in the right place.

2 days
From choosing the solution to the site live on the target domain

100
Points in each of the four Lighthouse categories

0
WordPress plugins

0
WCAG 2.2 AA violations across 11 views

Content built on facts, not generalities

An institution does not need marketing slogans. It needs answers to specific questions: how much an apprentice earns in the second year, how much funding an employer can get, how to register for the journeyman's examination, where the office is and in which room. That is why the content was written from sources, not from imagination.

  • Statutory objectives quoted word for word from the KRS (the Polish National Court Register), not paraphrased
  • Five launch news items based on the KRS entry and announcements from the Chamber of Crafts
  • Apprentice pay rates for each year of training, plus reimbursement and funding for employers with current amounts for 2026
  • A list of document templates linking to the Chamber's files, every link checked before launch
  • The structure of craft self-government explained plainly: guild, chamber, national association
  • Questions and answers on membership and apprenticeships, with the legal basis
One source for data that has to match

The address, floor, room number, registration details, the Chamber's phone number and the board members appear in many places on the site: in the header, the footer, on the contact page and in the data for Google. All of them come from a single file. When it turned out during the work that the office room number was different from what the first materials said, a fix in one place changed it across the whole site and in the structured data at the same time.

The first version went in the bin

The first visual design took its colours from the House of Crafts building, with a serif typeface and a magazine-style layout. It was technically sound and did not pass review. The verdict: too template-like, not enough of the guild in it, and missing the green from the logo.

Instead of cosmetic fixes, we started from material that belongs to the client. The guild's designer sent us the logo as a vector file. From that file we took the colours, the green and the black of the outlines, and cut the cogwheel with the hammer and scales out of the logo to use as the site icon and favicon.

Version 1.0

A palette taken from the building's facade

A serif typeface, a magazine-style layout

Icon tiles and cards with large numbers

Eyebrow headings, italics, numbered sections

Version 1.1

Green and black taken straight from the logo

Barlow Condensed, close to the lettering in the logo, and Source Sans 3 for body text

A list of matters, an "In brief" box and an examinations table

Plain headings, no ornaments

Removing the typical patterns of templated design was not a matter of taste but a checkpoint. Gradients, rounded accent bars along edges, eyebrow headings, coloured italics, number strips and grids of icon cards were checked by searching the code, not just by eye.

How the work went

1

Establishing which guild it is

Verification in the KRS and a clear distinction from the guild with a similar name, which since 2024 has operated outside the Radom Chamber of Crafts. WordPress chosen because the office is to add news items itself

2

Content and structure

Home page, six topic pages, news and a privacy policy. Content based on the KRS, Chamber materials and current regulations on vocational apprenticeships

3

Version 1.0 on the staging server

A working site with a form, structured data and consent handling. Rejected in the design review

4

A new look built from the guild's logo

Colours, typefaces, icons, favicon and sharing image built from the designer's vector file. A simpler, more official layout

5

Move to the guild's domain

The guild's hosting, an SSL certificate, redirects to a single HTTPS address, an HSTS header and an office mailbox. Indexing switched on only after the guild confirmed the content

6

Two code reviews

One for security, one for standards compliance. Fixes to the site implemented before handover, minor remarks included

Lightweight, plugin-free, built to last

A website for an institution with no IT department has to run without supervision. Every plugin is one more thing to update and one more way for someone to break in. That is why the theme was written from scratch and does not use a single plugin: the form, consent handling, SEO, structured data, map and document list are all in the code.

47
PHP files in the theme

approx. 4,000
Lines of PHP, CSS and JS in total

< 300
Lines in every file, without exception

2
Typefaces hosted on the site's own server, with Polish characters

No build step, no CSS framework, no JavaScript libraries. In a few years any WordPress developer will open this code and understand it without documentation. And the documentation exists anyway: an architecture overview, a guide for the office and a standards compliance report.

A map that does not track before consent

A Google map on a contact page is a typical data leak: embedded directly, it sets Google cookies before the visitor has accepted anything. Here the map loads only after a click, and until then it is accompanied by directions: where the building stands, how to recognise it and which floor the office is on.

Consent and measurement on a par with large websites

A small institution got the same consent model we use on our own website. Consent Mode v2 sets every category to denied as the very first script on the page, before any tag loads. The visitor's saved choice is restored immediately on every subsequent page.

  • Seven consent signals in three categories: necessary, statistics and marketing
  • A "Necessary only" button on equal footing with acceptance, settings available from every page in the footer
  • Support for either the Google tag or a GTM container; if both are entered, only the container loads, so statistics are not counted twice
  • Events ready for measurement: clicks on the phone number, email, social media, buttons and form submission
  • A form enquiry counted only after a genuine submission, not when a bot falls into the trap

A form that keeps out spam and clutter

The contact request form has two fields: email and phone, both required. That is enough for the office to call back, and nothing beyond what needs to be processed.

  • Server-side validation: address format, length, 9 to 15 digits in the phone number
  • A limit of five submissions and twenty failed attempts per hour from a single address, counted on a hash of the address without storing it in the database
  • A honeypot field for bots and a one-time security token; an invalid token leaves no trace in the database
  • A reply from the office mailbox goes straight to the sender
A code review that found something

Two code reviews, one focused on security and one on standards, pointed out among other things that invalid submissions could write state to the database beyond the limit, that the contrast of form field outlines was too low for people with low vision, and that further news pages lacked a correct canonical URL. All remarks concerning the site were implemented before handover, and the form field outline contrast is now 4.9 to 1.

Security and search visibility

Security headers including a content security policy, enforced HTTPS with HSTS, a blocked XML-RPC interface and public files that would reveal the WordPress version, hidden pages and the author sitemap. A security.txt file tells security researchers where to report a problem.

For search engines the guild is described as an organisation and a local institution: with its address, coordinates, KRS, NIP and REGON numbers (the Polish court register, tax and statistical identifiers) and its membership of the Chamber of Crafts. On top of that come breadcrumbs, news items marked up as news articles and FAQ sections. The address data is identical everywhere because it comes from a single file, which is the foundation of local SEO.

  • AI assistants that cite pages live are allowed in, crawlers that harvest content in bulk are blocked
  • Other model-training crawlers deliberately allowed: the content is informational and the guild cares about reach
  • An llms.txt file describing the site for language models, a manifest and a full set of icons
  • Photos of the House of Crafts from Wikimedia Commons under free licences, each with the required author credit

Technologies

WordPress
PHP
Custom classic theme
CSS without a framework
Dependency-free JavaScript
Consent Mode v2
Google Tag Manager / gtag.js
Schema.org JSON-LD
Content Security Policy
axe-core
Lighthouse
WP-CLI

Results

The guild has its own web address
A site on the guild's domain, with SSL, an office mailbox and indexing switched on

Top Lighthouse scores
100 points in four categories on the home page, the Apprenticeships page and Contact, on mobile and desktop

Accessibility without violations
Zero WCAG 2.2 AA violations across 11 views, on mobile and desktop

Answers instead of generalities
Apprentice pay, funding, examinations and document templates in one place

The office can run the site itself
News and contact details edited from the admin panel, a user guide written for the office

Zero plugins to maintain
All code in the theme, every file under 300 lines, full documentation

What this project teaches

A small website is no excuse for a lower standard. The guild got exactly what we deliver on larger projects: GDPR-compliant consent, two code reviews, accessibility and layout testing, documentation and a user guide. The difference was in scale, not in care. We did the project pro bono, as support for the local crafts community, and that is exactly why nothing was cut short.

The second lesson concerns the look. The version that "looked nice" lost to the version built from the client's own material. The guild's logo said more about its identity than any palette invented from scratch, and a simple, official layout proved better for an institution people visit for specific information.

Project by KamikStudio • 2026

Have a similar project?

Tell us about your needs. We will prepare a quote and a delivery timeline.