Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Working with, in and on Discourse

Avatar for Max Mulatz Max Mulatz
September 04, 2026

Working with, in and on Discourse

Working with, in and on Discourse - Shaping open source software for the public sector

The talk was given at RUG::B 09/2026

Avatar for Max Mulatz

Max Mulatz

September 04, 2026

More Decks by Max Mulatz

Other Decks in Technology

Transcript

  1. Agenda Project type Customize open source software for public sector

    Dev story Working with, in and on Discourse
  2. Discourse Discourse is the customizable, scalable community platform powering more

    than 22,000 communities that create knowledge through conversation. https://www.discourse.org
  3. discourse Product Online community platform All the features: forum, chat,

    events, … (…can be a lot for new users Used by all sorts / sizes of communities & companies Lots of settings and possibilities for customization Democratize online community and teamwork Focus on high standard of civilized discourse Free & open source Own your data, customize / extend the software, self host it https://www.discourse.org/about )
  4. discourse Ember.js Free & open source JS framework Not backed

    by big tech… Opinionated & batteries included Router, templates, components (Glimmer), … Focus on long-term stability Discourse never rewrote their frontend since 2013…
  5. public sector Public entity Under state / government supervision Independent

    only in day to day operation Digital independence: legal requirement & political stance Stricter data protection rules than private companies Limited in software choices No vendor-lock to shiny US oligarchy-tech, "stuck" with self hosted OSS Limited financial resources Spend sustainably and locally Sluggish operational structure Took ages from kick-off to project work
  6. public sector Case for Discourse Client already settled on Discourse

    Already using it and evaluated as promising candidate Client in contact with core maintainers Checked general feasibility of project Want to contribute back to community Project as initiative for more similar work in the public sector
  7. public sector Project: Community Platform +30.000 events per year in

    Berlin libraries Curated by libraries and by local communities Digital space for participants & communities Library already offers physical space Save space for learning and dialogue Expand library space into digital space Tweak Discourse to this…
  8. Discourse for Devs Large open source project Has own ecosystem

    build around for development meta.discourse Epicentre of development & main source of information Plugins, themes, theme components Mechanisms for customization / extension … or forking as the last resort…
  9. discourse for devs Environment Locally running dev instance of Discourse

    as a base Development of customizations all within local Discourse clone Scripts / generators for scaffolding extensions Project structure, CI for integration testing against different versions of Discourse Good setup for testing, linting and debugging Works equally for Discourse core and for extensions Downside: lots of movement on main branch Effort to keep own code compatible with past and future Discourse versions
  10. Building Client specs user flows as screen designs in Figma

    Ideation process way beyond the boundaries of Discourse Product vision first, platform limitations second Profound modification of core Discourse UX bitcrowd's task: spikes and research Find out if ideas are technically feasible and at which effort / price
  11. building How Contributions to official plugins Developed own suite of

    Discourse plugins Client- & server-side logic, UI components, API extensions Theme mainly done by team at ZLB Use Discourse' provided extension points Page outlets for UI, extension points for business logic Override Discourse core logic Add own routes, pages & components
  12. building Strategy Prefer non-invasive additive change Call super, keep Discourse

    code in Discourse; opt for new routes/pages Split into multiple, self-contained, configurable plugins No need for the full package at all times Test Discourse core logic and own deviation from it Test system with and without plugin enabled UI changes and components theme-agnostic Use Discourse' JS components, minimal CSS with variables for customization Document own components in styleguide Like Storybook for Discourse components
  13. building Note on AI First project where having AI assistance

    made a difference Have coding agent to exploring the gigantic codebase Conversations about feasibility and strategy for changes Would have needed to pair with core maintainers otherwise Speed boost in planning enabled project in given time & budget Tight budget (public sector…) and tight deadline (re:publica…) did not need AI to write code…