Wie weit können wir Discourse bei der Anpassung treiben?

Ich bin gespannt, wie weit wir Discourse anpassen können – nicht nur die Benutzeroberfläche, sondern auch Dinge umzustellen, neue Funktionen hinzuzufügen usw. – ohne dass bei Updates von Discourse alles kaputtgeht (oder zumindest nicht so stark).

Ich liebe alles an Discourse, aber es gibt ein paar Dinge, die ich irgendwann auf jeden Fall implementieren/ändern möchte. Ich möchte meine eigene mobile App haben, anstatt auf die von Discourse angewiesen zu sein. Etwas, das stärker auf meine Community zugeschnitten und dediziert ist.

Außerdem gefällt es mir nicht, dass alte Mobiltelefone den hässlichen Times New Roman-Text und eine sehr reduzierte Version von Discourse anzeigen. Ich verstehe, dass sich die Dinge weiterentwickeln, aber ich frage mich, ob wir wirklich zu diesem hässlichen Look zurückkehren mussten, um zu zeigen, dass etwas nicht mehr unterstützt wird? Und den Zugriff auf vielleicht Funktionen zu unterbrechen, die wahrscheinlich gar nicht mehr existieren, aber für eine Community entscheidend sind?

Ich möchte auch andere Dinge anpassen, die nicht nur die Benutzeroberfläche betreffen, neue Funktionen implementieren, Dinge umstellen usw. Im Grunde genommen die Datenbank und den größten Teil des „Gerüsts“ von Discourse nutzen und es so nah wie möglich an meinen eigenen Stil anpassen, statt das Gefühl zu haben: „Es ist nur ein weiteres Discourse-Forum mit anderen Farben“.

Ich vermute, dass viel über Komponenten, Plugins usw. angepasst werden kann, aber ich frage mich, wo die Grenzen liegen? Besonders wenn es darum geht, dass Dinge bei Updates von Discourse kaputtgehen?

Genau das mache ich gerade, und nach 15 Jahren WordPress-Erfahrung fühlt es sich an, als würde man in die Vergangenheit zurückreisen. Allerdings lerne ich dank des gefürchteten ChatGPT langsam ein paar Dinge und stelle fest, dass es gar nicht so schwer ist, wenn man GitHub versteht, Dateien bearbeiten kann und CSS usw. benutzt.

Ja, ich arbeite mit Git/GitHub und habe ein “grundlegendes” Verständnis davon, wie die Dinge funktionieren (ich lerne in letzter Zeit mehr, da ich nebenbei andere Dinge baue). Ich vermute, dass viel möglich ist, aber es gibt immer diese Herausforderung: Was wir heute gegen die Discourse-Version XYZ entwickeln, kann morgen kaputtgehen, wenn sie aktualisiert wird, was ärgerlich ist, besonders wenn man nicht weiß, was kaputtgegangen ist…

Daher fühlt sich das Minimieren von Anpassungen sicherer an, ist aber nicht so “markenorientiert”. Es ist eine Frage der Entscheidung, was wertvoller ist, ich nehme an.

Verwendest du ChatGPT oder Codex? Ich benutze Claude Code CLI in GitHub Codespaces und es ist ein Traum! Und weil ich alles, was ich von Claude will, wie er sich verhalten soll usw., in der CLAUDE.md-Datei halte, halluziniert er sehr selten, oder zumindest nicht so stark. Diese Datei wächst, je mehr neue Dinge ich finde, die ich von Claude will/nicht will.

Das sollte sich durch eine einzige CSS-Zeile in einem Theme ändern lassen.

Ziemlich weit, solange du die vorhandenen Erweiterungshooks nutzt.

Hast du die Websites unter Discourse customers | Discourse - Civilized Discussion und https://discover.discourse.com/ gesehen, wie zum Beispiel Epic Developer Community Forums und https://community.robotime.com/ ?

Ich gestehe, ich habe Claude gekündigt, weil es keine Bilder generieren konnte und sich nicht gut mit OPEN Router vertragen hat. Da ich dutzende Abos hatte, habe ich alle außer GPT gekündigt.

Ich habe das nur als Teil der allgemeinen Veränderung erwähnt, von einer Plattform, die einfach funktioniert hat, zu einer, die plötzlich nicht mehr funktioniert, oder zumindest nicht mehr so wie früher. Aus diesem Grund habe ich begonnen, Foren, die Discourse nutzen, zu meiden. Ich weiß, dass ich mein Handy irgendwann aktualisieren muss, aber dieses funktioniert immer noch, also…

Dieses sieht ganz schön aus: https://forums.unrealengine.com/
In meine Notizen für zukünftige Referenz gespeichert. Danke!
Es gibt einige andere, die interessant aussehen, aber ich habe immer das Gefühl, dass ich weiß, dass es Discourse ist. Ich weiß, dass ich zu viel nachdenke, anstatt zu bauen, aber ich wollte nur wissen, wie weit wir es tatsächlich anpassen können? Wie ich sagte, ich glaube, viel kann getan werden, besonders wenn es um die UI geht. Ich frage mich, ob die Features in Ordnung sein werden, wenn Discourse aktualisiert wird? Ich muss einige Tests durchführen.

