RSVP
In Progress2024

RSVP

Apple Invites, if Apple built it

Why I Built This

Apple's Calendar invites stop at 'Yes/No/Maybe.' Eventbrite is overkill for a birthday party. Paperless Post charges $15 to send a digital card. I wanted to build the event tool I actually needed: something that handles the full lifecycle—create, invite, track, check-in—without requiring guests to download an app or create an account. The constraint: it has to work when you're standing at a door with 200 people waiting.

Who We Designed For

Event hosts who need more than calendar invites but less than Eventbrite

Social Hosts

People throwing birthday parties, dinner parties, or game nights who want real headcounts

Wedding Planners

Couples or coordinators managing 100+ guests with plus-ones and dietary requirements

Corporate Event Managers

Team leads organizing offsites or launch parties who need check-in accountability

Built for my own events—used for 3 personal gatherings (50-150 guests)

Tech Stack

Core Data
AVFoundation
Core Image
Language
Framework
Database
Platform
AI

App Preview

Inspired by iOS 26 native library for a native experience.

Screenshot coming soon

Response rate at a glance

Process

Claude

Modeled the domain with 5 Core Data entities (Event, Guest, RSVP, ScanLog, Template) designed for CloudKit compatibility. Relationships needed to support both host-centric views (all guests for my event) and guest-centric views (all events I'm invited to). CloudKit's eventual consistency shaped the conflict resolution strategy.

Click to reveal insights

Claude

Built QR generation with Core Image (CIFilter) and scanning with AVFoundation. The payload is JSON with event ID, guest ID, invite token, type, and timestamp. Verification checks the token against the stored hash, confirms the guest exists, and validates their RSVP status—all before the haptic fires.

Click to reveal insights

Claude

Implemented batch import that parses newline-separated emails, extracts names from address patterns (john.doe@ → John Doe), and deduplicates against the existing list. The RSVP form conditionally shows plus-one selection only when response is 'Yes' and limits choices to the guest's allocation.

Click to reveal insights

Claude

Configured NSPersistentCloudKitContainer with automatic migration and query generation. Implemented remote change notification handling to refresh UI when updates arrive from other devices. Tested extensively in Airplane mode to verify offline-first behavior.

Click to reveal insights

Claude

Optimized the scanner for the door scenario: large viewfinder, instant haptic feedback, automatic advance to next scan. The check-in counter updates in real-time. Added manual lookup for guests who forgot their QR code, with search across name and email.

Click to reveal insights

AI Collaboration

Tools

Claude Code (Claude Opus 4.5)Claude 3.5 Sonnet

Approach

Leaned on Claude for framework-specific knowledge: Core Image filter chains for QR generation, AVFoundation capture session configuration, and CloudKit container setup. The QR verification flow was designed collaboratively—Claude suggested the HMAC approach for tamper-proofing invites.

Example Prompts

>

Generate a QR code using CIFilter with JSON payload. What error correction level balances information density with scan reliability?

>

Configure AVCaptureSession for QR scanning. How do I get 60fps metadata processing without dropping frames?

>

What's the NSPersistentCloudKitContainer setup for automatic sync with conflict logging?

>

Design a batch email import that extracts names from address patterns. Handle edge cases like john.doe+events@.

Key Learnings

*

CloudKit eliminates networking code but introduces new debugging challenges

*

QR codes are underutilized—they can carry structured data, not just URLs

*

AVFoundation is powerful but requires careful session lifecycle management

*

Offline-first isn't just a feature; it's an architectural commitment

*

The check-in moment is the product—everything else is setup

*

Batch operations need progress indication and error recovery, not just success

Features

Cool idea? Let's collaborate.

Have a passion project or experimental concept? I love exploring new ideas and building things that push creative boundaries.

Start a Conversation