Fino a che punto possiamo spingere Discourse nella personalizzazione?

Sono curioso di sapere quanto possiamo personalizzare Discourse, non solo l’interfaccia utente, ma spostando elementi, aggiungendo nuove funzionalità, ecc., senza che nulla si rompa durante gli aggiornamenti di Discourse (o almeno, non troppo).

Adoro tutto ciò che riguarda Discourse, ma ci sono alcune cose che so che vorrò implementare/modificare in futuro. Mi piacerebbe avere la mia propria app mobile, invece di affidarmi a quella di Discourse. Qualcosa di più personalizzato e dedicato alla mia comunità.

Non mi piace inoltre che i vecchi telefoni mobili mostrino il brutto testo in Times New Roman e una versione molto spogliata di Discourse. Capisco che le cose devono evolversi, ma mi chiedo se fosse davvero necessario tornare a quell’aspetto brutto per mostrare che qualcosa non è più supportato? E interrompere l’accesso a funzionalità che probabilmente non esistono più, ma che sono cruciali per una comunità?

Voglio anche personalizzare altri aspetti che non riguardano solo l’interfaccia utente, implementare nuove funzionalità, spostare elementi, ecc. In pratica, utilizzare il database e la maggior parte dello “scheletro” di Discourse, e renderlo il più possibile simile al mio stile personale, piuttosto che dare l’impressione che “sia solo un altro forum Discourse, con colori diversi”.

Immagino che molto possa essere personalizzato tramite componenti, plugin, ecc., ma mi chiedo quali siano i limiti? Soprattutto quando si tratta di funzionalità che si rompono durante gli aggiornamenti di Discourse?

È esattamente quello che sto facendo in questo momento e, provenendo da un background WordPress di 15 anni, è come fare un salto indietro nel tempo. Tuttavia, sto iniziando ad imparare alcune cose con l’aiuto del temuto ChatGPT e sto scoprendo che non è così difficile se si capisce GitHub, si sanno modificare i file e usare CSS, ecc.

Sì, lavoro con Git/GitHub e ho una comprensione “base” di come funzionano le cose (ultimamente ne sto imparando sempre di più mentre sviluppo altri progetti nel tempo libero). Penso che si possa fare molto, ma c’è sempre quella sfida: ciò che sviluppiamo oggi in base alla versione XYZ di Discourse, potrebbe rompersi domani quando verrà aggiornato, il che è piuttosto frustrante, soprattutto se non sei a conoscenza di cosa si è rotto…

Quindi, personalizzare il meno possibile sembra più sicuro, ma meno “brandizzato”. È una questione di decidere quale approccio abbia più valore, immagino.

Stai usando ChatGPT o Codex? Io sto usando Claude Code CLI in GitHub Codespaces ed è una goduria! E poiché tengo tutto ciò che voglio che Claude faccia, come deve comportarsi, ecc., nel file CLAUDE.md, molto raramente allucina, o almeno, non in modo così grave. Quel file continua a crescere man mano che trovo nuove cose che voglio che Claude faccia/non faccia.

Dovrebbe bastare una singola riga di CSS in un tema per modificarlo.

Abbastanza tanto, purché tu utilizzi gli hook di estensione esistenti.

Hai visto i siti su Discourse customers | Discourse - Civilized Discussion e https://discover.discourse.com/, come Epic Developer Community Forums e https://community.robotime.com/ ?

Sarò onesto: ho eliminato Claude perché non generava immagini e non funzionava bene con Open Router, e dato che avevo un sacco di abbonamenti, ho cancellato tutto tranne GPT.

L’ho menzionato solo come parte del cambiamento generale: da una piattaforma che funzionava semplicemente, a un’improvvisa interruzione del servizio, o quantomeno a un comportamento diverso dal solito. Per questo motivo ho iniziato ad evitare i forum basati su Discourse. So che prima o poi dovrò aggiornare il mio telefono, ma questo funziona ancora, quindi…

Questo qui sembra piuttosto carino: https://forums.unrealengine.com/
Lo ho salvato nei miei appunti per riferimento futuro. Grazie!
Ce ne sono altri che sembrano interessanti, ma ho sempre la sensazione di riconoscere subito che si tratta di Discourse. So che sto pensando troppo invece di costruire qualcosa, ma mi chiedevo quanto sia possibile personalizzarlo davvero? Come ho detto, credo che si possa fare molto, soprattutto per quanto riguarda l’interfaccia utente. Mi chiedo se le funzionalità continueranno a funzionare correttamente quando Discourse rilascerà aggiornamenti? Dovrò fare qualche test.

