« Zurück zum Blog
Meine erste Website – von Null auf Live

Der Anfang

Alles begann mit einem git init und einer leeren Datei. Keine Vorlage, kein Framework – nur PHP, HTML, CSS und der Wille, Webentwicklung wirklich zu verstehen.

Als IT Service Manager kenne ich die Softwareentwicklung aus der Perspektive des Betriebs. Doch ich wollte mehr: selbst Code schreiben, Architekturentscheidungen treffen und verstehen, was hinter den Kulissen passiert.

Was steckt drin?

Die Website basiert auf einer eigenen MVC-Struktur mit PHP 8:

  • Front Controller Pattern – alle Anfragen laufen über einen zentralen Einstiegspunkt
  • Custom Router – mit Unterstützung für dynamische URLs wie /blog/mein-post
  • Prepared Statements – für sichere Datenbankabfragen
  • CSRF-Schutz – jedes Formular ist gegen Angriffe geschützt

Das Frontend nutzt TypeScript, kompiliert zu ES Modules, und ein eigenes CSS Design System mit Custom Properties.

Highlights aus dem Projekt

Die beste Art zu lernen ist, etwas von Grund auf selbst zu bauen.

Einige Dinge, auf die ich besonders stolz bin:

  1. Fotografie-Galerie mit Lightbox, Lazy Loading und animierten Tour-Karten
  2. Gästebuch mit Spam-Schutz durch Honeypot-Felder
  3. Testumgebung auf einer eigenen Subdomain mit separater Datenbank
  4. Bildoptimierung – ein selbst geschriebenes Node.js-Script hat die Bildgrösse um 73% reduziert

Was ich gelernt habe

Nicht nur Programmieren. Sondern auch:

  • Wie ein Deployment auf einem Linux-Server funktioniert
  • Warum Dateinamen auf Linux case-sensitive sind (das hat mich mehr als einmal erwischt)
  • Wie Suchmaschinen eine Website indexieren
  • Dass automatisierte Angriffe auf jede Website im Internet stattfinden – auch auf meine

Wie geht es weiter?

Diese Website wächst mit mir. Jedes neue Thema aus meinem Studium fliesst direkt ein. Als nächstes stehen auf der Liste:

  • Weitere Blog-Beiträge über Gelerntes
  • Performance-Optimierungen
  • Vielleicht ein Dark Mode?

Wer Fragen hat oder sich austauschen möchte, findet mich über die Über mich Seite.