A planning tool for volunteer-run youth events

One place to get everyone on the bus.

A three-day trip for fifteen families is a project-management job handed to someone who never asked to be a project manager. nonprofitEventPlanner gives that volunteer one place — on their phone, after dinner — to see what's late, collect money without chasing it, and put every kid in a room without a single parent getting upset.

"I don't want to be a project manager. I just want everyone to get on the bus."

Who it's for

Every feature has to help one of these three people.

If it doesn't earn its place for a leader, a parent, or a treasurer, it gets cut.

Primary · Event leader

Jessica

Volunteer troop leader. Works full-time, not technical, planning her first multi-day event. Wants to open the app after dinner and act on each open item in under a minute.

"Three families haven't paid, one deposit is due Friday, rooming isn't set."

Parent · Payer

Mark

Gets a link in a text. Has never seen the app. Wants to know what he owes, pay it, confirm his kid is set — and never make an account.

"Just tell me what to pay and where."

Treasurer · Co-leader

Linda

Retired accountant, the troop's money person. Detail-oriented. Needs every dollar reconciled and every deposit accounted for, without a spreadsheet that breaks.

"Show me the money that's in, out, and still owed."

What it does

The whole trip, in four moving parts.

01

Rooming & chaperones

Assign scouts to rooms and adults to chaperone duty with guardianship rules respected — so no assignment ever puts the wrong two people together.

02

Money without chasing

Track what each family owes, what's been paid, and which deposits are due — check, Venmo, Zelle, or cash. Recorded, not processed. Fundraising pots offset the balance.

03

Parents by magic link

One signed URL per guardian per event. Parents tap a text, see what they owe, pay or mark a check sent, confirm the permission slip — no account, ever.

04

Logistics & vendors

Buses, hotels, meals, and their deposits tracked as an org-level vendor catalog, with a schedule and cost lines that roll up into the family balances.

Design north stars

Built so a volunteer and an AI can keep it alive.

AI-maintainable

A future AI — or future you — can read one small slice and safely change it. Boring Rails conventions over clever abstractions.

Weekend-shippable

A solo volunteer plus an AI can add a feature in a weekend without yak-shaving on infrastructure.

Boring to operate

No Redis, no deliverability plumbing, no payments processor to reconcile. Cheap to host, dull to run.

How it's built
Framework
Ruby on Rails 8 + Hotwire (Turbo + Stimulus) — server-rendered HTML, a sprinkle of JS for drag-and-drop
Database
Postgres — multi-tenant with an audit log, so SQLite doesn't cut it
Jobs & cache
Solid Queue + Solid Cache — built into Rails 8, no Redis
Payments
Track-only. Amounts, methods, references recorded. No Stripe, no reconciliation surface
Email
mailto: compose — opens the leader's own mail client with a pre-drafted message. No SendGrid, no deliverability
Parent auth
Magic-link tokens — one signed URL per guardian per event; leaders use a password + session
Deploy
Fly.io, ~$4–8/month. Active Storage → S3-compatible (Tigris / R2). Sentry inert until a DSN is set
Status

Real, working, and deliberately private.

Local · not published

A working Rails 8 application with a full domain model — organizations, events, rooms, chaperone assignments, guardianship, fundraising pots, a vendor catalog, an org-level contacts CRM, and a family portal. It carries real ADRs, personas, and a data-retention policy. It stays private because it holds a shape of data — minors, guardianships, family contact details — that has no business on a public remote. The concept lives here; the code stays home.

Experiments