Skip to content
levitskiy.dev
Back to work
Case 04 / 04[DJ] — [2026]

DJ ZEZE.

Client
DJ ZEZE — Prague DJ, resident at Duplex Prague
Role
Design & Development
Stack
Vanilla JS · Web Audio API · Canvas / WebGL · Blender · Node.js static build
Year
2026

A booking site for Prague DJ ZEZE: a 3D DJ controller that turns as you scroll and works as a real mix player — faders, EQ and effects, on desktop and on a phone. Three languages, bookings via Telegram and email.

DJ ZEZE — 3D hero — furry logo, speakers and a DJ controller over a looping club video
3D hero — furry logo, speakers and a DJ controller over a looping club video
Open fullscreen

Overview

ZEZE plays open format — hip-hop, R&B, trap, baile funk, dancehall, afro, tribal house — and is a resident at Duplex Prague. The site has one job: sell her from the first screen and bring in bookings for clubs, weddings, corporate events, private parties and festivals. There are no prices on it — terms are agreed in person.

I built it end to end: concept and design, 3D scenes rendered in Blender, a custom audio engine, three languages, legal pages for the Czech market, security, SEO and launch. No framework — vanilla JavaScript and a static Node.js build that ships a ready HTML page per language.

The first screen has no pop-ups: the site uses no cookies and no analytics, so it needs no cookie banner. Within a week of launch Google had 7 pages indexed, the site ranked second for «soundbyzeze» right after her Instagram, and Lighthouse scores SEO 100, Best Practices 100, Accessibility 97.

Explore the real thing/demos/zeze/

The demo runs the real controller with the first five minutes of each of the four mixes — the full sets play on soundbyzeze.com.

Signature animation

How it works.

The controller is not a picture of a controller. Scrolling swings the camera from the front to a top-down view, and from there the decks, faders and effects actually play her mixes.

  1. 01

    80 rendered frames

    The camera move is an 80-frame sequence rendered in Blender and scrubbed by scroll. Speaker cones and lights are separate render passes on top.

  2. 02

    A custom audio engine

    Mixes are cut into 60-second AAC chunks and stitched sample-accurately, with no clicks. Every sound runs through the mixer — in any browser, iPhone included.

  3. 03

    A real layout

    Buttons follow the spec of a real controller (DDJ-REV5): faders, crossfader, EQ, filter, echo, reverb, flanger, hot cues, loops, rolls, censor, scratch, sync, SHIFT.

  4. 04

    Speakers on the beat

    Cones light up and pump in time, and a tap shakes the speaker. The fur on the logo and the smoke are custom Canvas/WebGL shaders.

DJ ZEZE — After the turn — the controller from above; on the right, the first screen on a phone
DJ ZEZE — mobile
After the turn — the controller from above; on the right, the first screen on a phone
Explore the real thing/demos/zeze/
Features06
  • 01

    Controller on a phone

    Zoom by section (deck A · mixer · deck B), forgiving touch targets and multitouch — two faders with two fingers at once.

  • 02

    iPhone, even on silent

    A plain <audio> on iOS plays outside Web Audio, so the faders did nothing; the custom engine fixed it. Web Audio is mute in silent mode — a workaround makes it play.

  • 03

    Light first load

    Audio starts loading on the first mouse move or tap, not with the page — 3.8 MB less on every visit. The logo does not jump: CLS 0.004 against a 0.1 limit.

  • 04

    Three languages, properly

    EN, RU and CS as separate static pages with text in the markup, a hreflang sitemap, llms.txt and JSON-LD. Checked from 320 to 1920 px: no broken compound words, no one-letter prepositions left hanging — a rule in Czech typography.

  • 05

    Nothing to attack

    Strict CSP, HSTS and anti-framing headers. No backend, no forms, no secrets. Czech business details in the footer and a GDPR notice in three languages.

  • 06

    Search from day one

    Google Search Console, Bing Webmaster Tools and IndexNow (Bing, Seznam, Yandex) connected at launch.

Design system

Palette

  • Bg#0B070F
  • Bg 2#120C16
  • Ink#F4EEF1
  • Accent#FF4FA3
  • Accent 2#FF7CBD
  • Lilac#B9A2FF

Typefaces

  • Inter TightDisplay
  • GeistText
  • Geist MonoLabels
Gallery04
  • About — photo, bio and facts, here in Russian
    About — photo, bio and facts, here in Russian
  • Privacy — the essentials on numbered cards
    Privacy — the essentials on numbered cards
  • Booking — email, Telegram, Instagram and event formats, here in Czech
    Booking — email, Telegram, Instagram and event formats, here in Czech
  • Privacy page — a «0 cookies» record and NO TRACKING tapes
    Privacy page — a «0 cookies» record and NO TRACKING tapes
Next project

Polyakov Barber

[Barbershop] — [Scroll morph]