Lagos, Nigeria--:--

Knock, knock

Come on in. The websites don't bite.

Well, only the bugs bite, and I squashed every one of them.
Ready to look around?

Wait, really?

15+ live products across Nigeria, the UK, Canada and the USA — and not one of them has caught fire. Give me 10 seconds of scrolling, I promise it's worth it.

Alright, your loss. Mind telling me why?

Odunayo Bolarinwa Portfolio

Odunayo Bolarinwa Portfolio
01Client
Personal project
02Year
2026
03Category
Portfolio / Custom Development
04Services
DesignFront-End DevelopmentStatic Site GeneratorCreative Coding
Live Site

The site you're on. Designed and hand-coded from scratch with no template, theme or page builder: a custom Python build system, five languages, dark and light modes, a case study for every project and interactive details like a code-to-photo portrait, a 3D full-screen menu and generated ambient sound.

Case study

A portfolio that is itself the proof

The challenge

A portfolio built on a template says very little about a developer. I wanted the site itself to show how I work: custom code, attention to detail on every screen size, and features you don't see on a normal portfolio.

It also had to stay easy to update. With 20+ projects, case studies, translations and screenshots, adding work by hand page after page would have been slow and error-prone.

The approach

I wrote a small Python static site generator for it. One JSON file holds the content, and each project is a folder of screenshots; the build turns them into every page, the sitemap and structured data, and converts images to WebP at two sizes so phones download less.

On the front end it's plain HTML, CSS and JavaScript with GSAP for motion, so it loads fast and nothing depends on a page builder. Every change is checked in dark mode, light mode and at phone, tablet and desktop widths before it ships.

What I built

  • Case study for every project

    The story, the stack each site actually runs on, real results, stacked screens and phone views, generated from the same config.

  • Five languages

    English, Nigerian Pidgin, Yoruba, Hausa and French, switched instantly in the browser.

  • Code-to-photo portrait

    A canvas effect that draws my portrait in code characters; hover (or watch it sweep on phones) to decode it back into the photo.

  • Full-screen 3D menu

    Shutters drop over the page and the links stand up in 3D; on phones it becomes a stack of numbered slabs with a thumb dock and swipe-down to close.

  • Generated sound

    Ambient music and click sounds synthesised live with the Web Audio API: no audio files, and it only plays while you're on the tab.

  • X-ray mode

    One switch reveals how each section of the page is built.

  • Project brief & world map

    A shareable 3-minute project brief at /start/, and an interactive map of where my clients are.

Under the hood

Frontend
HTMLCSSVanilla JavaScriptGSAP + ScrollTriggerVue 3 (works filter)Three.js (WebGL grain)
Browser APIs
Canvas 2D (code portrait)Web Audio API (generated sound)Intl (Lagos clock)
Build
Custom Python static site generatorPillow (WebP images)JSON content config
Hosting
GitHub PagesGitHub ActionsCustom domain

The outcome

  • Live at odunayobolarinwa.com, deployed automatically by GitHub Actions on every push.
  • Adding a new project is a folder of screenshots plus a few lines of JSON.
  • Every update is listed on the site's changelog.

Inside the product

Odunayo Bolarinwa Portfolio: The full-screen menu: the word you point at lifts in green, with a giant outline behind it.
01The full-screen menu: the word you point at lifts in green, with a giant outline behind it.
Odunayo Bolarinwa Portfolio: Light mode: the whole site switches theme, down to the logo and the code portrait.
02Light mode: the whole site switches theme, down to the logo and the code portrait.
Odunayo Bolarinwa Portfolio: From Lagos to the world: an interactive map of clients and projects.
03From Lagos to the world: an interactive map of clients and projects.
Odunayo Bolarinwa Portfolio: A generated case study page: stack, outcome and stacked product screens.
04A generated case study page: stack, outcome and stacked product screens.

On mobile

Odunayo Bolarinwa Portfolio on a phone
Odunayo Bolarinwa Portfolio on a phone
Odunayo Bolarinwa Portfolio on a phone

More Work

What's next?

Let's work together.

Have a custom web app, e-commerce store, WordPress build or digital product in mind? Let's talk about it.

Start a project

Hold up — don't go yet

Leaving without dropping your genius idea here is basically a crime against innovation.

(Not a real crime. Please don't call the police.) Tell me what you're dreaming up — a website, an app, a wild 2am idea — and I'll turn it into something real.

Go on then, impress me.