Volunteer
Lardeau Valley Community Centre
A volunteer-built platform running a rural community centre: events, memberships, newsletters, governance and AI-drafted meeting minutes.
- Role
- Sole developer
- When
- 2024 – present
- Live
- lvcc.ca
- Angular 20 (SSR)
- NestJS
- PostgreSQL
- Auth0
- Stripe
- Google Cloud
- Claude API
- Docker
The Lardeau Valley Community Centre is run entirely by volunteers. It needed one place to publish events, take memberships, send newsletters and keep its governance records — without a budget for a SaaS stack, and without anyone whose job it is to run one.
What it does
- Events and calendar, synchronised with the centre's Google Workspace calendars.
- Memberships and payments through Stripe, with Auth0 sign-in for members and the board.
- Newsletters composed in the app and delivered through a queued email pipeline.
- Governance: agreements, board nominations, operating hours and a members' forum.
- Meeting minutes from audio. Board meeting recordings are picked up from Google Drive, transcribed with Google Speech-to-Text, cleaned up, and drafted into minutes by Claude for the secretary to review.
How it is built
An Nx monorepo with an Angular 20 front end rendered on the server for search and link previews, and a NestJS API on PostgreSQL. Slow work — transcription, email delivery — runs on Redis-backed queues so a request never waits on it. It ships as Docker images through GitHub Container Registry, with a deploy script that keeps the previous image for one-step rollback.
The transcription pipeline is modelled as an explicit state machine — download, convert, transcribe, clean up, draft — so a recording that fails partway can be retried from the step that failed rather than from scratch, and is never silently dropped.