Community#

Radiotomate exists thanks to a benevolent team: keep it in mind when asking for help. Your questions are welcome, preferably on Matrix, and maybe soon you'll be helping too!

Sponsors#

We're super grateful to the associations, individuals and companies that help us grow Radiotomates.

Sources and project management happens on Heptapod thanks to Orbeet (publisher of Heptapod) and Clever Cloud (hoster of foss.heptapod.net).

Radiotomate.org belongs to Radio Campus Grenoble, who's hosting this very website on o2switch.

News on the Fediverse#

You can check for news and updates about the project by following us on Mastodon.

Chat#

Chat with us on Matrix by joining the #radiotomate:matrix.gresille.org space.

Contributing#

There are many ways to help Radiotomate:

  • Testing and providing detailed feedback if something goes wrong. If you can make a developer install, test using the latest version (devel branch) on your test radio.
  • Helping by replying to questions on the chat.
  • Documenting by proof-reading the existing documentation or proposing new content.
  • Show and tell: talk about Radiotomate on your social accounts or local radio groups. Record a podcast or screencast showing how to install and use Radiotomate. Tell us about it, we'll relay it (even if it's not in English).
  • Web-designing better pages for
  • Translating to new languages,
  • Coding if you're a programmer, instructions follow.

In all cases, please take some time to read this page, because we require contributors to behave correctly and to share the vision of why and how Radiotomate has been made.

Important advice for newcomers#

before working on something you'd like to do, please tell us via the Matrix channel. We'll ensure nobody else is already working on the same thing, we'll agree together on what to do and if needed we can provide guidelines. We think this is more efficient and less frustrating for everybody than proposing to "just fork and make a pull request".

If you want to use an LLM please announce it too, but note that * we want to discuss changes made to Radiotomate with you. * this software is coupling 4 processes, including one in a niche language, so LLMs will likely struggle to change how playout and scheduling works. * LLMs can help with the interface or when discovering the codebase, but we assume you proof-read generated code before contributing it and keep a tight control over patches. Throwing bots at maintainers is rude and will lead to exclusion from contributors.

Principles and values empowering Radiotomate#

Radiotomate is made for community radios, to empower them with the features (and non-features!) highlighted on its front page. By "community radio" we mean a non-profit collective, broadcasting a 24/7 audio program from a dedicated machine. This should work wether the radio is broadcasting with an antenna or only on the Internet.

We want to help free speech. Free as in emancipation, teaching, respect, care, diversity.

We want to be accessible. As in "free beer", "easy to install", "translated" and "easy to use with a screen reader".

The software will hopefully help radios that share those causes. We'll ensure the community surrounding the software follows these values.

This translates on the engineering side to using the Python programming language because it is robust, accessible, fast enough. Sounds are stored in intuitive folders and files, other data is stored in SQLite. This simplifies our stack and therefore administrators' lives.

We also favor reuse over reinventing the wheel, therefore we rely significantly on:

  • Liquidsoap to create the sound stream.
  • Beets for the music library.
  • APScheduler to trigger actions according to clock time (as of 2026 we're using their alpha version).
  • SQLAlchemy as a DB abstraction (also it's supported by APScheduler)
  • the Quart Web framework. Using this async microframework provides enough liberty to implement our original architecture, in perticular having a single scheduler process.
  • htmx to have reasonably dynamic pages without the hassle of separating back-end and front-end.
  • Bulma to have a nice interface on all screens without too much negociations with CSS.
  • Playwright helps us to check automatically that our interface still works change after change, and that it remains accessible.
  • Click for the command-line interface.

We're very thankful to their authors and contributors! Radiotomate would not exist without them. If you can, take some time to donate.

The name radiotomate comes from the contraction of french words radio and automate (automaton). Later, we found out that it used to be the name of a french radio from the 80s and it's a happy coincidence because we hope our software can take part to Félix Guattari's call for a post-media era.

If you are curious, here are some references that influenced the design and implementation of Radiotomate:

All that being said, you can find the detailed developers' documentation on https://radiotomate.org/contributors/.