Warum wir unser eigenes CMS entwickelt haben

Tim HeerwagenSaturday, October 7, 2023Technik
Blogartikel Thumbnail - Warum wir unser eigenes CMS entwickelt haben

In der Welt der Content-Management-Systeme (CMS) gibt es eine schier endlose Auswahl an Lösungen. Als erfahrene TypeScript Entwickler haben wir viele davon ausprobiert. Wir stellten fest, dass es zwar zahlreiche einfache und auch komplexe Systeme gibt, die aus Sicht der Endanwender durchaus ausreichend sind. Doch aus Entwicklersicht genügten diese nicht unseren Ansprüchen. Darüber hinaus haben wir die Erfahrung gemacht, dass einige unserer Kunden Schwierigkeiten beim Start mit diesen Systemen hatten. Auch hier wollten wir ansetzen und unser eigenes CMS entwickeln, das für Entwickler und Benutzer gleichermaßen eine gute Erfahrung liefert.

Unser Ansatz: Typensicherheit von Ende zu Ende

Unsere Next.js-Anwendungen basieren auf TypeScript und sind von Ende zu Ende typensicher. Dies bedeutet, dass wir durch statische Code-Analyse sicherstellen können, dass unser Code fehlerfrei ist. Im Gegensatz dazu gibt es bei einer normalen REST-API keine mitgelieferten Typinformationen, was dazu führt, dass das Frontend nicht genau weiß, welche Daten es vom Backend erwarten kann. Das ändert sich jedoch, wenn man ein Framework wie tRPC verwendet. Hier weiß man genau, welche Daten an jedem Endpunkt erwartet werden. Diese Ende-zu-Ende-Typensicherheit steigert die Entwicklererfahrung erheblich und reduziert die Notwendigkeit vieler Tests. Da es kein bestehendes System gab, das diesen Ansatz unterstützte, beschlossen wir, unser eigenes CMS zu entwickeln.

Die Herausforderungen unterwegs

Der Weg zur Entwicklung unseres CMS war kein leichter, aber er lohnte sich. Nach monatelanger harter Arbeit und unzähligen Tassen Kaffee steht unser System nun. Es ist simpel und zugleich funktional. Die größte Herausforderung bestand darin, statische Typen in ein vollständig dynamisches System zu integrieren. Doch dies gelang uns erstaunlich einfach mithilfe des Pakets ts-morph. Wir konnten Modelle, Zod-Validierungen, Typen und tRPC-Endpunkte dynamisch generieren und vom Frontend nutzen. Das bedeutet, dass Entwickler sich sicher sein können, dass keine API-Endpunkte fehlerhaft sind. Die Implementierung von Sicherheitsstandards dank next-auth war ein Kinderspiel, und ein flexibles Pluginsystem ermöglicht uns maximale Anpassungsfähigkeit. Unser CMS dient zudem nur als Inhaltsverwaltung für Webseiten, sondern kann bald zu einem umfassenden Firmen-Intranet-Portal erweitert werden. Mehr dazu in Kürze.

Im Einsatz bewährt

Nach mehreren Webseitenprojekten konnten wir Engpässe beseitigen, und unser System entwickelt sich stetig weiter. Wir haben sogar ein vollständig anonymisiertes Analytics-Plugin entwickelt, um DSGVO-konforme Statik-Lösungen anzubieten. Weitere Plugins stehen bereits in den Startlöchern.

Das System heute

Heute ist unser CMS nicht nur die Grundlage für alle unsere Kundenprojekte, sondern wird auch intern in unseren eigenen Projekten verwendet. Das System entwickelt sich kontinuierlich weiter, und wir sind offen für Feedback. Wenn Du ein TypeScript-Entwickler bist und/oder Interesse an unserem CMS besteht, zögere nicht, uns eine E-Mail zu schreiben oder uns über das Kontaktformular zu erreichen. Wir freuen uns darauf, unsere Expertise und unser Produkt zu teilen.

Kontakt

Häufige Fragen