Section 00 · HeroStatus · Booting

Heller,Manuel.

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

Awwwards-inspired craft portfoliobooting …

Section 01 · About

Full-Stack Developer mit künstlerischem Auge.

Code, Foto, Design: alles dasselbe Handwerk in unterschiedlicher Form.

01 / 04IdentitätMMXXVI
Die spannenden Sachen passieren genau dazwischen.

Ich bin Manuel, Full-Stack Developer bei zvoove Switzerland AG, seit November 2021. Beruflich tief drin in PHP und Vue, privat eingehend mit Kameras, Photoshop und allem was zwischen Code und Bild Spass macht. Ich glaube nicht an die Trennung von 'technisch' und 'kreativ'; die spannenden Sachen passieren genau dazwischen.

02 / 04Minecraft · 2014Novartis EFZ · 2017–2021zvoove · 2021—
Ich will verstehen, wie das alles unter der Haube läuft.

Programmieren kam bei mir über Gaming. Ich habe einen eigenen Minecraft-Modpack-Server aufgesetzt und angefangen, Mining-Turtles in Lua zu programmieren. Das war der Moment in dem ich gemerkt habe: ich will verstehen, wie das alles unter der Haube läuft.

Die Berufslehre habe ich dann als Betriebsinformatiker EFZ bei Novartis gemacht. Eigentlich wollte ich Entwickler werden, aber Novartis bot nur den Betriebsinformatiker-Track, und so einen Ausbildungsplatz lässt man sich nicht entgehen. Vier Jahre Server, Netzwerk, Support: solide Grundlage, aber spätestens am Ende der Lehre war klar, ich bewerbe mich als Developer. Seit 2021 bin ich bei zvoove und arbeite am Hauptprodukt zvoove Core, an diversen Schnittstellen-Tools und an Cypress-E2E-Tests.

Portraitfoto Manuel Heller, Full-Stack Developer Basel
St. Moritz · MMXXV
Plate Nº 03

Currently

arbeite an
diese Seite hier
lerne
React 19 · R3F 9 · WebGPU-Shader
schieße
Wildlife in Costa Rica & Thailand
fahre
Audi S5 B8.5 (Tuning-Projekt)
jage
den zvoove Ping-Pong-Champion-Titel
AI-generierte Websites sehen heute alle gleich aus, weil die meisten Leute der AI die Kreativität überlassen.

Eine AI ist wie ein Pinsel: ein Werkzeug, das die Kunst nicht alleine macht. Sie ist nur so gut wie der Plan und der Prompt, den man ihr gibt, und sie braucht jemanden mit Geschmack, Kreativität und einem klaren Bild davon, wo es hingehen soll. AI-generierte Websites sehen heute alle gleich aus, weil die meisten Leute der AI die Kreativität überlassen.

Ich nutze einen tief eingerichteten AI-Workflow: Custom Agents, Hooks, Skills, mehrstufige Prompts, klare Konventions-Dateien. Ich habe bisher zwei komplexe Webapps damit von Null auf produktionsreif gebracht (eine davon ist die Jogge di Balla-Plattform, die andere ist genau diese Seite hier). Die Kombination aus dieser Workflow-Tiefe und meinem visuellen Sinn aus Foto und Grafik ist das, was am Ende den Unterschied macht zwischen noch einer generischen Landing-Page und etwas, das man sich merkt.

Was mich antreibt? Neugier, ehrlich gesagt.

Ich bin für fast alles zu begeistern und überzeugt: Gerade jetzt im KI-Zeitalter muss man mehr denn je dranbleiben. Wer aufhört zu lernen, ist innerhalb von 12 Monaten abgehängt. Mir macht das Aneignen neuer Skills aber einfach Spass, für mich ist das kein Druck, sondern der Default-Modus.

Off the screen

Wenn der Bildschirm aus ist.

