The front of Town Hall: a cream wooden hall with a navy roof, a clock tower and the Town Hall emblem above its arched door. Hamlet

Town Hall

A Hamlet building

Volunteer management for organizations that run on people.

Town Hall helps parishes, nonprofits and community groups plan events, staff them with trained volunteers, and recognize the people who show up. Staff get a console to run all of it, and they can plan events with Claude.

  • Free and open source
  • Self-hosted
  • Six languages
  • Installs as an app
Town Hall on a phone: an event page with a Sign up for a role button.
Town Hall on a phone: a volunteer's My Events page with upcoming shifts and impact points.

The screenshots on this page show Town Hall with made-up demo data.

The notice board

For volunteers: everything they need is pinned up front.

  • Find opportunities

    Browse and search published events, filter by category, and see every role, its time window and how many spots are left.

  • Train, then serve

    Roles can require training modules. Sign-up opens once the required ones are complete.

  • Earn impact points

    Shifts, training and endorsements earn points, and points set your level.

  • A record you can share

    A profile, endorsements from peers and staff, external certificates and a printable volunteer résumé.

  • Know your team

    On large events you see your area lead, your shift lead and a link to your own task list.

  • Install it, get notified

    The site installs as an app. Turn on push notifications for shift reminders, new opportunities, invitations and messages from staff.

  • Reminders

    A reminder email the day before each shift, and a thank-you asking for feedback after your last shift at an event.

The Opportunities page: a search bar above event cards with cover photos, dates and places for a food drive, a hamper packing night and a newcomer clinic.
Browse what is coming up
An event page for a heritage festival: a cover photo, the date and place, and buttons to sign up for a role, add it to your calendar or cancel a shift.
An event page, one tap from a shift
A volunteer profile with her photo, verified hours, impact points, projects completed, core skills and recent endorsements.
A volunteer's profile and impact dashboard

The front desk

For staff: the Console is the ledger that runs it all.

  • Events and staffing

    Role slots with headcounts and overstaffing limits, public or invite-only slots, invite links, live check-ins and reports.

  • Chain of command

    For big events: group slots into areas, assign area leads, and let Town Hall pick shift leads 48 hours before the event.

  • Roles and training editors

    Set role templates, attach mandatory modules, and write lessons and quizzes.

  • Venues

    Addresses are geocoded automatically. Venues have features, opening hours, short-lived notices and their own kiosk.

  • Permanent staff

    Ongoing roles, optionally tied to a venue, that only assigned people can clock into.

  • Points rules

    Adjust points per hour, role weights, reach caps and bonuses, then recalculate history.

  • Communication

    Emails and event announcements through listmonk, with per-language templates in your brand colours. Push notifications switch on or off per kind.

  • Make it yours

    Theme colours, logo, home page hero, languages and time zone, all from the console.

The Console home page, greeting the admin with active volunteers, upcoming events, unfilled roles and hours logged this week.
The Console home
Roles and staffing for a festival: the Food Court area with its area lead, and Kitchen Volunteer and Cashier roles with shifts and shift leads.
Roles and staffing, grouped into areas
The live check-in monitor for a food drive, showing how many volunteers are checked in and recent activity.
The live check-in monitor

At the door

The kiosk screen for a food drive: a keypad for entering a 6-digit volunteer ID code, beside the event name, shift times and hours logged today.

Kiosk check-in

Put a tablet at the door. Volunteers enter their 6-digit ID code to start and end shifts, either for an event or at a venue for permanent roles.

The kiosk never logs anyone into the site.

The training room

Train, then serve

  • Lessons in Markdown and video
  • Quizzes at the end
  • Sign-up opens when the required modules are done
  • Completions can expire, so certifications stay current
  • External certificates sit on the volunteer's record
  • A built-in admin guide walks new admins through the app
A training module called Food Safety Basics, 100 percent completed, with its list of lessons.
A training module
The training directory, with module cards showing progress and how many roles need each one.
The training directory

The trophy shelf

Recognition for the people who keep showing up.

  • Impact points

    Shifts, training and endorsements all earn points.

  • Levels

    Points set your level. The Recognition page shows the whole ladder.

  • Endorsements

    Peers and staff can endorse a volunteer for the work they do.

  • Volunteer résumé

    A printable record of where someone has served.

The Recognition page, showing the volunteer at Champion level and the ladder of levels with their perks.
The Recognition page
A printable volunteer résumé with hours, events served, impact points, skills and experience.
A printable volunteer résumé

The planning table

Plan events with Claude

Town Hall includes an MCP server. Add it as a custom connector in Claude, and staff can ask Claude to:

  • Draft an event
  • Estimate headcounts from past events
  • Set up areas and build task lists
  • Build training modules from material you provide
  • Write quizzes from lessons
  • Invite volunteers

The scope is limited on purpose: nothing can be deleted, and people's profiles and settings are read-only.

Task lists with Bell Tower

Bell Tower is in progress

Connect your organization's Bell Tower server and every event gets:

  • A planning list for the event
  • Day-of lists
  • One list per role, joined automatically at sign-up

In the console you can drag tasks between lists and merge lists.

Speaks your volunteers' language

  • English
  • Español
  • Français
  • Українська
  • 繁體中文
  • Tagalog

Events, roles and lessons are translatable, and an Auto-translate button fills in missing translations.

The back office

Built with Django 6, HTMX and plain CSS. No SPA and no build step.

Quick start

$ git clone https://github.com/Collert/town_hall.git
$ cd town_hall
$ python -m venv .venv
$ source .venv/bin/activate
$ pip install -r requirements.txt
$ cp .env.example .env
$ python manage.py migrate
$ python manage.py runserver

You need Python 3.12 or newer. Set SECRET_KEY in .env before you migrate. On a fresh database Town Hall sends you to /setup/, where you create the first admin and name your organization.

Going to production

The repo deploys with Nixpacks, for example on Coolify or Railway. A production deploy needs a database and S3-compatible storage for uploads, with HTTPS ending at your reverse proxy.

In production Town Hall sends anonymous crash reports to the project's Bugsink so bugs get fixed. You can opt out, or point it at your own.

What it plugs into

  • listmonk

    Recommended

    Transactional email, event announcements, newsletter sign-up and password reset

  • Bell Tower

    Optional

    Shared task lists for events and roles

  • S3-compatible storage

    Production

    Media uploads in production

  • Nominatim (OpenStreetMap)

    Automatic

    Geocoding venue and event addresses

  • LibreTranslate, Google, DeepL or MyMemory

    Optional

    Auto-translating content

  • Claude (MCP)

    Optional

    AI-assisted event planning for staff

Made for the people who set up the chairs, run the registration desk, and stay to clean up.