heapzilla · event planning · v1 spec

eventa

Personal event planning, without the bloat. For your dinner party, family trip, wedding, birthday — not for anyone else's.

5 MVP features 13 total · v1 scope android · kotlin · compose

a presentation of the requirements and tech plan, distilled from a multi-round discussion with the codex CLI.

The problem

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.

The opinion

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.

MVP · ships first

Five features that earn the install

The smallest version where eventa is genuinely useful. If only these five exist, the app is already worth opening on event day.

  1. 01

    Event Brief

    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.

  2. 02

    Guest List with RSVP

    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.

  3. 03

    Planning Checklist

    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.

  4. 04

    Deadline Timeline

    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.

  5. 05

    Budget Buckets

    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.

android-native · for free

What the platform brings

Round 4 made these obvious — going native unlocks integrations a web app would have to build (or fake) from scratch.

v1 expansion · after MVP

Eight more, ranked by what hurts to skip

These don't ship on day one. They ship as the MVP gets used and the gaps become obvious.

  1. 06

    Household-Based Invitations

    one invite covers a couple, family, or shared lodging group

    why · Personal events are rarely individual-ticket affairs; household grouping avoids messy duplicate communication.

  2. 07

    Personal Cost Ledger shared cost tracker → personal cost ledger (round 4)

    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.

  3. 08

    Menu & Dietary Planner

    meals · drinks · portions · grocery quantities

    why · Food is often the center of personal events; this prevents both overbuying and excluding guests.

  4. 09

    Guest Communication Log

    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).

  5. 10

    Run of Show

    event-day schedule with times, owners, locations

    why · Even casual events benefit from knowing when food arrives, people show up, speeches happen.

  6. 11

    Post-Event Wrap-Up

    final costs · vendor feedback · what to repeat

    why · Each event teaches the next one. Personal event planning gets much easier with this loop.

  7. 12

    Venue / Vendor Contact Sheet added in critique

    addresses · phone · booking refs · cancellation terms

    why · Personal events depend on this fast — addresses, deposits, access notes.

  8. 13

    Responsibility Assignment added in critique

    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.

v1 must-have · non-negotiable

Backup & Export — non-negotiable for V1

Events are high-effort data. On-device-only without an exit is not a serious event-planning app.

tech

Stack — boring on purpose

Everything below is chosen to be the right size for one family's planning, not to scale to a million users.

Platform
Android — native, on-device, no backend
Language
Kotlin 1.9+
UI
Jetpack Compose + Material 3
State
ViewModel + StateFlow
Navigation
Navigation-Compose with typed routes
Persistence
Room (SQLite) for entities, DataStore for prefs
Build
Gradle Kotlin DSL, AGP 8.7+, JDK 17
Min SDK
24 (Android 7.0)
Distribution
Sideloaded APK in V1 · Play Store later
cut

What we deliberately removed

  • Decision Ledger Notes-with-ceremony — decisions can live inside Brief, Run-of-Show, or Checklist items.
  • Packing & Supply Lists (separate surface) Merged into Checklist — "buy plates", "borrow cooler" are tasks with categories, not a separate product surface.
  • Live shared / multi-user planning Android-only on-device means collaboration is via SMS handoff, not via the app itself.
  • Automatic SMS / call-log scraping Android permissions block clean V1 implementation. Comms log stays manual + tap-to-send.
not goals

What this app refuses to be

  • Not a competitor to Eventbrite, Partiful, or Lu.ma.
  • Not multi-tenant SaaS — single user / single family.
  • Not public RSVP links. RSVP is managed privately by the planner.
  • Not a project-management tool — categories are simple labels per event.
  • Not a payment platform — paid_by is plain text, no settlement logic.
  • Not desktop-first. The phone is the primary device.

Status — spec complete · awaiting build kickoff

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