Building A Modern Discussion Forum In Python To Support Healthy Communities

The Python Podcast.__init__

Episode | Podcast

Date: Mon, 30 Sep 2019 20:00:00 -0400

<div class="wp-block-jetpack-markdown"><h3>Summary</h3> <p>Building and sustaining a healthy community requires a substantial amount of effort, especially online. The design and user experience of the digital space can impact the overall interactions of the participants and guide them toward respectful conversation. In this episode Rafał Pitoń shares his experience building the Misago platform for creating community forums. He explains his motivation for creating the project, the lessons he has learned in the process, and how it is being used by himself and others. This was a great conversation about how technology is just a means, and not the end in itself.</p> <h3>Announcements</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>When you&#8217;re ready to launch your next app or want to try a project you hear about on the show, you&#8217;ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you&#8217;ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&amp;utm_medium=rss">pythonpodcast.com/linode</a> to get a $20 credit and launch a new server in under a minute. And don&#8217;t forget to thank them for their continued support of this show!</li> <li>You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don&#8217;t want to miss out on this year&#8217;s conference season. We have partnered with organizations such as O&#8217;Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, Data Council in Barcelona, and the Data Orchestration Summit. Go to <a href="https://www.pythonpodcast.com/conferences?utm_source=rss&amp;utm_medium=rss">pythonpodcast.com/conferences</a> to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.</li> <li>Your host as usual is Tobias Macey and today I&#8217;m interviewing Rafał Pitoń about Misago, a fully featured modern forum application that is fast, scalable, and responsive</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you start by explaining what Misago is and your motivation for creating it? <ul> <li>How does it compare to other modern forum options such as Discourse and Flarum?</li> </ul> </li> <li>How did you generate and prioritize the set of features that you have implemented and what are the main capabilities that are still on your roadmap?</li> <li>Is Misago intended to be run in isolation, or does it allow for integrating into a larger Django project? <ul> <li>Is there any support for multi-tenancy?</li> </ul> </li> <li>How is Misago itself implemented and how has the architecture evolved since you first began working on it? <ul> <li>If you were to start it today, what are some of the choices that you would make differently?</li> </ul> </li> <li>What are the extension points that developers can hook into for adding custom functionality?</li> <li>In addition to the technical challenges, managing a forum involves a fair amount of social challenges. How does Misago help with management of a healthy community? <ul> <li>How do different design elements factor into promoting healthy conversation and sustainable engagement?</li> <li>What are some of the aspects of community management and the accompanying platform features that enable them which aren&#8217;t initially obvious?</li> </ul> </li> <li>For someone who wants to use Misago, what is involved in deploying and configuring it? <ul> <li>What are some of the routine maintenance tasks that they should be aware of?</li> </ul> </li> <li>What are some of the most interesting or unexpected ways that you have seen Misago used?</li> <li>What have you found to be the most interesting, unexpected, and challenging aspects of building and maintaining a forum platform?</li> <li>What do you have planned for the future of Misago?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://github.com/rafalp?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">rafalp</a> on GitHub</li> <li><a href="https://twitter.com/RafalPiton?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">@RafalPiton</a> on Twitter</li> </ul> <h3>Closing Announcements</h3> <ul> <li>Thank you for listening! Don&#8217;t forget to check out our other show, the <a href="https://feeds.fireside.fm/pythonpodcast/rss">Data Engineering Podcast</a> for the latest on modern data management.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&amp;utm_medium=rss">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li> <li>If you&#8217;ve learned something or tried out a project from the show then tell us about it! Email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>) with your story.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&amp;uo=6&amp;at=&amp;ct=&amp;utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> <li>Join the community in the new Zulip chat workspace at <a href="https://www.pythonpodcast.com/chat?utm_source=rss&amp;utm_medium=rss">pythonpodcast.com/chat</a></li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://feeds.fireside.fm/pythonpodcast/rss">Fear Innoculum</a> by Tool</li> </ul> </li> <li>Rafał <ul> <li><a href="https://github.com/encode/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">github.com/encode</a></li> <li><a href="https://feeds.fireside.fm/pythonpodcast/rss">Ariadne</a> GraphQL Library</li> </ul> </li> </ul> <h3>Links</h3> <ul> <li><a href="https://misago-project.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Misago</a></li> <li><a href="https://en.wikipedia.org/wiki/Poland?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Poland</a></li> <li><a href="https://mirumee.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Mirumee</a> <ul> <li><a href="https://www.pythonpodcast.com/saleor-ecommerce-episode-205/?utm_source=rss&amp;utm_medium=rss">Saleor Episode</a></li> </ul> </li> <li><a href="https://www.php.net?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PHP</a></li> <li><a href="https://www.discourse.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Discourse</a></li> <li><a href="https://flarum.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Flarum</a></li> <li><a href="https://www.mysql.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">MySQL</a></li> <li><a href="https://www.postgresql.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PostgreSQL</a> <ul> <li><a href="https://www.dataengineeringpodcast.com/postgresql-with-jonathan-katz-episode-42/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Data Engineering Podcast Interview</a></li> </ul> </li> <li><a href="https://jquery.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">jQuery</a></li> <li><a href="https://www.django-rest-framework.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">DJango Rest Framework</a></li> <li><a href="https://emberjs.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">EmberJS</a></li> <li><a href="https://mithril.js.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">MithrilJS</a></li> <li><a href="https://angular.io?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">AngularJS</a></li> <li><a href="https://reactjs.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">ReactJS</a></li> <li><a href="https://www.phpbb.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">PHPBB</a></li> <li><a href="http://www.celeryproject.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Celery</a></li> <li><a href="https://en.wikipedia.org/wiki/General_Data_Protection_Regulation?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">GDPR == General Data Privacy Regulation</a></li> <li><a href="https://www.docker.com?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Docker</a></li> <li><a href="https://github.com/rafalp/misago_docker?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">misago_docker</a></li> <li><a href="https://en.wikipedia.org/wiki/Virtual_private_server?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">VPS == Virtual Private Server</a></li> <li><a href="http://nginx.org/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Nginx</a></li> <li><a href="https://www.starlette.io?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Starlette</a> Async API framework</li> <li><a href="https://ariadnegraphql.org?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">Ariadne</a> GraphQL Library</li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&amp;utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&amp;rec=1&amp;url=https%3A%2F%2Fwww.pythonpodcast.com%2Fmisago-discussion-forum-episode-231%2F&amp;action_name=Building+A+Modern+Discussion+Forum+In+Python+To+Support+Healthy+Communities+-+Episode+231&amp;urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&amp;utm_source=rss&amp;utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />