IllusionDB 1.3: ein Programm, kein Modulsystem mehr
IllusionDB ist wieder ein einziges Programm – ein Drittel so groß, viel schneller gestartet. Dazu ein JSON-Editor, Rechte, die mitdenken, und Wartungsreleases für IllusionCMS und IllusionPublish.

Manchmal ist der beste Fortschritt ein Schritt zurück. IllusionDB 1.3.0 ist so ein Release.
Warum das Modulsystem gehen musste
Als ich IllusionDB gebaut habe, war es zunächst ein einziges Programm. Später habe ich es umgebaut: Feldtypen und Endpunkte liefen als WebAssembly-Module, Ansichten als eigenständige Web Components, alles zur Laufzeit von der Platte geladen. Die Idee dahinter war, dass sich IllusionDB irgendwann über Module erweitern lässt – von mir oder von anderen.
Ehrlich gesagt: Das war eine naive Entscheidung. Ich will keine Module entwickeln und vertreiben, und niemand braucht sie. Übrig blieben nur die Kosten – ein Download, der zu zwei Dritteln aus Modulen bestand, ein Start, der zehn Sekunden auf das Laden wartete, und dieselbe Logik doppelt, einmal im Modul und einmal als Rückfall im Server.
Mit 1.3.0 ist das Geschichte. Feldtypen und Ansichten sind fest eingebaut, und IllusionDB ist wieder ein einziges Programm:
- Rund 12 MB pro Download statt bisher gut 30 MB (plus Module).
- Start in etwa zwei Sekunden statt zehn bis fünfzehn.
- Für dich ändert sich nichts: dieselben Funktionen, dieselben Daten, keine Umstellung. Ich habe den alten und den neuen Stand mit dem kompletten Demo-Bestand verglichen – jeder Wert und jede Ansicht sind gleich.
Wer erweitern will, hat weiterhin die eigenen JavaScript-Endpunkte, Hooks und Webhooks. Das war ohnehin der Weg, der im Alltag genutzt wird.
Neu in 1.3.0
- JSON-Felder mit Code-Editor. JSON-Werte öffnen jetzt in einem mehrzeiligen Editor mit Syntax-Hervorhebung. Fehler werden beim Tippen markiert, „Formatieren“ rückt den Inhalt sauber ein, und gespeichert wird nur gültiges JSON.
- Rechte, die mitdenken. Lookups, Rollups, Links und Kind-Datensätze zeigen Daten aus anderen Tabellen. Darf jemand die andere Tabelle nicht lesen, wird das Feld für ihn ausgeblendet – in der Oberfläche und in der API, auch bei öffentlichen Tabellen ohne Anmeldung. Fremdschlüssel in solche Tabellen bleiben sichtbar, zeigen dann aber nur die ID.
- Einrichtung absichern. Mit der Umgebungsvariable
SETUP_TOKENverlangt die Ersteinrichtung ein selbst gewähltes Token. So kann niemand eine frisch gestartete, noch leere Instanz übernehmen.
Viele kleine Dinge
Beim Testen sind mir eine Reihe von Kleinigkeiten aufgefallen, die jetzt behoben sind: Nach einer Schemaänderung bleibt man in der Ansicht, in der man war. Die Auswahl beim Verknüpfen erscheint nicht mehr hinter dem Fenster. Auswahllisten klappen nach oben auf, wenn unten kein Platz ist. Gruppennamen, „Neue Zeile“ und „Ende der Liste“ bleiben beim Scrollen nach rechts stehen. Kind-Datensätze erscheinen im Formular als Tabelle statt als rohes JSON. Und das kleine „ד an Bildern wird nicht mehr abgeschnitten.
Wartung für alle Werkzeuge
Zum Schluss habe ich mir die Sicherheit von IllusionDB noch einmal von außen angesehen – alle Endpunkte ohne Anmeldung, die Header, die Anmeldung selbst. Der wichtigste Fund lag nicht im eigenen Code, sondern in der Go-Version, mit der gebaut wurde. Alle Werkzeuge werden jetzt mit Go 1.26.9 gebaut, mit den aktuellen Korrekturen der Standardbibliothek. Deshalb gibt es heute auch IllusionCMS 0.7.4 und IllusionPublish 0.4.2 als reine Wartungsreleases.
Die Downloads und das Handbuch sind aktualisiert: IllusionDB auf illusiondb.com, IllusionCMS und IllusionPublish auf illusioncms.com.