Veröffentlicht am 18. März 2025
Vor zwei Monaten hatte ich die Entwicklung von AppDeploy angekündigt – inzwischen ist das "Minimum Viable Product" (MVP) technisch fertig und steht kurz vor der Veröffentlichung. Nachfolgend ein paar Notizen zu dem, was mir erwähnenswert erscheint.
Wer aufgepasst hat, dem ist die Inkonsistenz vielleicht aufgefallen: Was als AppDeploy begann, heißt nun Appisto. Ganz glücklich bin ich mit dem Namen nicht, aber die Domain-Auswahl war besser.
Je nach Perspektive klingen zwei Zeitmonate nach mehr oder weniger Aufwand zur Entwicklung eines Prototypen. Tatsächlich habe ich realistisch vielleicht zwei Wochen in dem Zeitraum daran arbeiten können. Es ist das erste Projekt, bei dem ich KI nicht nur im Browser genutzt, sondern mittels Cursor auch einmal direkt in der Entwicklungsumgebung ausprobiert habe. Das rechtfertigt einen eigenen Post, aber bei allen Unzulänglichkeiten lässt sich sicher bereits feststellen, dass es ein enormer Produktivitäts-Booster ist.
Ich bin nun .NET als Plattform endgültig abtrünnig geworden. Grundlage der derzeitigen Anwendung bilden Node.js mit Next.js als Framework, Prisma als OR-Mapper, TypeScript als Programmiersprache und TailwindCSS und shadcn/ui für das UI. Damit gewinnen weder Codebasis noch Interface einen Preis für besondere Einzigartigkeit, aber das Ergebnis kann sich lesen (Code) und sehen (UI) lassen.
Es stand für mich völlig außer Frage, etwas anderes als die Hetzner Cloud zu nutzen, mit der ich schon seit 2020 für Taxaro sehr gut fahre. Kürzlich haben sie mit ihrem Object Storage genannten Dienst auch eine Lösung zum Speichern von Dateien eingeführt – just in time für Appisto. Im Hinterkopf hatte ich zudem die Nutzung von Coolify für die Administration, allerdings habe ich mich davon vorerst verabschiedet. Grund ist, dass ich einen für Taxaro entwickelten bewährten Prozess für Betrieb von Linux-Servern und automatisches Deployment habe, der mich auch hier nicht viel Zeit gekostet hat. Und da Coolify das Thema Server-Administration und Sicherheit ohnehin ausklammert, wäre der Gewinn überschaubar gewesen.
Ich wollte mich zunächst nicht noch einmal selbst um das Thema kümmern. Ich habe in meinem Leben derart häufig Login- und verwandte Formulare programmiert, dass ich inzwischen lieber die Wohnung putze, als das noch einmal zu tun. Also habe ich zunächst mit Clerk begonnen. Das funktioniert auch ganz gut – die Next.js-Komponenten sind herausragend gut, die Anbindung mittels Webhook zwar etwas wackelig aber okay. Offline zu entwickeln geht nur über Umwege, aber das war kein KO-Kriterium für mich.
Problematischer war schon eher das Preismodell, da Appisto nicht nur User verwalten können muss, sondern diese auch mehreren Organisationen zugehörig sein können. Hier sind die ersten 100 Organisationen umsonst, danach wollen sie tatsächlich einen Dollar pro Stück. Für die Testphase absolut akzeptabel, aber eine mögliche spätere Migration erschien mir aufwändiger und riskanter, als es jetzt gleich noch mal anders zu machen. Zumal mir das mehr Flexibilität bei der Preisgestaltung geben wird.
Ich gab mir 2 Tage, um es mit Hilfe von Cursor und dem bestehenden Datenmodell sowie Auth.js eigenständig zu implementieren. Nach nicht ganz 1,5 Tagen war alles erledigt, einschließlich Mitgliederverwaltung, Rollen, Einladungen und Anbindung von GitHub, Google und Microsoft als oAuth-Providern.
Sentry nutzen wir für verschiedenste Services seit Jahren mit großer Zufriedenheit, also war es auch hier erste Wahl. Next.js als Plattform scheint sehr gut supported, das Setup auch sehr gut beschrieben. Allerdings erhöht es nicht nur die Buildzeit stark, sondern es sorgt auch dafür, dass die gesamte Anwendung zur Entwicklungszeit enorm träge wird. Also habe ich es vorerst wieder herausgerissen – wer eine Alternative für Next.js mit günstigem Einstiegspreis bei wenigen (tausend) Crashes pro Monat empfehlen kann, der mag sich gerne melden. Solange beobachte ich das zugehörige Issue und hoffe auf eine schnelle Lösung.