Skip to content
Nafiz Iqbal
← All work

Official bilingual website, 2025

Hasnat Abdullah

The official website of a leader of Bangladesh's 2024 July Uprising. Two languages on one URL with zero i18n libraries, static by design and ready for a CMS, with documentary restraint throughout.

Client
Public figure, Bangladesh
Role
Design and development, solo, from brief to production
Stack
Next.js, React 19, TypeScript, Tailwind CSS
Live
Private
Homepage of the Hasnat Abdullah website in Bangla

What it changed

  • 8 routes, all server-rendered static pages, with only 8 of roughly 22 components shipping client JavaScript.
  • Four lines of CSS run the entire bilingual system. No i18n library, no state manager, no UI kit.
  • Both languages live on one URL per page, so links, search, and sharing stay simple.

A public figure's site that could not look like one

Hasnat Abdullah was a coordinator of the Students Against Discrimination movement at the University of Dhaka and one of the most visible faces of the July Uprising. His audience spans citizens, students, journalists, researchers, and international visitors.

The brief was a Bangla-first, documentary-toned site that treats a national moment with editorial restraint. Closer to a premium digital magazine than a campaign brochure. Bangla is the default language and the primary typography, down to the numerals. English is the alternate.

Hero of the site with Bangla headline and documentary photography

Two languages, one URL, no library

A tiny inline script reads the saved preference and stamps the language on the document before first paint, so a returning English reader never sees a flicker of Bangla. Two utility classes let one block compose differently per language: in the hero, the active language is the headline while the other becomes a subtitle beneath it.

Hidden spans use display none, so screen readers only ever hear the active language, and each span carries the correct lang attribute for pronunciation. Even the stat counters localise their digits.

Timeline section with dated events and crimson rule

Fast on mobile networks

Every photograph is converted to WebP before shipping and rendered through next/image. The stat counter is a hand-rolled requestAnimationFrame ease-out with reduced-motion users getting the final value instantly. Video feeds are plain JSON with thumbnails drawn from a URL pattern that always exists.

SEO covers both languages on one URL: a build-time Open Graph image, structured data carrying the Bangla name as an alternate, and a sitemap that weights the memorial page highest.

Need something built to this standard?

Tell me what you are building, even roughly. The first conversation is free and I will tell you honestly what it takes.

Email
f.nafiziqbal@gmail.com
WhatsApp
+880 1882 152429
Where and when
Dhaka, Bangladesh, GMT+6. Replies within a few hours.