Qualcuno di voi usa la propria istanza Discourse come intero sito web?

Per semplificare il nostro stack tecnologico, mi chiedo se non dovremmo ospitare un sito web e un forum separatamente, ma piuttosto riconfigurare Discourse in modo che funga contemporaneamente da sito web e da forum.

Vedo che è così che Pavilion, di @angus, utilizza Discourse.

Tuttavia, le nostre esigenze per il sito web sono più complesse! Questo è il nostro sito web attuale.

Sarei curioso di sapere se esistono altri siti web basati esclusivamente su Discourse che potrei esplorare. Oppure, se avete qualche idea su come realizzare questo obiettivo.

5 Mi Piace

Beh, è possibile utilizzare pubblica pagine per i tuoi contenuti non relativi ai post.

Poi usa un plugin per sottomenu nell’intestazione per ottenere un menu principale con sottomenu o un altro plugin per avere semplicemente un menu senza sottomenu.

Tutto dipende dalle tue esigenze.

4 Mi Piace

Sì! Penso che siano un ottimo punto di partenza.

Uno dei nostri requisiti riguarda la possibilità di incorporare elementi come il modulo di iscrizione alla nostra newsletter e il nostro modulo per le donazioni.

4 Mi Piace

Non so nemmeno esattamente quanto sia potente lo stile personalizzato per la pubblicazione delle pagine. Mi chiedo se esistano esempi di pagine con uno stile molto più elaborato, con elementi come blocchi di contenuto con sfondi diversi.

2 Mi Piace

La questione si riduce a tre elementi:

  • la quantità di “contenuti pubblicati” (a) rispetto a quelli della community (b)
  • la proporzione delle visite a (a) rispetto a (b)
  • il tuo budget

Puoi servire milioni di visualizzazioni di pagina da un VPS da 5 $ con WordPress, grazie a una corretta configurazione della cache e di una CDN. Un’istanza equivalente di Discourse sarebbe molto, molto più costosa.

Se la maggior parte del traffico e dell’attività si concentra su Discourse e non ci sono rischi di picchi di traffico verso pagine statiche, potrebbe avere senso ospitare tutto all’interno di Discourse. In altri casi, un CMS dedicato rimane il re.

11 Mi Piace

Hmmm, forse dovresti sistemare il tuo https e il certificato.

4 Mi Piace

15 post sono stati spostati in un nuovo argomento: Certificato SSL non funzionante sul sito principale di Discourse

Discourse è un back-end basato su Rails ed è estendibile, quindi, pensavo, puoi fare tutto ciò che un’app Rails può fare. Ma stai cercando una soluzione miracolosa?

1 Mi Piace

Sebbene sia certamente possibile farlo e possa avere senso per la tua organizzazione, noi di Discourse utilizziamo software diversi per il nostro sito web principale.

Il nostro sito web principale è un HTML statico generato da https://jekyllrb.com/ e il nostro blog è una semplice istanza di WordPress.

Dipende davvero da come è strutturata l’ingegneria della tua organizzazione e da quali sono le tue esigenze e priorità.

7 Mi Piace

Grazie per questo, Rafael.

Ho fretta di liberarmi di WordPress. Pensavo di optare per una soluzione basata esclusivamente su Discourse, ma ora sto valutando di utilizzare Jekyll per i contenuti statici/informativi attualmente su www.literatecomputing.com e di migrare solo le parti legate alla generazione di entrate su Discourse, insieme al plugin emergente discourse-subscriptions. Sto lavorando febbrilmente a un plugin per Discourse che fungerà da frontend per i miei strumenti di installazione, aggiornamento e altre attività di manutenzione.

7 Mi Piace

Come spunto di riflessione, ecco due siti web realizzati interamente con Discourse (il primo utilizza il plugin Docuss, ora deprecato, mentre il secondo utilizza il plugin DiscPage):

http://www.docuss.org/
https://en.castafiore.org/

7 Mi Piace

Grazie per questo quadro di riferimento per prendere la decisione!

