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.


The screenshots on this page show Town Hall with made-up demo data.
For volunteers: everything they need is pinned up front.
Browse and search published events, filter by category, and see every role, its time window and how many spots are left.
Roles can require training modules. Sign-up opens once the required ones are complete.
Shifts, training and endorsements earn points, and points set your level.
A profile, endorsements from peers and staff, external certificates and a printable volunteer résumé.
On large events you see your area lead, your shift lead and a link to your own task list.
The site installs as an app. Turn on push notifications for shift reminders, new opportunities, invitations and messages from staff.
A reminder email the day before each shift, and a thank-you asking for feedback after your last shift at an event.



For staff: the Console is the ledger that runs it all.
Role slots with headcounts and overstaffing limits, public or invite-only slots, invite links, live check-ins and reports.
For big events: group slots into areas, assign area leads, and let Town Hall pick shift leads 48 hours before the event.
Set role templates, attach mandatory modules, and write lessons and quizzes.
Addresses are geocoded automatically. Venues have features, opening hours, short-lived notices and their own kiosk.
Ongoing roles, optionally tied to a venue, that only assigned people can clock into.
Adjust points per hour, role weights, reach caps and bonuses, then recalculate history.
Emails and event announcements through listmonk, with per-language templates in your brand colours. Push notifications switch on or off per kind.
Theme colours, logo, home page hero, languages and time zone, all from the console.




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.


Recognition for the people who keep showing up.
Shifts, training and endorsements all earn points.
Points set your level. The Recognition page shows the whole ladder.
Peers and staff can endorse a volunteer for the work they do.
A printable record of where someone has served.


Town Hall includes an MCP server. Add it as a custom connector in Claude, and staff can ask Claude to:
The scope is limited on purpose: nothing can be deleted, and people's profiles and settings are read-only.
Connect your organization's Bell Tower server and every event gets:
In the console you can drag tasks between lists and merge lists.
Events, roles and lessons are translatable, and an Auto-translate button fills in missing translations.
Built with Django 6, HTMX and plain CSS. No SPA and no build step.
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.
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.
Transactional email, event announcements, newsletter sign-up and password reset
Shared task lists for events and roles
Media uploads in production
Geocoding venue and event addresses
Auto-translating content
AI-assisted event planning for staff