Client work

Amfora

A diving business’s first website — fully bilingual in Serbian and English, with the visitor’s language detected and remembered.

The Amfora homepage: the wordmark and the line Depth you can rely on, set over a photographed underwater reef, above links to the range, distribution and courses.

The brief

A diving business with no web presence at all — gear, servicing and instruction, run by people who knew their trade and had never had anywhere to send a customer who asked "where can I read about you?"

The site had to work for two audiences at once: local customers who read Serbian, and visitors from elsewhere who don't. Not a translated afterthought bolted onto an English site — both languages treated as equals, because in this market they are.

The constraints

  • No photography. There was no shoot, no budget for one, and no usable archive. A design that leans on big photographs was simply not available.
  • Nothing could be claimed on the client's behalf. No certification bodies, no brands they distribute, no years-in-business, no customer reviews — none of it was confirmed, so none of it appears. A single invented credential in this industry is a real liability, not a marketing flourish.
  • Contact details not yet finalised. The business was still settling its public address and number while the site was being built.
  • Fully bilingual, Serbian and English. Including the page title and the document language, not just the visible copy.

The decisions

Illustration and typography carry the identity, not photographs

With no imagery available, the alternative to stock photography was to draw. The site is built around hand-drawn amphora line art and a classical serif, over an Adriatic palette — deep navy against terracotta and sand.

The one moving element is a hand-written canvas underwater scene in the header. It sets the subject without a single photograph, and it weighs almost nothing.

What it costs: an illustrated site is harder to hand over — the client can't drop in a new photo and have it fit. In exchange it looks like nobody else's, and it can't age the way a stock-photo site does.

Both languages are first-class, and the site guesses correctly

Every string is addressed by a data-i18n key against a dictionary in the page — over a hundred of them — so nothing is left half-translated. On first visit the browser's language decides: Serbian, Bosnian, Croatian, Montenegrin, Macedonian and Slovenian all resolve to Serbian, everything else to English. The choice is then remembered.

Switching also updates the document's lang attribute and the page title, so screen readers and browser tabs stay correct rather than just the visible text. The Serbian is written natively in latinica, not translated word-for-word from English.

What it costs: every future copy change has to be made twice, and the toggle shows the language you'd switch to, which is a convention people occasionally read backwards.

Unknown details are shown as unknown

Where the address and phone number weren't settled, the page says so plainly instead of displaying a plausible placeholder. Nobody arrives at a door that isn't there.

What it costs: a visitor sees an unfinished field, which looks worse than a fake address for exactly as long as it takes to notice the fake address is wrong. Honest beats polished when someone might get in a car.

Built with

  • Hand-written HTML, CSS & JS
  • No framework
  • Canvas
  • Inline SVG illustration
  • Custom i18n layer
  • Cloudflare Pages

This is client work. The business isn't named here, and nothing about its people or operations appears on this page — only the design problem and how it was solved.