an image of the peak of mount everest

UX/UI at new heights

Mission statement

"I believe that by challenging conventional design, I can create a digital world in which everyone feels included."

Tibo Kooreman

About Me

Portrait of Tibo

I'm Tibo, a web developer and UX/UI designer. The people I work with often describe me as driven because I'm always eager to improve and learn new things. This motivation is why I now write my code to be automatically responsive.

My digital products work well on any screen size, especially on mobile, and don't require extra adjustments. Along the way, I also learned that buttons should be at least 24 by 24 pixels, and ideally 44 by 44, to meet accessibility guidelines.

As people often say, it's not just about the result but the journey. I enjoy learning so much that I never want that journey to end.

skills

Development

From backend logic to your dream website — I build it all.

Full-stack Development APIs and Integration Performance Optimization Scalability

Design

Turning ideas into interfaces that feel natural, clear, and bold.

UX/UI Accessibility Visual Design Interaction Design Prototyping

Universal

Versatile strengths that adapt to any challenge.

Communication Content Optimization Leadership Adaptability Systems Thinking

Projects

Dino Experience preview

Dino Experience

Two-device realtime controller and player

DevelopmentNode.jsSocket.ioHTMLCSSScalableSchool Project

This school project involved building a functional Pepper’s Ghost hologram for the Museum of Natural Sciences in Brussels, home to one of Europe’s largest dinosaur fossil collections. Using a transparent sheet set at a 45° angle, we created a hologram effect that felt immersive without requiring the need for a VR headset.

I was responsible for the code side of things, mainly the backend for which I used Node.js with the Socket.io plugin. One technical challenge we encountered was autoplaying the animation without user interaction (for example clicking, pressing spacebar, etc.). We resolved this by using Firefox instead of Chrome. For the most true to original demo experience: open Firefox and navigating to Settings > Privacy & Security > Autoplay > about:welcome > “Allow Audio and Video”.

Another issue was the connection between devices getting interrupted during testing. Our school’s Wi-Fi had strict firewall rules that we couldn’t bypass, so we solved this by connecting both devices to the same mobile hotspot instead.

Due to time constraints, we only included one dinosaur in the current version. However, the system is fully scalable. It could theoretically support every dinosaur ever discovered. The final setup is flexible as well, depending on the museum’s budget for the hardware requirements.

While the hologram technique itself is classic, the execution was modern, responsive, and tested in a real-world setting with live visitors and hardware.

Volkswagen app preview

Volkswagen App

My first ever project in React Native

DevelopmentUX DesignFull-StackReact NativeAPIMobile AppSchool

For this school project, the assignment was to build an e-commerce app. I chose to create a concept app for the Volkswagen Group, allowing users to filter and browse through models from across their brands.

This project became my first real dive into React Native, and I immediately took to its modular workflow capabilities. I focused on efficient component styling, API integration, and reusing styles across views to keep the codebase clean and maintainable.

React native is a language I am definitely going to further explore. I love the capabilities it has and it opens up a new door to app development that was previously undiscovered.

Racing Mashers preview

Racing Mashers

A Multiplayer Race of Speed and Spite

DevelopmentNuxt 4Vue 3SupabaseTypeScriptVanilla CSS

Racing Mashers is a chaotic, real-time multiplayer racing game designed to test both your clicking speed and your luck. It’s a "serverless" head-to-head battle where victory depends on how fast you can mash your buttons—and whether or not the weather gods are on your side.

How it Works: The "Pain & Suffering" Mechanic
Unlike a fair race, Racing Mashers is built on suspense. Players are matched in a lobby and must first commit to a tire compound (Slicks, Intermediates, or Wets) without knowing what the track conditions will be. The Reveal: Only after the tires are locked in does the game reveal the weather (Clear, Damp, or Rain). If you picked Slicks and it starts pouring rain, you’ll be fighting a massive speed penalty. If you guessed right, you’ll fly past your opponent.

The Tech Behind the Chaos
I built this project to showcase how modern web tools can handle complex, real-time interactions without a traditional backend:
Instant Multiplayer: I used Supabase Realtime and Broadcast channels to sync player movements and tire choices.
Smart Matchmaking: Using Supabase Presence, the game automatically handles the lobby system.
Math-Based Movement: I used the getPointAtLength API to calculate exactly where the cars should be and how they should rotate as they move.
Modern Architecture: Built with Nuxt 4, Vue 3, and TypeScript.
Custom "Cyber" Aesthetic: I used Vanilla CSS to create a high-contrast, glowing interface.

The Engineering Challenge
The main goal was to synchronize a fast-paced game state across two different screens simultaneously. By leveraging Supabase’s ephemeral channels, I was able to broadcast "mashing" events in real-time, ensuring that when you click, your car moves instantly on your opponent's screen too.

contact

Send me a message

Message details