Hier eine sich selbst erfüllende Prophezeiung :slight_smile:

Ich brauche fast nie Bilder, das war also für mich nie ein Problem. Und in den ganz wenigen Fällen, in denen ich sie doch brauchte, habe ich ChatGPT befragt. In 50 % der Fälle, je nachdem, was ich frage, bekomme ich sowieso nichts, das auch nur annähernd dem entspricht, was ich mir vorstelle, sodass ich es am Ende doch selbst in Photoshop mache.

Aber Claude Code hat mir sehr geholfen. Super schnell.

Wenn ChatGPT für das, was du tust, funktioniert, dann ist es auf jeden Fall das richtige Werkzeug. Solange es funktioniert, ist das das, was zählt.

Nicht, dass ich Discourse für hässlich halten würde, ich möchte nur mehr von meinem eigenen Stil darin sehen, selbst was die Struktur, die Implementierung und Darstellung einiger Funktionen betrifft.

Vielleicht übertreibe ich auch, aber ich werde auf jeden Fall ein paar Tests durchführen und sehen, wie es läuft.

Ich denke, es ist in vielerlei Hinsicht, was die Themen usw. angeht, in der Vergangenheit stecken geblieben. Ich habe mich dazu vor einiger Zeit tatsächlich schon gewundert.

Ein weiteres Problem ist, dass Foren immer gleich aussehen werden, denn das sind sie nun mal – eine Liste von Titeln. Schaut euch Facebook, Reddit und X an. Alle ihre Themenkarten sehen in gewisser Weise ähnlich aus.

Ich bin kein Experte, aber aus meiner Sicht ist Discourse hochgradig anpassbar. Nicht nur das, sondern die Entwickler scheinen ständig neue und einfachere Wege der Anpassung zu schaffen. Discourse scheint auch darauf zu achten, Warnungen auszusprechen, wenn sich Dinge ändern werden, die Auswirkungen auf benutzerdefinierte Anpassungen haben könnten.

Die Möglichkeiten bestehen, etwas viel mehr als „nur ein weiteres Discourse-Forum, mit anderen Farben“ zu schaffen, und ich bin tatsächlich erstaunt, wie viel sich allein mit Themenkomponenten und Plugins ändern lässt, die vom offiziellen Entwicklungsteam bereitgestellt werden. Und wie das Support-Team dir sagen wird, ist alles in der Benutzeroberfläche über die API verfügbar, was bedeutet, dass nichts dich davon abhält, die Datenbank und den größten Teil des „Gerüsts“ von Discourse zu verwenden.

All das gesagt… mir gefallen deine Ideen, die du im anderen Thread erwähnt hast, über den Aufbau einer Community, das Teilen und Menschen einen Platz zum Austausch zu geben. Das ist die Grundlage dessen, was ich zu tun versuche. Du hast auch erwähnt, dass du Musiker bist, ein Musiker, der vielleicht auch Softwareentwicklung mag. Sobald du eine vollständig maßgeschneiderte Website erstellt hast, bist du für die Wartung verantwortlich, und Dinge (Discourse-bezogene und andere) werden kaputtgehen, und du wirst deine eigene Zeit investieren oder jemanden bezahlen müssen, um es zu reparieren.

Erstelle einige neue Themen. Verwende nur eine einzelne Idee in jedem Thema. Sage dem Forum, was du willst, und bitte um Vorschläge, wie du deine Idee umsetzen kannst. Das Aufschlüsseln in einzelne Funktionen wird den Menschen helfen, Lösungen zu brainstormen, aber es wird dir auch einen strukturierteren Ansatz geben und dir helfen, dein Ziel klarer zu definieren.

Schau dir ask.discourse.org an

Es ist eine KI, die speziell für Discourse entwickelt wurde.

Und… nimm es nicht persönlich, betrachte diesen Rat im Hinblick darauf, was deine eigene Zeit wert ist, und erwäge, einen professionellen Entwickler zu beauftragen. Es gibt mehrere, die in diesem Forum unterwegs sind, und der Marketplace ist eine Kategorie, die speziell für solche Anfragen vorgesehen ist, wo du deine Idee vorstellen kannst und Entwickler bieten können, um die Arbeit auszuführen.

Ja, ich sage immer, dass man im digitalen Bereich so oder so alles machen kann. Also muss ich wohl etwas recherchieren und Schritt für Schritt vorgehen. Ich denke, der nächste Schritt ist, mein Discourse wieder hochzufahren. Ich hatte es irgendwann einmal installiert, aber dann beschlossen, es wieder zu nehmen, bis ich bereit war, mich wirklich darauf zu konzentrieren.

Ja, seit etwa 2001. Aber vor allem in letzter Zeit, insbesondere mit Hilfe von Claude Code, konnte ich nützliche Werkzeuge für mich selbst erstellen und schließlich auch für andere bereitstellen.
Ich versuche nicht, ein Entwickler zu sein oder zu viel Zeit damit zu verbringen, aber es ist definitiv etwas, das ich genieße. Kreativ zu sein, kann sehr anstrengend sein. Etwas Binäres wie Software zu entwickeln, ist sehr belohnend.

