Section 00 · HeroStatus · Booting

Heller,Manuel.

zvoove · Full StackJogge di Balla · VPBasel-Region · CH

Awwwards-inspired craft portfoliobooting …

Section 01 · About

Développeur full-stack avec un œil d'artiste.

Code, photo, design : même artisanat, surface différente.

01 / 04IdentitéMMXXVI
Les choses intéressantes se passent justement entre les deux.

Je suis Manuel, développeur full-stack chez zvoove Switzerland AG depuis novembre 2021. PHP et Vue au boulot, appareils photo et Photoshop le soir, et tout ce qui se passe entre code et image. Je ne crois pas à la séparation entre « technique » et « créatif » ; les choses intéressantes se passent justement entre les deux.

02 / 04Minecraft · 2014Novartis EFZ · 2017–2021zvoove · 2021—
Je veux comprendre comment tout ça fonctionne sous le capot.

La programmation est venue chez moi par le gaming. J'ai monté mon propre serveur Minecraft modpack et j'ai commencé à coder des Mining Turtles en Lua. C'est le moment où j'ai compris : je veux comprendre comment tout ça fonctionne sous le capot.

Mon apprentissage, je l'ai fait comme informaticien d'entreprise CFC (Betriebsinformatiker EFZ) chez Novartis. Je voulais en fait devenir développeur, mais Novartis ne proposait que la voie informaticien d'entreprise, et un apprentissage chez Novartis, on ne refuse pas. Quatre ans de serveurs, réseaux, support : base solide, mais à la fin c'était clair : je postule comme développeur. Avec zvoove depuis 2021, je travaille sur le produit principal zvoove Core, sur divers outils d'API et d'interfaces, et sur des tests E2E Cypress.

Photo portrait Manuel Heller, développeur full-stack Bâle
St. Moritz · MMXXV
Plate Nº 03

Currently

travaille sur
ce site même
apprends
React 19 · R3F 9 · shaders WebGPU
lis
wildlife au Costa Rica & en Thaïlande
écoute
Audi S5 B8.5 (projet tuning)
joue
pour le titre de champion ping-pong chez zvoove
Les sites générés par IA se ressemblent tous aujourd'hui parce que la plupart des gens laissent la créativité à l'IA.

Une IA, c'est comme un pinceau : un outil qui ne fait pas l'art tout seul. Elle n'est aussi bonne que le plan et le prompt qu'on lui donne, et elle a besoin de quelqu'un avec du goût, de la créativité et une idée claire de la direction. Les sites générés par IA se ressemblent tous aujourd'hui parce que la plupart des gens laissent la créativité à l'IA.

J'utilise un workflow IA très configuré : custom agents, hooks, skills, prompts multi-étapes, fichiers de conventions clairs. J'ai amené deux applications web complexes de zéro à la production avec ce workflow (l'une est la plateforme Jogge di Balla, l'autre est exactement ce site). La combinaison de cette profondeur de workflow et du sens visuel issu de la photo et du design, c'est ce qui fait la différence entre une énième landing page générique et quelque chose dont on se souvient.

Ce qui me motive ? La curiosité, pour être honnête.

Je m'enthousiasme pour presque tout, et j'en suis convaincu : à l'ère de l'IA en particulier il faut rester sur le coup plus que jamais. Arrête d'apprendre, et tu es à douze mois de te faire dépasser. Apprendre de nouvelles choses, c'est juste fun pour moi. Pour moi ce n'est pas une pression, c'est le mode par défaut.

Hors de l'écran

Quand l'écran est éteint.

Snapshot 2026

  • Appareil

    shooting · Sony α7 IV · wildlife

  • Audi S5

    driving · B8.5 · projet tuning

  • Jogge di Balla

    co-running · association · vice-président

  • Neige

    carving · ski/snowboard · saison d'hiver

  • Profondeur

    diving · certifié

  • Ping-pong

    chasing · titre de champion zvoove

Section 02 · Skills

Ce que j'apporte.

La taille porte le poids. Pas d'années, pas de labels.

Hero Skill

AI Workflow & Vibecoding

Custom agents, hooks, skills, prompts multi-étapes. L'IA n'est pas l'outil que j'utilise — c'est l'outil avec lequel je crée des outils.

Daily Driver · Production

  • PHP
  • Vue
  • MariaDB · MySQL
  • HTML · CSS · œil web-design

Production · Operations

  • Yii
  • Docker
  • Vite
  • GitLab
  • Cypress
  • OpenAPI · Swagger
  • nginx · admin serveur Linux

Vibecoded Stack

Ce que je construis avec le workflow IA, pas à la volée sans.

  • TypeScriptvibecoded
  • Reactvibecoded
  • Next.jsvibecoded
  • tRPCvibecoded
  • Drizzle ORMvibecoded
  • shadcn/uivibecoded
  • GSAPvibecoded
  • Three.js · R3F · Drei · Postprocessingvibecoded
  • Lenisvibecoded
  • next-intlvibecoded
  • zustand · statevibecoded
  • GLSL · shaders WebGLvibecoded
  • Biome · Lint & Formatvibecoded
  • Playwright · E2E + Axe + Visualvibecoded
  • Sharp · Asset Pipelinevibecoded

Dans la boîte à outils

Je connais, j'utilise pas tous les jours.

  • Java
  • Python
  • PowerShell
  • Bash
  • Git
  • Tailwind CSS
  • Lightroom
  • Photoshop
  • DaVinci Resolve

Craft · Eye

  • Photographie
  • Montage vidéo
  • Graphisme
  • Live Web Fluid Simulations
  • Expérimentations shaders

Section 03 · Work

Deux projets. Les deux vibecoded.

Pas de galerie portfolio, pas de buffet de stack. Deux applications web sérieuses, de zéro à live.