Snapshot 2026

  • Kamera

    shooting · Sony α7 IV · Wildlife

  • Audi S5

    driving · B8.5 · Tuning-Projekt

  • Jogge di Balla

    co-running · Verein · Vize-Präsident

  • Schnee

    carving · Ski/Snowboard · Wintersaison

  • Tiefe

    diving · certified

  • Ping-Pong

    chasing · zvoove-Champion-Titel

Section 02 · Skills

Was ich mitbringe.

Grösse transportiert Gewicht. Keine Jahre, keine Labels.

Hero-Skill

AI-Workflow & Vibecoding

Custom Agents, Hooks, Skills, mehrstufige Prompts. AI ist nicht das Tool, das ich nutze, sondern das Werkzeug, mit dem ich Tools baue.

Daily Driver · Production

  • PHP
  • Vue
  • MariaDB · MySQL
  • HTML · CSS · Webdesign-Eye

Production · Operations

  • Yii
  • Docker
  • Vite
  • GitLab
  • Cypress
  • OpenAPI · Swagger
  • nginx · Linux-Server-Admin

Vibecoded Stack

Was ich mit AI-Workflow baue, nicht spontan ohne.

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

Im Werkzeugkasten

Kenne ich, nutze ich nicht täglich.

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

Craft · Eye

  • Fotografie
  • Videoschnitt
  • Grafikdesign
  • Live Web Fluid Simulations
  • Shader-Spielereien

Section 03 · Work

Zwei Projekte. Beide vibecoded.

Keine Werkschau, kein Stack-Buffet. Zwei ernsthafte Webapps von Null auf Live.

Vom Vereins-Chaos zur eigenen Plattform.

Joggediballa Homepage Mobile
Joggediballa · Mobile · Live
Alle Vereine kämpfen alle mit demselben Mist: Excel-Listen, statische Websites, File-/Information-Sharing, isolierte Tools. Für Jogge di Balla habe ich das aufgeräumt — eine massgeschneiderte Plattform, die von Mitgliederverwaltung bis Twitch-Overlay alles abdeckt. Vibecoded, selbst gehostet, übertrieben.

Was ist Jogge di Balla?

Gegründet
05.08.2022 in Brislach
Aktive Mitglieder
9
Gönner verwaltet
68+
Events / Jahr
4–8
Instagram-Reichweite
1067+ Follower · ~100k Views / 30 Tage

Idee zur Coronazeit: vier Freunde, nichts ging, also haben wir ausgefallene Events unter Freunden gemacht. Aus dem wurde dann ein Verein mit öffentlichen Event-Klassikern wie Schlag den Kassier, Silvester 2.0, Harassenlauf oder der beliebten Lotto-Party.

Meine Rolle: Vize-Präsident, Web-Entwickler, Vereinsfotograf, Kameramann, Social-Media-Manager. Weil ich das Skillset hatte und Perfektionist genug bin, um dem Verein nicht nur ein Gesicht, sondern eine eigene, selbst gehostete Webapp zu verpassen.

Stack-Notiz

  • React 19 · Vite·Frontend & Build
  • TypeScript·Sprache (Fullstack)
  • tRPC·API-Layer
  • Drizzle ORM · MySQL·Datenbank
  • Tailwind · shadcn/ui·Styling & Komponenten
Admin-Dashboard mit Berechtigungs-Card und Mitgliederliste
Admin-Dashboard · Daily Driver

Highlight 01 · Tech-Substanz

Das Admin-Dashboard

Für Besucher unsichtbar, für die Website das Herzstück. Hier laufen alle Fäden zusammen.

  • Dynamisches Berechtigungssystem

    Granulare Rechte (edit_events, manage_sponsors, edit_shotcounter, …) per Card pro Rolle zuweisbar — ohne Code-Änderung. Backend prüft jeden tRPC-Call durch eine eigene requirePermission()-Middleware.

  • Anwesenheitsverwaltung mit Statistik

    Pro Event generierbare Anwesenheitsliste, Daten fliessen direkt in eine grafische Statistik. Fördert Übersicht und ein bisschen internen Wettbewerb.

  • Gönner-Lifecycle

    Sponsoren über das System. Status (aktiv / abgelaufen / neu) automatisch berechnet mit Finanz- und Adressmanagement für unseren Kassier.