Una profezia che si autoavvera, proprio qui :slight_smile:

Ho quasi mai bisogno di immagini, quindi non è mai stato un problema per me. E le poche volte che mi sono trovato a doverle usare, ho chiesto a ChatGPT. Nel 50% dei casi, a seconda di cosa chiedo, non ottengo comunque qualcosa che si avvicini minimamente a quello che ho in mente, quindi alla fine le creo io stesso con Photoshop.

Ma Claude Code mi è stato di grande aiuto. Super veloce.

Se ChatGPT fa al caso tuo per quello che fai, allora è sicuramente lo strumento giusto. Finché funziona, è quello che conta.

Non che io pensi che Discourse abbia un aspetto brutto, voglio semplicemente infonderci più del mio stile personale, anche per quanto riguarda la struttura e il modo in cui alcune funzionalità sono implementate e presentate.

Ancora una volta, forse sto esagerando, ma devo assolutamente fare qualche test e vedere come va.

Penso che sia rimasto bloccato nel passato per quanto riguarda molti temi e così via, in realtà ne avevo già parlato un po’ di tempo fa

L’altro problema è che i forum avranno tutti lo stesso aspetto, perché è quello che sono: una lista di titoli. Guardate Facebook, Reddit e X. Tutte le loro schede dei topic sono simili in una certa misura.

Non sono un esperto, ma dal mio punto di vista Discourse è altamente personalizzabile. Non solo, ma gli sviluppatori sembrano creare costantemente nuovi e più semplici metodi di personalizzazione. Discourse sembra anche attento a fornire avvisi quando ci saranno cambiamenti che potrebbero influire sulle personalizzazioni effettuate dagli utenti.

Le possibilità esistono per creare qualcosa di molto più di “un altro forum Discourse, con colori diversi” e sono davvero stupito di quanto si possa modificare utilizzando solo i componenti tematici e i plugin forniti dal team di sviluppo ufficiale. E come ti diranno gli addetti al supporto, tutto ciò che riguarda l’interfaccia è disponibile tramite l’API, il che significa che se vuoi “u[ti]lizzare il database e la maggior parte dello “scheletro” di Discourse” nulla ti impedisce di farlo.

Detto questo… mi piacciono le tue idee menzionate nell’altro thread sulla costruzione della comunità, la condivisione e il dare alle persone uno spazio per condividere. Questa è la base di ciò che sto cercando di fare. Hai anche menzionato che sei un musicista, un musicista che forse apprezza anche lo sviluppo software. Una volta creato un sito web completamente su misura, sarai responsabile della sua manutenzione e le cose (relate a Discourse e non solo) si romperanno e dovrai dedicare il tuo tempo o pagare qualcuno per ripararle.

Crea alcuni nuovi argomenti. Utilizza un’unica idea in ogni argomento. Dichiara al forum ciò che desideri e chiedi suggerimenti su come realizzare la tua idea. Suddividerlo in funzionalità individuali aiuterà le persone a fare brainstorming di soluzioni, ma ti offrirà anche un approccio più strutturato e ti aiuterà a definire il tuo obiettivo in modo più chiaro.

Dai un’occhiata a ask.discourse.org

è un’IA costruita specificamente per Discourse

e… non prendertela, considera questo consiglio in termini di quanto vale il tuo tempo: valuta l’idea di assumere uno sviluppatore professionista. Ci sono diversi sviluppatori che frequentano questo forum e la categoria “mercato” è stata creata specificamente per questo tipo di richieste, dove puoi presentare la tua idea e gli sviluppatori possono fare un’offerta per eseguire il lavoro

Sì, dico sempre che tutto può essere fatto, in un modo o nell’altro, quando si tratta di cose digitali. Quindi immagino che debba fare qualche ricerca e procedere un passo alla volta. Immagino che il prossimo passo sia riportare in vita il mio Discourse. L’avevo installato in un certo momento, ma poi ho deciso di rimuoverlo finché non fossi stato pronto a concentrarmi davvero su di esso.

Esatto, più o meno dal 2001. Ma più recentemente, soprattutto grazie all’aiuto di Claude Code, sono riuscito a creare strumenti utili per me stesso e alla fine anche da condividere con gli altri.
Non sto cercando di diventare uno sviluppatore o spendere troppo tempo su questo, ma è sicuramente qualcosa che mi piace. Essere sempre creativi può essere molto faticoso. Avere qualcosa di più binario come il software è molto gratificante.