Devo essere onesto e dire che non sono sicuro di cosa significhi, quindi affido ora la parola ai nostri esperti tecnici. :smile:

@pfaffman Potresti dirci di più a riguardo? Quali sono i punti critici che incontri? Sto ancora valutando i CMS e WordPress è tra le opzioni.

Sarei molto interessato a rimanere in contatto su questo!

3 Mi Piace

Sì, è esattamente ciò di cui avevo bisogno. Grazie!

5 Mi Piace

Per essere onesti, ho imparato php prima che si chiamasse così e non ho tenuto il passo con la versione moderna che è diventata oggi, e le mie esigenze sono molto specifiche (devo incassare pagamenti e automatizzare la creazione di un droplet su Digital Ocean con l’installazione di Discourse).

Ma nelle ultime volte in cui ho accettato 500-1000 dollari per qualche modifica a Discourse/WordPress che pensavo sarebbe stata un guadagno veloce e facile, me ne sono pentito. Nell’ultimo caso, ho perso un sacco di tempo e ho dovuto restituire i soldi al cliente. Ovviamente, se avessero fatto cose semplici, probabilmente non mi avrebbero assunto. Ho anche un altro cliente con un sito WordPress pieno di plugin obsoleti e non aggiornabili. È un disastro e, nel corso del tempo, è stato hackerato, con diversi link a contenuti pornografici. Facile da evitare.

D’altro canto, da circa un anno uso Gravity Forms invece di WooCommerce e sono molto soddisfatto nell’utilizzarlo per incassare pagamenti, sia per acquisti una tantum che per abbonamenti (anche se non integrato con Discourse). (Ma non riesco a farlo attivare l’installazione di Discourse esattamente quando voglio!)

Se stai facendo cose “standard” e ti attieni a plugin ben supportati, probabilmente non te ne pentirai (ma userei discourse-subscriptions per gestire, beh, gli abbonamenti a Discourse). Un quarto dei siti sul web usa WordPress e c’è un buon motivo per questo.

7 Mi Piace

Aggiornamento: Sembra che opteremo per due sistemi separati per il nostro sito web rispetto al nostro Discourse. Il fattore chiave è che le persone che devono aggiornare i contenuti del nostro sito sono per lo più non tecniche, quindi traggono grande vantaggio dall’utilizzo di un sistema di gestione dei contenuti estremamente facile da usare. Utilizziamo Weebly per offrire un modo semplice per aggiornare i contenuti, ma ancora meglio, paghiamo per una piattaforma che gestisce il nostro sistema di donazioni e la gestione dei contatti, dotata di un team tecnico dedicato a cui possiamo semplicemente inviare un’email per apportare modifiche più complesse, come al tema del sito, all’organizzazione, agli elementi incorporati, ecc. Si occuperanno del sito Weebly ma non di Discourse.

Ora che abbiamo deciso di avere due siti diversi, dobbiamo capire come renderli coerenti. Vorrei fare un plauso a @angus, la cui azienda supporta la Comunità PianoGroove e ha l’integrazione più bella che abbia mai visto (e ne ho viste molte!)

Sito web di PianoGroove

Screenshot del sito della Comunità PianoGroove

@angus, ti ringrazio sinceramente per il lavoro straordinario che svolgi per i tuoi clienti e per la tua generosità nel rendere open-source i plug-in e i temi che crei. Abbiamo ancora molta strada da fare per far funzionare al meglio il nostro sito web e Discourse, ma ogni volta mi rendo conto che il lavoro svolto da Pavilion è esattamente ciò di cui la nostra organizzazione comunitaria, basata su principi open-source e dal basso, ha bisogno.

16 Mi Piace

Grazie @debryc :slight_smile:

Vorrei aggiungere che sono tutti i membri di Pavilion, non solo io, a mantenere il nostro lavoro. La nostra cooperativa è uno sforzo di squadra.

