Skip to content

johnjcamilleri/blurt

Repository files navigation

logo blurt

A minimal audience response tool — just blurt out your answer!

See it live at blurt.lol

Quick start

  1. Go to https://blurt.lol
  2. Enter a room name of your choice, or leave blank, and click "create".
  3. Show QR code (q) to get participants to join.
  4. Mode is initially off (0), i.e. participants can't respond.
  5. Ask a question out loud, then choose a mode to allow responses:
    • t for text
    • n for number
    • y for yes/no/maybe
    • m or 25 for multiple choice
  6. Optionally pick a random respondent with p or by clicking a response.
  7. Clear responses (c) or change mode back to off (0), then repeat.

See below for more features and keyboard shortcuts.

About

Creating rooms

  • A room has exactly one owner, and zero or more participants.
  • Room ownership is saved as a random secret in a cookie.
  • A room is destroyed if it has no participants or owner.
  • Visiting / shows two options:
    • Create a room with a specified name (or let the server choose one) and make you the owner.
    • Join a named room as participant (if it exists).
  • Visiting /create creates a room with a randomly chosen name and makes you the owner.
  • Visiting /create/:room creates room (if it doesn't exist) and makes you the owner.
  • Visiting /:room checks if room exists and joins it:
    • as the owner if you have the room secret.
    • as a participant otherwise.

Features

  • Instantly create rooms with zero setup
  • Responses updated live in owner view as participants type, sized according to frequency
  • Minimal, projector-friendly UI (dark by default, no borders, content at top)
  • Zen mode (hides controls completely)
  • QR code for participants to scan
  • Show/hide responses
  • Pause/resume live updating
  • Clear all responses
  • Pick a random participant, optionally with a certain response
  • Modes
    • free text
    • numeric (responses sorted by value)
    • yes/no/maybe
    • multiple choice (letters A–D)

Intentionally missing features

  • Pre-prepared content
  • Users or registrations
  • History or statistics
  • Childish graphics or annoying animations

Keyboard shortcuts

Controlling owner view

Key(s) Action
q Toggle QR code visibility
h Hide responses
s Show responses
l Light theme
d Dark theme
z Toggle Zen mode
/ Toggle response counts
space Pause/resume updates
p Pick participant
u Unpick all participants

Controlling mode and responses

Key(s) Action
c Clear all responses
0 or o Set mode to "off"
t Set mode to "text"
n Set mode to "number"
y Set mode to "yes/no/maybe"
2 Set mode to "multiple choice" with 2 options
3 Set mode to "multiple choice" with 3 options
4 or m Set mode to "multiple choice" with 4 options
5 Set mode to "multiple choice" with 5 options

Development

Build & run locally

npm run build
npm run build:client
npm run start

Run in dev mode

npm run dev
npm run dev:client

Update main branch

Fast-forward merge dev into main and push (from dev):

git fetch . dev:main
git push origin main

Release

  1. CHANGELOG: move items from unreleased into new release
  2. Update version number in package.json (then run npm i to update package-lock.json)
  3. Commit to dev with commit message "Release x.y.z"
  4. Merge to main
  5. Trigger deployment

Contributing

Use blurt as you wish!
Bug reports, feature requests, and pull requests are welcome.

Credits

blurt is conceived, built and maintained by John J. Camilleri at Chalmers University of Technology.

About

A minimal audience response tool — just blurt out your answer!

Resources

License

Stars

Watchers

Forks