← All projects

SOFTWARE / COMMUNITY

Spectrum.

An open-source web app to run Street Epistemology spectrums online, made for Opinions sur Rue.

Spectrum during a session: the claim "It is important to respect others." above a half-circle going from Completely agree to Completely disagree, with the pellets of Marc and Jessica, the participants list and the chat on the right.
A spectrum in progress: the claim, each participant’s pellet, the participants and the chat.

Key facts

Status
Activeas of October 2026
Years
2025 – now
Role
Sole developer. I am a member and volunteer of Opinions sur Rue.
Stack
  • SvelteKit
  • Tailwind
  • Fabric.js
  • PeerJS (WebRTC)
  • Go
  • Capacitor
Highlight
v1.1 (May 2026) · used about once a month by Opinions sur Rue

Why I built it

A spectrum is an adaptation of Street Epistemology: participants position themselves on a line to show how much they agree or disagree with a claim, and then they talk about it.

For long, the easiest way to run one online was a drawing tool like Miro, Google Drawing or Excalidraw, next to a voice call. Everybody has the rights in these tools, so we often moved or deleted someone else’s pellet by mistake. You also go back and forth between the drawing and the call to move or to unmute yourself, and most tools ask you to sign up first.

So I decided to make a dedicated software. I made it first for Opinions sur Rue (OSR), a French non-profit promoting Street Epistemology, where I am a member and volunteer.

What it does

You start a spectrum, copy the private link and send it to the participants: 2 to 6 people. Everyone controls only their own pellet.

The chat keeps the history of the spectrum: positions, new claims and messages. There are also voice calls, emoji reactions and raise hand.

A streamer mode adapts the screen for sharing, and the app can read a YouTube, Twitch or TikTok live chat to show the average vote of the viewers.

It is in English and French. There is no login, and nothing is stored.

How it’s built

The front end is SvelteKit with Tailwind, and the spectrum itself is drawn with Fabric.js. Voice calls are peer to peer with PeerJS (WebRTC). A small Go back end keeps the rooms in memory only, so nothing is stored, and listens to Twitch, YouTube and TikTok live chats for the audience vote.

The Android app is built with Capacitor. The code is open source, so anyone can run their own instance.

Where it is now

Version 1.1 (May 2026) added an Android app, spectrums with 3, 5, 7 or 9 slices, a welcome screen for first-time users, and more tools for the host. The Android app is an APK on GitHub, not on a store.

Opinions sur Rue uses it about once a month at least. I didn’t set up any analytics, so I am a bit blind on the other users.

If I were to do it today, I would go more in the direction of Excalidraw and Miro: a full-screen canvas, with the information as panels. It would be easier to make responsive, and it would open the door to features like writing notes together during the spectrum.

Read more.

GOOD THINGS START WITH A CONVERSATION.

Something on your mind?

LinkedIn
sonny@the-internet: ~

A small window into a curious mind.

Type help to look around. No serious hacking required.

↑ ↓ command historytry a little curiosity