Aggiungerei anche che abbiamo appena reso open source il nostro plugin Landing Pages, che consente di creare pagine completamente indipendenti, supportate da un’istanza di Discourse; un altro modo per soddisfare l’esigenza discussa in questo argomento. Questo plugin separa il frontend delle pagine dal client di Discourse (cioè non carica l’app di Discourse), consentendo al contempo un’integrazione semplice tramite un backend comune (cioè il server Discourse).

Stiamo già avviando il processo di utilizzo di questo plugin con alcuni dei nostri clienti per soddisfare esigenze simili a quelle discusse qui. Stiamo anche valutando lo sviluppo di pacchetti open source generalizzati e facili da usare, basati su casi d’uso comuni per un CMS associato a una community, utilizzabili con quel plugin.

Ecco l’elenco attuale dei casi d’uso che abbiamo in mente per ricevere questo trattamento.

  • Blog (sto lavorando proprio a questo). Componi contenuti in Discourse e poi presentali in una pagina blog completamente indipendente, che puoi personalizzare come un vero e proprio blog (cioè come Wordpress o Ghost).

  • Pagine di prodotto, servizio o funzionalità (come le nostre). Visualizza prodotti, servizi o funzionalità che possono includere contenuti o dati (categorie, tag, argomenti, utenti, ecc.) dalla tua istanza di Discourse.

  • Pagine “Team” (come le nostre). Una pagina per il tuo team, utilizzando l’iscrizione (e i dati utente) da un gruppo di utenti Discourse.

  • Pagine eventi, sia per l’elenco che per la visualizzazione dei dati degli eventi dalla tua istanza di Discourse in una landing page per eventi stilizzata. “Dati eventi” qui potrebbe essere una combinazione di dati del plugin Discourse Calendar, categorie, argomenti, utenti (ad esempio conferme di partecipazione) e località (utilizzando il nostro plugin Locations).

Siamo interessati ad altri casi d’uso generalizzabili che le persone ritengono potrebbero beneficiare di questo trattamento. Vorrei sottolineare che ci sono alcuni casi d’uso che abbiamo già considerato e che è meno probabile ricevano questo trattamento in questa fase:

  • Negozio. Sebbene possa esserci una pagina che integra elementi di un negozio, i negozi online richiedono un’ampia gamma di funzionalità che richiederanno sempre una soluzione dedicata come WooCommerce o Shopify.

  • Knowledge Base. Questa esigenza è già ben soddisfatta da soluzioni come il plugin Knowledge Explorer. Una landing page può visualizzare un sottoinsieme di una knowledge base, ma replicare interamente le funzionalità di qualcosa come il plugin Knowledge Explorer (o semplicemente gli elenchi di argomenti di Discourse) sarebbe controproducente.

Siamo anche interessati a collaborare con chiunque voglia sviluppare tali pagine, sia come progetto di sviluppo in sé (ad esempio per migliorare le proprie competenze), per la propria community, o anche per venderle. Prevediamo di rilasciare i nostri pacchetti open source gratuiti per ogni caso d’uso nel medio termine (da 4 a 6 mesi).

Il plugin Landing Pages e le pagine di Pavilion saranno sempre open source e gratuiti al 100%. Tuttavia, questa è una struttura generalizzabile che chiunque abbia conoscenze di HTML e CSS potrebbe utilizzare per sviluppare un “page pack” se lo desidera. Presto aggiungerò una “guida per sviluppatori” alla documentazione delle conoscenze per quel plugin.

Il plugin Landing Pages supporta già l’hosting di pagine in repository privati nello stesso modo in cui lo fa il sistema dei temi di Discourse (in effetti, sotto il cofano si basa sul sistema dei temi di Discourse e lo estende). Ciò significa che è già possibile vendere l’accesso a un pacchetto di landing page se si desidera. Ciò potrebbe rendere conveniente per altri sviluppatori costruire tali pacchetti.

