All projects

in-progress / case study

Rally

A group planning tool for turning 'we should do something' into a real plan with options, RSVPs, and reminders.

Status
in progress
Surface
Preview
Latest proof
2026-05-21

Why this project matters

A group planning tool for turning 'we should do something' into a real plan with options, RSVPs, and reminders.

A public record of what the project is, why it exists, and what tradeoffs shaped it.

Field notes / Rally

What it is

Rally is a web app for friend-group planning. It gives each activity one source of truth: who is in, who is out, who is maybe, who is waitlisted, what people are voting on, what changed recently, and how to subscribe from a calendar app.

The app is web-first. Discord integration is part of the long-term shape, but Phase 1 focuses on the durable activity page: circles, invites, RSVPs, capacity-aware waitlists, polls, comments, live updates, and calendar feeds.

Why I built it

Group chats are great until a plan needs state. Reactions get stale, polls disappear into scrollback, and "wait, who is actually coming?" becomes the recurring boss fight.

Rally is the small product answer: keep the conversation wherever people already are, but make the plan itself live somewhere structured.

What it does now

  • Circles and invites — a host creates a group and sends invite codes.
  • Activities — each plan gets title, kind, time, location, capacity, and status.
  • RSVPs and waitlists — a full activity can waitlist extra yes responses, then auto-promote the oldest waitlisted person when a spot opens.
  • Polls and comments — friends can vote on options and keep discussion attached to the activity.
  • Live updates — server-sent events keep another open browser in sync.
  • Calendar feed — a signed subscribe URL makes the activity calendar usable without an active browser session.

What I learned

  • Coordination apps are mostly state design. The hard part is not rendering a pretty event card; it is making "maybe," "waitlist," "locked," and "changed my mind" feel obvious and reversible.
  • Calendar links need their own auth story. A feed that only works with a browser cookie is not a calendar feed. Tokenized subscribe URLs made the feature real.
  • The visual identity matters. Rally moved away from generic purple and into a Partiful-inspired sticker style because the app should feel like friends making plans, not enterprise scheduling.

Status & next steps

Rally is built and verified locally in the non-Docker path with backend tests, a Svelte production build, browser flows, and signed calendar feed fetches. It still needs Docker verification, real Discord OAuth credentials, and calendar import testing before it deserves a shared deployment.

The preview at rally.jhinx.dev is a visual preview of the product direction. The real app still needs Docker verification, OAuth credentials, and calendar import testing before it deserves a shared deployment.