Personal event planning, without the bloat. For your dinner party, family trip, wedding, birthday — not for anyone else's.
a presentation of the requirements and tech plan, distilled from a multi-round discussion with the codex CLI.
Personal events are not what Eventbrite and Partiful are built for. You don't need ticketing. You don't need 12 RSVP form fields. You need to know who's coming, what to do next, and how much it'll cost.
Build a tight five-feature MVP, refuse most of the obvious extensions, and stay mobile-first. The app's job is to be useful at 2 a.m. when you're trying to remember whether you ever booked the venue.
The smallest version where eventa is genuinely useful. If only these five exist, the app is already worth opening on event day.
title · dates · location · size · rough budget
why · Without an anchor, the rest of the app is a pile of tasks with no shared definition of success.
guests · households · dietary · lodging
why · Most planning decisions depend on headcount — and headcount is only useful when it includes real constraints.
android Import from device Contacts. Tap-to-call / SMS / email.
tasks · category · owner · due date
why · The app must help users know what to do next, not just store event data. Includes packing/supply lists.
overdue · this week · this month · later
why · Event stress comes from late decisions, not from lack of task storage. Reminders are the app's operating system.
android Local notifications fire at the right moment. Optional one-tap export to device Calendar.
estimated vs actual · paid-by · per category
why · Money is one of the fastest ways casual plans become stressful, and even rough visibility is valuable.
android Snap a receipt with the camera, attach to the line item.
Round 4 made these obvious — going native unlocks integrations a web app would have to build (or fake) from scratch.
the timeline interrupts you, doesn't wait to be opened
import a guest with one tap; no typing names + phones
call · SMS · email · navigate — straight from the row
receipts, contracts, venue photos go on the line item
no loading states, no auth, no backend availability
deadlines and run-of-show land in the device calendar
These don't ship on day one. They ship as the MVP gets used and the gaps become obvious.
one invite covers a couple, family, or shared lodging group
why · Personal events are rarely individual-ticket affairs; household grouping avoids messy duplicate communication.
who paid for what · who owes whom
why · Essential for trips, group dinners, and family events. On-device only — exports a settlement summary instead of syncing live between people.
meals · drinks · portions · grocery quantities
why · Food is often the center of personal events; this prevents both overbuying and excluding guests.
save-the-date · invite · reminder · address request
why · Prevents accidental silence, repeated messages, and missed follow-ups. Manual entries plus quick send-SMS / send-email buttons (Android permissions block automatic capture).
event-day schedule with times, owners, locations
why · Even casual events benefit from knowing when food arrives, people show up, speeches happen.
final costs · vendor feedback · what to repeat
why · Each event teaches the next one. Personal event planning gets much easier with this loop.
addresses · phone · booking refs · cancellation terms
why · Personal events depend on this fast — addresses, deposits, access notes.
every task / cost / run-of-show item has a clear owner
why · Personal events are usually coordinated with a partner or family — every item needs an owner.
Events are high-effort data. On-device-only without an exit is not a serious event-planning app.
Everything below is chosen to be the right size for one family's planning, not to scale to a million users.
Functional + technical specs are at heapzilla-ai/eventa/REQUIREMENTS.md and TECHNICAL.md. Codex transcripts that produced this are checked in alongside, for traceability.
when you're ready · ./android/bin/hpz-emu run android/eventa-app
until then, read the spec · requirements.md · technical.md · plan.md