Du chaos associatif à une plateforme dédiée.

Joggediballa Homepage Mobile
Joggediballa · Mobile · Live
Toutes les associations se battent avec la même galère : feuilles Excel, sites statiques, partage de fichiers et d'infos, outils isolés. Pour Jogge di Balla, j'ai mis ça au propre : une plateforme sur mesure qui couvre tout, de la gestion des membres jusqu'à l'overlay Twitch. Vibecoded, auto-hébergée, surdimensionnée.

C'est quoi, Jogge di Balla ?

Fondée
05.08.2022 à Brislach
Membres actifs
9
Donateurs gérés
68+
Événements / an
4–8
Portée Instagram
1067+ abonnés · ~100k vues / 30 jours

Idée née pendant le Covid : quatre amis, plus rien à faire, on a donc monté des événements décalés entre potes. Ça s'est transformé en association avec des classiques publics comme Schlag den Kassier, Silvester 2.0, Harassenlauf, ou la fameuse Lotto-Party.

Mon rôle : vice-président, développeur web, photographe, cameraman, social-media manager. Parce que j'avais le skillset et que je suis assez perfectionniste pour donner à l'association non seulement un visage mais une web app dédiée et auto-hébergée.

Note de stack

  • React 19 · Vite·Frontend & Build
  • TypeScript·Langage (fullstack)
  • tRPC·Couche API
  • Drizzle ORM · MySQL·Base de données
  • Tailwind · shadcn/ui·Styling & composants
Tableau de bord admin avec card de permissions et liste des membres
Tableau de bord admin · Daily Driver

Highlight 01 · Substance technique

Le tableau de bord admin

Invisible pour les visiteurs, le cœur du site. C'est là que tout converge.

  • Système de permissions dynamique

    Droits granulaires (edit_events, manage_sponsors, edit_shotcounter, …) attribuables par card par rôle, sans modification de code. Le backend vérifie chaque appel tRPC via un middleware requirePermission() maison.

  • Suivi des présences avec statistiques

    Liste de présence générable par événement, les données alimentent directement une vue graphique. Aide à la vue d'ensemble et à un peu de compétition interne.

  • Cycle de vie des donateurs

    Sponsors gérés depuis le système. Statut (actif / expiré / nouveau) calculé automatiquement, avec gestion financière et adresses pour notre Kassier.

Overlay Twitch en stream avec score live et design de l'association
Schlag-den-Kassier · Live stream

Highlight 02 · Feature la plus visible

Overlay live Schlag den Kassier

Overlay Twitch personnalisé intégré directement à la plateforme. Au lieu de services externes coûteux : juste fait moi-même.

  • URL cachée comme browser source

    OBS embarque /overlay/sdk, un panneau de contrôle sur /overlay/sdk/control pilote le score en direct.

  • Temps réel sans rechargement

    Le polling tRPC synchronise l'overlay en stream instantanément. Effet shimmer doré pour les vainqueurs, calcul automatique « mathématiquement éliminé ».

  • Audience honnêtement modeste

    ~15–20 viewers concurrents, ~100 au total. Le tooling reste solidement construit, et réutilisable.

Couche publique 1
Statistiques · Membres & saisons
Couche publique 2
Gestion donateurs · CRM-light
Couche publique 3
Formulaire d'inscription · mobile

Leçons apprises

Les tests manuels m'ont coûté beaucoup de temps à l'époque. Aujourd'hui je monterais le projet dès le départ avec des tests automatisés et des outils IA, je tuerais les bugs à la racine et je mettrais le focus entièrement sur le déploiement.

Live en servicejoggediballa.chouvre dans un nouvel onglet

Section 05 · Photography

Section 05 · Photography

À travers l'objectif.

Wildlife et voitures, mes deux mondes. Les uns, je les traque seul dans la jungle du Costa Rica ou de Thaïlande, les autres me trouvent en général plus près de chez moi. Ce qui les relie : la patience, la lumière, et le moment qui justifie toute la journée.

SONY α7 IV · 24–600mm · depuis 2023

Pélican en vol au-dessus du Pacifique, Costa Rica
MANUEL ANTONIO · 2024 · WILDLIFE01 / 5

Arrêt à 30 km/h.

Parfois, l'image la plus intéressante n'est pas celle avec la vitesse d'obturation la plus élevée. C'est celle avec la lumière qui n'est là que cinq minutes.

Hypercar Koenigsegg sous une arche d'hôtel au crépuscule
ST. MORITZ · 2025 · AUTO02 / 5
Cargos sous une formation nuageuse spectaculaire à l'horizon
COSTA RICA · 2024 · SEASCAPE03 / 5
Arbre solitaire au bord d'un lac, reflet dans l'eau, Costa Rica
LAKE ARENAL · 2024 · LANDSCAPE04 / 5

La patience comme composition.

Lake Arenal : une heure et demie à attendre que le vent tombe et lisse enfin la surface. C'est le reflet qui fait l'image, pas l'arbre.

Crocodile avec un papillon sur le museau, Costa Rica
TÁRCOLES · 2024 · WILDLIFE05 / 5

Section 06 · Playground

Section 06 · Playground

Là où la simulation de fluide a le droit de jouer.

Deux expérimentations shader, toutes deux ancrées dans la narration encre/impression. Pure démonstration de craft, pas de contexte produit.

Section 07 · Contact

Parlons.

Demande, question, idée, ou juste un bonjour, l'inbox est ouverte.

Quelques mots avant

Je réponds en général en un à deux jours. Pour les recruteurs et les demandes du monde associatif : merci d'indiquer brièvement d'où tu viens, ça évite le second e-mail.

Canaux directs

GitHub n'est que semi-actif, ce n'est pas un compte vitrine à 100 repos.

Tous les champs sont obligatoires