Skip to content
Canvaz X

A bilingual B2B website for a medical-waste disinfection system

A bilingual B2B website for BMR's MR1 medical-waste disinfection system, built and launched in six days with no third-party requests and no cookies.

Client
BMR OOD (Bulgarian Medical Recycling)
Industry
Healthcare equipment
Services
Websites
The home page of the disinfection system's website: the English headline 'Disinfecting hazardous medical waste – where it is produced', two buttons, and a photograph of the stainless-steel machine with its door open and a blue container inside.

Challenge

BMR sells MR1, an autonomous microwave system that disinfects hazardous hospital waste. Its earlier attempt at a website was a draft. They needed a credible site that makes hospitals, labs and dialysis centers ask for an offer.

Approach

A premium look without the weight. No third-party requests, no cookies and no tracking, so no cookie banner is needed. Motion that adds meaning, and switches off fully for people who prefer reduced motion.

Solution

  • 16 pages: eight in Bulgarian and eight in English
  • Scroll storytelling that explains how the machine works
  • A contact form with spam protection, rate limiting and thank-you pages in both languages
  • Search set-up: canonical and language tags, structured data and a sitemap
  • Security headers and deploy scripts that back up first

This is the marketing website for BMR OOD (Bulgarian Medical Recycling) and its MR1 disinfection system, and a deliberately small site: sixteen pages, no framework and no build step. The effort went into making it quick to ship, safe to run and hard to break, and it was built and launched in six days.

What was engineered

The site has eight pages in Bulgarian and an English mirror of each under its own path: home, product, services, about, contact, privacy, thank-you and a 404 page. Everything is plain HTML, CSS and JavaScript. The animation library and the fonts are hosted on the same server, so a visit makes no third-party requests, sets no cookies and runs no analytics. That is why there is no cookie banner.

The home page of the disinfection system's website: the English headline 'Disinfecting hazardous medical waste – where it is produced', two buttons, and a photograph of the stainless-steel machine with its door open and a blue container inside.

The MR1 home page.

The home page tells the story of the machine with a gradient mesh, pulse rings, a headline that reveals word by word, tilting panels, counters and a pinned how-it-works section on wide screens. Every effect switches off under reduced motion, the content works without JavaScript, and only transform and opacity are animated.

If the main script fails to load, the navigation still works. That fallback was tested in Chromium, Firefox and WebKit, and the testing found a bug that appeared only in Safari, which was then fixed.

Images are served as WebP with a JPEG fallback at three widths, with explicit dimensions so nothing jumps while they load. The logo mark was generated by a script, and a questionnaire in Bulgarian collected what the brochure and photographs could not answer.

The contact form

The form posts to a small PHP handler. It uses a honeypot field and a timing check, limits requests per address for both IPv4 and IPv6, rejects malformed input, and works without JavaScript. Visitors land on a thank-you page in the language they used. A live test delivered a message to BMR's mailbox.

Search and security

Each page carries canonical and language tags, structured data and social images in both languages, and a validator script checks the set. The server sends a content security policy, strict transport security, a permissions policy and framing protection.

Checks written as code

The header and footer are repeated across sixteen files, so a script fails the build if any copy drifts. A layout check for the story section is itself tested by deliberately breaking it. The production build uses an allow-list, with tests that prove excluded files stay out. The deploy script backs up first, never deletes, can upload a chosen subset and leaves the server configuration alone.

One find shows why the test suite earns its place: a viewport tag written with typographic quotes looked right on screen, but browsers ignored it. It broke the mobile layout and held the Lighthouse best-practices score at 93 until it was caught and fixed.

Measured on the live site

On the live site, Lighthouse for mobile gave 100 for accessibility, best practices and SEO, and 87 to 88 for performance, as the median of three runs across six pages, with the largest contentful paint at 1.6 to 2.0 seconds. The remaining ten pages were not measured. The end-to-end suite passed 299 tests against the live site, with three skipped and none failing, and a link check of 180 URLs found nothing broken. The W3C validator reported no errors or warnings on all sixteen pages.

Lighthouse performance, mobile, live site
87-88

An open defect, stated plainly

Layout shift is still above target on four of the six measured pages, between 0.23 and 0.26, caused by the font swap. It is recorded and tracked, not hidden.

The work took 100 commits in six days, from 1 to 6 October 2026, across design brief, design system, asset pipeline, pages, English version, form handler, search polish, hosting, domain set-up and launch checks. The site replaced a draft, so there is no before-and-after comparison to quote.

Outcomes

Lighthouse accessibility, mobile, live site
100
Lighthouse performance, mobile, live site
87-88
Automated tests passed on the live site
299
Broken links found
0

Stack

  • HTML
  • CSS
  • JavaScript
  • GSAP 3 and ScrollTrigger (self-hosted)
  • Self-hosted fonts
  • PHP contact handler
  • Apache
  • Playwright and Lighthouse (testing)

Services used

Next project
Services section on a dark background: six numbered cards covering design, production, installation, turnkey delivery, facade systems and interior finishes.

A 20-year-old industrial website, with its search problems fixed and a new homepage

Construction, steel structures