Questo approccio non soddisferà tutte le esigenze di gestione dei contenuti associate a un forum, ma potrebbe servire piuttosto bene un sottoinsieme, in particolare quelle che vediamo regolarmente in comunità più piccole e indipendenti, poiché eliminerebbe la necessità di istanze separate e, soprattutto, la necessità di condividere dati tra tali istanze tramite protocolli di autenticazione (cioè condividere i dati utente quando si accede), webhook o altri metodi di condivisione dei dati.

Ciò potrebbe ridurre costi e amministrazione, in particolare per le comunità più piccole che cercano di gestire contenuti relativamente contenuti o mirati, o pagine statiche, insieme al proprio forum. Non sarà mai un sostituto diretto di Wordpress o di altri sistemi CMS, tuttavia si spera che possa rendere alcuni casi d’uso significativamente più semplici.

19 Mi Piace

Sì! E grazie!

Pagine che consentono l’inserimento di script

Sono in una comunità basata su Discourse da soli 2,5 mesi. Ciò che ho riscontrato è la necessità di alcuni strumenti che richiedono l’inclusione di uno script.

Esempio Calendario: esistono strumenti per la gestione di calendari o eventi che potrei incorporare in una pagina. Tuttavia, è necessario uno script nel E deve essere attivato per la pagina.

SAS più generico: molte volte un iframe NON è l’ideale. Non voglio che i miei membri debbano andare su un altro sito per iscriversi, ad esempio, ma il mio servizio di iscrizione ConvertBox richiede uno script nel e un

.

Mentre cerco di migliorare le offerte per la mia comunità, una cosa è abbastanza chiara: finché non “risolverò” la possibilità di aggiungere più facilmente incorporamenti basati su script, mi sentirò bloccato con ciò che OneBox supporta o con l’uso di iframe. Potrei addirittura sognare di ritirare il mio sito WordPress se ci fosse una funzionalità Pagine potenziata che offrisse il controllo dell’inclusione e dell’attivazione come questa.

Non potrei codificarlo, ma potrei immaginare di supportare finanziariamente questo tipo di sviluppo affinché la comunità ne tragga beneficio. Grazie!

3 Mi Piace

Gli embed sono effettivamente possibili sia nell’interfaccia utente di Discourse (ad esempio sopra un elenco di argomenti) tramite un tema, sia nel Plugin Landing Pages. Per quest’ultimo, ho creato un esempio utilizzando questa piccola versione del Dinosaur Game. Puoi giocarci qui: Pavilion (solo desktop).

2021-03-04 18.54.09

Per questo non è stato necessario scrivere codice. Ho semplicemente caricato le risorse sul nostro CDN (trascinando la cartella in uno “spazio” DigitalOcean), creato una pagina con il percorso “dinosaur” e copiato/incollato questo HTML (entrambe le operazioni eseguite tramite l’interfaccia di amministrazione).

HTML
<div class="landing page dinosaur">
  <div class="container">
    <h1>Dinosaur Game!</h1>
    <canvas id="game" height="200" width="800"></canvas>
    <p class="controls">premi la barra spaziatrice per iniziare</p>
    
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/helpers.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/game-object.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/cactus.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/dinosaur.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/background.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/objects/score.js"></script>
    <script src="https://pavilion-assets.nyc3.digitaloceanspaces.com/dinosaur/js/game.js"></script>
    <script>
      new Game({
        el: document.getElementById("game")
      });
      window.onkeydown = function(e) {
        return e.keyCode !== 32;
      };
    </script>
  </div>
</div>

Il Plugin Landing Pages applica le impostazioni CSP e CORS di Discourse, che ho già configurato per gestire gli script dal nostro CDN (tramite le impostazioni del sito pertinenti).

La prossima settimana pubblicherò un argomento completo nella knowledge base su “Come ospitare e incorporare risorse” dedicato a questo plugin, per coprire questo caso d’uso.

8 Mi Piace

Grazie, è utile come punto di partenza.

Non sono riuscito a trovare come farlo in un tema, ad esempio inserendo un che venga caricato con ogni argomento modificato o sopra un elenco di argomenti. Devo personalizzare il tema e inserirlo dopo l’intestazione?

2 Mi Piace