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.
