Collaborative web application / Production preview
Hangout Planner
Hangout Planner is for casual group planning where the easiest path is usually a shared link, not another account. The app has to let someone create an event, invite people, collect availability or answers, and compare the results without making the group sign up first.
I built a React and Node planning flow with event creation, availability selection, optional questions, participant notes, share-link completion states, and group-facing result views backed by PostgreSQL.

- Role
- Sole developer
- Focus
- Product and full-stack workflow
- Maturity
- Production preview
- Access
- Public; no-login participation
- Technologies
- React
- TypeScript
- Vite
- Node.js
- PostgreSQL
- Last reviewed
- Aug 2026
The problem
What the project had to handle
The nontrivial constraint is continuity. Participants still need a way to return, update, and avoid duplicating responses even though the product deliberately avoids formal user accounts.
The project uses share links, organiser continuity tokens, participant tokens, and browser storage so people can return to the same planning flow without creating accounts.
Key decisions
The shape of the build
Share-link continuity
Organiser and participant paths rely on shareable event links plus local continuity tokens instead of account creation.
That keeps the participation barrier low while still giving returning visitors a consistent planning path.
Transactional vote replacement
Availability and response updates replace the participant token’s prior vote set as one coherent change.
The result view can represent the latest known intent instead of accumulating stale duplicate responses.
Group-results-first views
Calendar results, best-date summaries, notes, and question answers are shaped around what the organiser needs to decide.
The application moves past collection into comparison, which is where the planning value actually appears.
How it works
End-to-end flow
An organiser creates an event and receives a share link. Participants open the link, submit availability and question responses, and can return through browser-stored continuity. Results group those responses into calendar availability, best dates, notes, and follow-up answers.
Planning flow
Hangout Planner
What I implemented
The working surface
Event creation
- Built event details, date-range, response-type, and question configuration flows.
- Added required-field validation and completion states around the share link.
- Supported availability-only, questions-only, and combined planning flows.
Participant workflow
- Implemented no-login response paths through shared links.
- Supported drag-to-select calendar availability and optional notes.
- Stored participant continuity without presenting it as formal authentication.
Results and decisions
- Built group-facing calendar results and best-date summaries.
- Grouped written and option-based answers for organiser review.
- Improved saved/unsaved cues so participants can see whether their response was saved.
Frontend and persistence
- Integrated the React and Vite frontend with a Node API and PostgreSQL persistence.
- Kept public participation separate from organiser controls.
- Kept operational claims qualified to the production-preview scope.
Validation
Checks and evidence
Public application observed
The public application and health routes were reachable during the latest review.
Creation, participation, and results
Event creation, participant response, and group results workflows are implemented.
Persistence and continuity checked
PostgreSQL persistence, organiser continuity tokens, participant tokens, and browser-stored return state are part of the implemented flow.
make check passed
`make check` passed for the project surface.
Current state
Production-preview public app with no-login participation.
Continuity uses links and tokens for return visits.
Backup proof and hardened deployment operations remain open, so the deployment stays labelled as a production preview.