„Der Entwurf liegt fertig in der Schublade. Wie schnell wird daraus eine neue Website?“
Schneller als gedacht. Aus einer Designstudie für das MAKK wurde in einem Zug die neue makk.de: Frontend, Backend-Integration und Begleitung der Content-Migration — in unter drei Monaten. Seit Dezember 2024 online, jede Seite in 10 bis 30 ms ausgeliefert.
Aus der Studie wird ein Baukasten
Am Anfang stand kein leeres Blatt, sondern eine Designstudie, die wir für das MAKK entwickelt hatten. Sie wurde nicht Seite für Seite nachgebaut, sondern zerlegt: in sechzehn Module — Hero, Teaser, Galerie, Kalender, Text, Bild, Video, Audio, Presse —, aus denen die Redaktion heute jede Seite selbst zusammensetzt.
Barrierefreiheit war von der ersten Komponente an dabei: Kontrast, Schriftgröße und Animationen lassen sich per Schalter umstellen, Leichte Sprache und Gebärdensprache haben eigene Seiten — und jeder Text für Screenreader ist im CMS pflegbar, auf Deutsch und Englisch.
Ein CMS für die Redaktion, Schnittstellen für den Rest
Hinter der Seite arbeitet Craft CMS. Die Redaktion baut Seiten aus Modulen, prüft Entwürfe in der Vorschau und hat das Handbuch direkt im System. Was nicht von Hand gepflegt werden soll, kommt von allein: Jede Nacht holt sich die Seite die Termine des Museumsdienstes Köln — Referenten, Preise, Anmeldung, Bilder, rund vierzig Felder je Veranstaltung —, legt neue an und räumt abgelaufene ab.
Presseverteiler und Newsletter blieben, wo sie waren: Die bestehenden Systeme der Kölner Museen wurden angebunden statt ersetzt.
Die Inhalte ziehen um — mit Begleitung
Die Inhaltsseiten wurden größtenteils komplett neu aufgesetzt: Besuchen, Entdecken, Gestalten. Alles in zwei Sprachen. Wir haben die Redaktion dabei begleitet: Struktur vorbereitet, Module erklärt, Seiten gegengelesen, Stolpersteine aus dem Weg geräumt.
Die alten Adressen leben weiter. Gedruckte Flyer, QR-Codes und Suchmaschinen landen über Weiterleitungen auf den neuen Seiten; was es nicht mehr gibt, meldet die Seite sauber ab — damit Suchmaschinen die Altlasten schnell vergessen.
| Alt | Neu | Status |
|---|---|---|
| /Kalender | /besuchen/…/veranstaltungskalender | 301 |
| /Sonderausstellungen | /besuchen/ausstellungen/… | 301 |
| /Fascination-Jewellery | /en/visit/exhibitions/… | 301 |
| /termine.aspx?zgr=… | — | 410 · gibt es nicht mehr |
Jede Seite in 10 bis 30 Millisekunden
Eine Museumsseite hat Spitzen — Eröffnung, Museumsnacht, ein Presseartikel — und dazwischen Ruhe. Statt für die Spitze Server vorzuhalten, liefert makk.de fertige Seiten aus einem Cache. Der wird jede Nacht komplett neu geladen, jede Seite, beide Sprachen. Ändert die Redaktion untertags etwas, fliegt genau diese Seite aus dem Cache und kommt beim nächsten Aufruf frisch aus dem CMS.
Das CMS bekommt vom Besucherverkehr so gut wie nichts mit. Die Redaktion dagegen sieht immer den aktuellen Stand — für angemeldete Nutzer läuft alles am Cache vorbei.
Und wenn das CMS mal hakt?
Dann merkt es draußen niemand. Antwortet das CMS mit einem Fehler, liefert der Cache die letzte gute Version der Seite weiter aus. Updates und Wartung laufen im Hintergrund, ohne dass die Seite steht; Datenbank und Dateien werden täglich gesichert und lassen sich auf einen beliebigen Tag zurückholen.
Von der Studie zur Website: unter drei Monaten
Frontend-Umsetzung, Backend-Integration und die Begleitung der Content-Migration liefen nicht nacheinander, sondern ineinander: Während die Module entstanden, wuchs das Datenmodell; sobald das Datenmodell stand, zog die Redaktion ein. In unter drei Monaten war die Seite fertig.
Seit Dezember 2024 ist makk.de online. Seitdem: nächtliche Importe, Updates, kleine Erweiterungen — ein Betrieb, der kaum Aufmerksamkeit braucht.
Serverseitig gerendert, klassisch gehostet
Kein Framework-Zoo: Craft CMS rendert die Seiten, im Frontend SCSS und schlankes JavaScript ohne Framework, davor der Cache, darunter PostgreSQL. Zwei Container auf einem Server in Deutschland, Deployment über eine Pipeline, Monitoring inklusive. Die nächtlichen Jobs — Veranstaltungsimport und Cache-Lauf — sind Python-Pipelines über die GraphQL-Schnittstelle des CMS.