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


Tibo Kooreman

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.
From backend logic to your dream website — I build it all.
Turning ideas into interfaces that feel natural, clear, and bold.
Versatile strengths that adapt to any challenge.

Two-device realtime controller and player
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.

My first ever project in React Native
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.

A Multiplayer Race of Speed and Spite
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.