Twitch-Overlay im Stream mit Live-Score und Vereinsdesign
Schlag-den-Kassier · Live-Stream

Highlight 02 · Sichtbarstes Feature

«Schlag den Kassier» Live-Overlay

Custom Twitch-Overlay direkt in die Plattform integriert. Statt teurer externer Dienste: einfach selbst gebaut.

  • Versteckte URL als Browser-Source

    OBS bindet /overlay/sdk ein, ein Control-Panel auf /overlay/sdk/control steuert den Spielstand live.

  • Echtzeit ohne Page-Reload

    tRPC-Polling synchronisiert das Overlay im Stream sofort. Goldener Shimmer-Effekt für Sieger, automatische Berechnung «mathematisch nicht mehr einholbar».

  • Reichweite ehrlich klein

    ~15–20 concurrent Viewer, ~100 total. Das Tooling ist trotzdem solide gebaut — und übertragbar.

Öffentliche Schicht 1
Statistik · Mitglieder & Saisons
Öffentliche Schicht 2
Gönnerverwaltung · CRM-Light
Öffentliche Schicht 3
Anmeldeformular · Mobile

Erkenntnisse

Manuelles Testing hat mich damals viel Zeit gekostet. Heute würde ich das Setup von Anfang an mit automatisierten Tests und KI-Tools aufsetzen, um Fehler direkt im Keim zu ersticken und den Fokus voll aufs Deployment zu legen.

Live im Einsatzjoggediballa.chöffnet in neuem Tab

Section 05 · Photography

Section 05 · Photography

Durch die Linse.

Wildlife und Autos sind meine zwei Welten. Die einen jage ich solo durch den Dschungel von Costa Rica oder Thailand, die anderen finden mich meist näher zuhause. Was beide verbindet: Geduld, Licht, und der eine Moment, der den ganzen Tag rechtfertigt. Mit der Sony α7 IV seit 2023 unterwegs.

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

Pelikan im Anflug über dem Pazifik, Costa Rica
MANUEL ANTONIO · 2024 · WILDLIFE01 / 5

Stillstand bei 30 km/h.

Manchmal ist das spannendste Bild nicht das mit der höchsten Verschlusszeit, sondern das mit dem Licht das nur fünf Minuten lang da ist.

Koenigsegg-Hypercar unter einem Hotel-Bogen in der Abenddämmerung
ST. MORITZ · 2025 · AUTO02 / 5
Frachtschiffe vor einer dramatischen Wolkenformation am Horizont
COSTA RICA · 2024 · SEASCAPE03 / 5
Einsamer Baum am Ufer eines Sees, Spiegelung im Wasser, Costa Rica
LAKE ARENAL · 2024 · LANDSCAPE04 / 5

Geduld als Bildkomposition.

Lake Arenal: anderthalb Stunden auf den Wind gewartet, der die Wasseroberfläche endlich glättet. Reflexion macht das Bild, nicht der Baum.

Krokodil mit einem Schmetterling auf der Schnauze, Costa Rica
TÁRCOLES · 2024 · WILDLIFE05 / 5

Section 06 · Playground

Section 06 · Playground

Wo der Fluid-Sim spielen darf.

Zwei Shader-Experimente, beide auf dem Tinte-/Druck-Narrativ verankert. Pure Craft-Demonstration, kein Produkt-Kontext.

Section 07 · Contact

Lass uns reden.

Auftrag, Frage, Tipp oder einfach Hallo — die Inbox ist offen.

Ein paar Worte vorab

Ich antworte üblicherweise innerhalb von ein bis zwei Tagen. Für Recruiter und Anfragen aus der Vereinswelt: bitte kurz schreiben woher du kommst, das spart die zweite Mail.

Direkt-Kanäle

GitHub ist nur semi-aktiv — kein 100-Repo-Glanzfassaden-Account.

Alle Felder erforderlich