Garnicht beleidigt. Jedes Feedback ist wertvoll. Und ich stimme zu, dass ich immer häufiger analysiere, wie viel meine Zeit wert ist, um nicht damit zu verschwenden, bestimmte Dinge selbst zu tun, sondern jemand anderen zu beauftragen, und was ich tatsächlich gerne mache, unabhängig von Zeit und Aufwand. Deshalb war die Entwicklung neuer Werkzeuge so belohnend für mich. Es ist eigentlich Zeit, die ich gerne damit verbringe, Dinge zur Realität werden zu sehen, also ist es niemals verschwendete Zeit.

Ja, das Internet ist sehr „generisch“ geworden. Ich denke, das liegt größtenteils daran, dass Funktion vor Stil gestellt wird. Nicht, dass ich damit ein Problem hätte, aber einzigartig zu sein ist auch wichtig.

Und ich stimme deinem anderen Thema zu. Es gibt viel Raum für Wachstum bei Discourse. Was ich an Discourse besonders mag, ist, dass es sich tatsächlich wie eine wachsende Plattform anfühlt, wobei das Team hier interagiert, die Roadmap mit uns teilt usw. Es ist keine sterile Plattform, bei der niemand weiß, was vor sich geht. Und das schätze ich hier sehr.

Zu 100 % eine der besseren Backend-Plattformen, die ich je verwendet habe.

Es gibt sehr wenige Grenzen. Die einzige große Einschränkung ist, dass Vorlagen nicht überschrieben werden können und du neue Elemente bestehenden Ansichten über Plugin-Ausgangspunkte hinzufügen musst. Das gesagt, führt dies in Kombination mit etwas CSS normalerweise zum gewünschten Ergebnis.

Du kannst neue Routen erstellen und hast vollständige Kontrolle darüber, wie diese angelegt sind.

Das Backend ist flexibler.

Verwende also die offiziellen APIs so weit wie möglich, und die Anpassungsaufwände werden geringer sein, aber du wirst Wartungsarbeiten niemals vollständig eliminieren können.

Es ist nicht vernünftig, keine Wartung zu erwarten … schau dir einfach mein GitHub-Konto und einige meiner beliebten Erweiterungen an, und du wirst viele „COMPATIBILITY:“-Commits sehen :slight_smile:

Es ist eine gute Praxis, einen Staging-Server zu betreiben, auf dem du Upgrades testen und sehen kannst, ob irgendwelche deiner Anpassungen kaputtgehen – je stärker du deine Site anpasst, desto größer wird der Bedarf an einer Art Staging-Instanz sein – obwohl die Verwendung einer Entwicklungsinstanz helfen kann.

Es ist schwer zu sagen, wie “sicher” eine Anpassung ist, ohne die Details zu kennen… aber im Allgemeinen gilt: Je mehr du anpasst, desto mehr Wartung musst du durchführen.

Wenn du etwas wie eine benutzerdefinierte Komponente in einen Plugin-Ausgang einfügst oder eine Discourse-Komponente vollständig ersetzt… im Allgemeinen sollten diese weiterhin funktionieren, da du benutzerdefinierten Code in einen Erweiterungspunkt einfügst (und wir versuchen, diese Punkte zu erhalten, da viele Leute sie nutzen).

In CSS solltest du nach Möglichkeit vorhandene --variables verwenden, um Dinge zu ändern, da wir manchmal die Inhaltsstruktur ändern müssen, aber selbst wenn wir das tun, können wir dieselben Variablen wiederverwenden.

Dies ist also der sicherere Weg:

.d-header {
   --title-color--header: red;
}

Dies ist weniger sicher:

.d-header {
    .extra-info-wrapper .topic-link {
      color: red;
    }
}

Wir haben die Plattform von alten Anpassungsmethoden entfernt, die anfälliger für Fehler waren, wie Template-Überschreibungen und die Verwendung von modifyClass. Wir arbeiten auch an stabileren APIs… aber alles wird immer noch ab und zu etwas Wartung benötigen.

Danke für das Feedback.
Ich glaube, ich muss mir diesen Staging-Server wirklich einmal genauer ansehen. Das ist auf jeden Fall ein guter Ansatz.

Im Moment denke ich, dass der erste Schritt darin besteht, Discourse erneut zu installieren und Inhalte zu erstellen. Wenn die Zeit reif ist, fange ich mit den einfachen Dingen an, die keine großen Änderungen erfordern und mit Komponenten erledigt werden können. Ich werde sehen, wie weit ich damit komme. Dann werde ich mich Gedanken über den Staging-Server machen.

Danke!

Der Tipp zu den Variablen ist wirklich wertvoll.
Ich denke, ich muss mir einfach einen Tag nehmen, eine Liste aller Dinge aufstellen, die ich ändern oder implementieren möchte, und mich dann nacheinander darum kümmern, beginnend mit den Dingen, die über Komponenten angepasst werden können, und schauen, wie weit ich komme.