All references

Case study

Web studioHosting

Big galleries and a menu that never overlaps

Deltalab. An urban studio whose project galleries need to be sharp and fast, with a menu that is different every time.

Open site See the gallery Draft — the client is still confirming the text
PageSpeed (mobile)
92PageSpeed (mobile)
in every gallery
AVIFin every gallery
overlapping menu items
0overlapping menu items
01

The client and the challenge

Deltalab publishes its projects through large galleries of high-resolution photos, and the /galerija page brings them together. The images must be high quality and the site fast on mobile too. On top of that, the studio’s identity includes an unusual menu: items are scattered across the screen at random positions, different every time, but they must never overlap.

02

The solution

Media lives on its own subdomain (media.deltalab.hr) in our Backblaze B2 bucket, and local copies left the disk only after each file was confirmed in the bucket. Gutenberg gallery, cover and image blocks serve AVIF through HTML <picture>, with the original as a fallback. When a Gutenberg upgrade started showing doubled images in galleries, JPEG and AVIF stacked on top of each other, we fixed it so every slot, lightbox included, shows one image. The menu runs on our own script, which works out item positions and recalculates them when the screen size changes.

03

The result

The homepage scores 92 on the mobile PageSpeed test, galleries are in AVIF, and the menu looks different on every visit with no item covering another, at any screen size.

Under the hood

01

Random, but never on top of each other

The script measures every menu item, looks for a random free spot for it and rejects any position that would touch an item already placed. When the window is resized or the phone is turned, positions are worked out again, so the layout always fits the screen.

02

Galleries in AVIF

Photos are served from media.deltalab.hr. A browser that supports AVIF gets a smaller file of the same quality, others get the original. Nothing is swapped at the same address, so nothing breaks.

03

A light disk

The large photo library is not on the web server’s NVMe disk. A local copy is deleted only once the file is confirmed in the bucket, and anything not confirmed stays on disk.

04

Objects you can throw

You can grab, drag and throw elements on the page: GreenSock (TweenMax and Draggable) works out the path and the momentum, so an object keeps sliding and slows down like a real one.

05

A title that follows the phone’s tilt

On the homepage the logo is cut into slices that move as you tilt your phone. We read the device orientation through the Full-Tilt library (gyroscope); the video below shows the effect with a simulated tilt.

More references

All references →
vizkultura.hr
HostingVizkultura

Half a million images that no longer go missing

A visual culture portal with one of the largest media libraries in the region: from upload problems, through R2, to Backblaze B2 and AVIF.

  • PageSpeed 94 (mobile)
  • Core Web Vitals: passed
  • No image overwrites another any more

Draft — the client is still confirming the text

Read the story
togetherness-togetherless.com
Web studioHostingTogetherness / Togetherless

An interactive pavilion for the Venice Biennale

A web app for the Croatian Pavilion at the 17th Architecture Biennale (2021): visitors build their own compositions from objects in the exhibition and share them.

  • 17th Architecture Biennale, 2021
  • Built to the designers’ design
  • Compose, export and share

Draft — the client is still confirming the text

Read the story

Try it on your own site

Send us your site address — you get a migration assessment within one business day.