[quote=“Andrew_Rowe, post:11, topic:408829”]
non offenderti, prendi questo come consiglio su quanto valga il tuo tempo, valuta di assumere uno sviluppatore professionista.
[/quote]\nPer nulla offeso. Qualsiasi feedback è prezioso. E sono d’accordo sul fatto che una delle cose che ho analizzato sempre di più è quanto il mio tempo sia prezioso per non spenderlo in certe attività assumendo qualcun altro, e su ciò che mi piace fare realmente, indipendentemente dal tempo e dallo sforzo. Ecco perché sviluppare nuovi strumenti è stato così gratificante per me. In realtà è tempo che amo vedere trasformarsi in realtà, quindi non è mai tempo sprecato.

Sì, internet è diventato molto “generico”. Penso che la maggior parte dei casi sia dovuta al fatto che la funzione viene privilegiata rispetto allo stile. Non che io veda un problema in questo, ma avere qualcosa di unico è anche importante.

E sono d’accordo con il tuo altro argomento. C’è molto spazio per crescere con Discourse. Una cosa che amo di Discourse è che sembra davvero una piattaforma in crescita, con il team che interagisce qui, condividendo con noi la roadmap, ecc. Non è come una piattaforma sterile in cui nessuno sa cosa sta succedendo. E questo è qualcosa che apprezzo molto qui.

Al 100% è una delle migliori piattaforme back-end che abbia mai usato.

I limiti sono molto pochi. L’unica limitazione maggiore è che i template non possono essere sovrascritti e devi aggiungere nuove funzionalità alle viste esistenti utilizzando le Plugin Outlets. Detto questo, farlo in combinazione con un po’ di CSS di solito risolve il problema.

Puoi creare nuove rotte e avere il controllo completo su come vengono organizzate.

Il back-end è più flessibile.

Quindi, usa le API ufficiali per quanto possibile e il lavoro di revisione sarà più limitato, ma non eliminerai mai completamente la necessità di manutenzione.

Non è ragionevole aspettarsi l’assenza di manutenzione… guarda solo il mio account GitHub e alcune delle mie estensioni popolari e vedrai numerosi commit "COMPATIBILITÀ: " :slight_smile:

È buona pratica mantenere un server di staging dove puoi testare gli aggiornamenti e verificare se qualche tua personalizzazione si rompe: più il tuo sito è personalizzato, maggiore sarà la necessità di una qualche istanza di staging, sebbene l’uso di un’istanza di sviluppo possa essere d’aiuto.

È difficile dire quanto sia “sicura” una personalizzazione senza conoscere i dettagli… ma in generale, più personalizzi, più manutenzione dovrai fare.

Se aggiungi qualcosa come un componente personalizzato a un’uscita del plugin o sostituisci completamente un componente Discourse… in genere questi dovrebbero continuare a funzionare perché stai inserendo codice personalizzato in un punto di estensione (e cerchiamo di preservare questi punti perché molte persone li utilizzano).

In CSS dovresti utilizzare le --variables esistenti per modificare le cose dove possibile perché a volte dobbiamo modificare la struttura del contenuto, ma anche se lo facciamo possiamo riutilizzare le stesse variabili.

Quindi questo è un percorso più sicuro:

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

Questo è meno sicuro:

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

Abbiamo spinto la piattaforma lontano dai vecchi metodi di personalizzazione che erano più soggetti a errori, come le sostituzioni di template e l’uso di modifyClass. Stiamo anche lavorando su API più stabili… ma tutto avrà comunque bisogno di un po’ di manutenzione ogni tanto.

Grazie per il feedback.
Penso che debba riflettere bene su quel server di staging. È sicuramente un approccio valido.

Per ora credo che il primo passo sia reinstallare Discourse, creare contenuti e, quando arriverà il momento, iniziare con le cose più semplici che non richiedono grandi modifiche e possono essere realizzate con i Componenti. Vedrò fino a dove posso arrivare. Poi inizierò a pensare al server di staging.

Grazie!

Quel suggerimento sulle variabili è davvero utile.
Credo che mi basterà sedermi un giorno, fare un elenco di tutte le modifiche/nuove funzionalità che voglio realizzare e affrontarle una alla volta, partendo da quelle modificabili tramite Componenti, per vedere fino a dove posso arrivare.

Hai assolutamente ragione,

attualmente sto lavorando alla stabilizzazione sistematica di Discourse,

e ho utilizzato alcuni componenti tematici esistenti, oltre a averne scritti altri personalizzati, per adattarli alle abitudini culturali degli utenti locali.