Skip to content

A portfolio website for dancer and choreographer Denison Silva

Dance is hard to tell through still images. For Denison Silva, a dancer, choreographer and dance teacher in Berlin, I designed and built an artist website where movement comes first: his name becomes a stencil with the video running through it. Three languages, fast, and free of tracking.

For
Dancer, choreographer and dance teacher, Berlin
Year
2026
Status
In progress
Stack
React · TypeScript · Vite · Tailwind CSS · i18n

Case study

The brief

Denison’s work lives in movement, and that is exactly what gets lost in a classic portfolio layout with a photo gallery. He needed a website that shows theatres, choreographers and students how he dances within seconds, then answers the practical questions: engagements, repertoire, classes and contact.

His audience speaks different languages, so the site was set up in English, German and Portuguese from day one, each version on its own address.

The idea: type as a window

The hero sets his name in tall, narrow capitals over running video. Everything around the letters stays black; you only see him dance through the type. The first impression is logo and showreel at once.

Under the hood it is an SVG mask. The wordmark is measured once the font has loaded and fitted to the cap height, so it sits edge to edge on every screen. On narrow screens the two words stack flush left. Anyone who has asked their system for reduced motion gets a still image instead of the video.

What I built

  • Concept and design based on his résumé
  • Frontend in React and TypeScript on Vite, styled with Tailwind CSS
  • Three language versions with their own URLs, linked through hreflang
  • Prerendering: every page ships as finished HTML that Google, link previews and AI search can read
  • Structured data on every page, including VideoObject for videos and Event for productions
  • The résumé as a timeline with a filter by role
  • Click-to-load video: YouTube and Vimeo are only contacted once someone presses play
  • Contact form with a honeypot instead of a captcha, self-hosted fonts, no cookies and no consent banner

Built to grow

Content is data, not markup. A new engagement, video or production is one entry in a data file. The timeline, the filter, its own page, the sitemap entry and the structured data all follow from it on the next build, without anyone touching a component.

The site is still being built out and grows step by step with new videos and productions.

More work

More from the workshop

Contact

Need a website for your creative work?

Dance, music, photography or theatre: I design and build portfolio websites that show your work instead of just describing it. Tell me what you are working on.