Inspiration
Staying close to people far away usually means choosing between two bad options. A text or a photo in the group chat is easy but disposable. A physical care package or handmade scrapbook feels special, but it takes time, money, and shipping, so it rarely happens. We wanted a middle ground: something with the warmth of a care package that a busy student could put together on a Tuesday night in under ten minutes. The hackathon theme, "Fly Me to the Moon," fit perfectly. The song made famous by Frank Sinatra is about longing for someone far away, and we framed the whole experience as space travel: you pack a capsule, launch it, and it lands with someone you miss.
What it does
Orbit lets you send a capsule, a scrapbook-style digital care package, to someone in your crew. Pack it. Drop in your own photos, videos, voice notes, and a few lines about the moment. Ground Control arranges it. In about ten seconds, our AI assistant picks a layout, places your media, writes short captions in your voice, and decorates the page with hand-made stickers and washi tape. Make it yours. Tweak anything in a drag-and-drop editor, or build a capsule from scratch. Launch it. The capsule "travels" for a while before it lands, bringing back the anticipation of waiting for mail. Unbox it. The recipient gets a rich notification and an updating home and lock screen widget, then opens the capsule with an animation that reveals each piece one at a time. The key design choice: Ground Control never generates content. It returns a layout, not new pixels, arranging only the sender's real photos, videos, and voice notes with our team's hand-made assets. Every capsule is made of real moments, which keeps it feeling like a care package instead of an AI slideshow.
How we built it
Orbit is a native iOS app built in Swift and SwiftUI in Xcode, with three targets: the main app, a WidgetKit extension, and a Notification Service Extension, all sharing data through an App Group. Ground Control (AI): A Gemini Google vision-capable model returns structured JSON describing a layout: background, template, and the position, size, rotation, and layer of each item. The app sends small image thumbnails, a frame from each video, and optional on-device voice note transcripts from Apple's Speech framework. The API call runs in a Firebase Cloud Function, so the API key never ships in the app. Editor: The AI's layout and the editor use the same JSON data model, so AI-built and hand-built capsules are fully interchangeable. SwiftUI gestures let users drag, resize, and rotate every item. Backend: Firebase Auth for accounts, Cloud Firestore for capsules, layouts, crew links, and delivery state, and Cloud Storage for media. Delivery: When a capsule lands, a Cloud Function sends a push through APNs via Supabase + Photon messaging, triggering a rich image notification and a WidgetKit push update so the recipient's widget changes even when the app is closed. Media: PhotosPicker for photos and video, AVFoundation and AVKit for recording and playback. Design and motion: A hand-made asset library of backgrounds, stickers, washi tape, frames, and fonts. Animations use Lottie plus SwiftUI springs and haptics.
Challenges we ran into
Getting widgets to update across phones. Widgets can't fetch data whenever they want, so we had to deliver capsules through push notifications and WidgetKit push updates. [What broke, and how did you fix it?] Making AI output reliable enough for a live demo. Building the editor. Combining drag, pinch, and rotate gestures on many overlapping items in SwiftUI was harder than expected because there were so many variables in rotations and such so we just stuck to discrete motions on that stage. Keeping it feeling human. Getting captions to sound like the sender, not like a greeting card.
Accomplishments that we're proud of
A full send-and-receive loop working on real iPhones: pack, arrange, launch, land, notify, unbox. An AI feature that makes the gift more personal, not less, by arranging real memories instead of generating fake ones. Lock screen and home screen widgets that update when a capsule arrives from another person's phone. A cohesive, cute visual identity built from our own hand-made assets. We're proud that we could work with our first iOS app mockup.
What we learned
Constraint makes AI better. Asking the model to arrange a curated asset library instead of generating images gave more consistent, better-looking results. A shared data format is what let us split the work. Agreeing on the layout JSON early let the editor and the AI work in parallel. iOS widgets and push have real rules about refresh budgets, monochrome lock screen rendering, and required capabilities, and designing around them early saved time.
What's next for [Photon] Orbit
Reply capsules and group capsules, so a whole family can send one capsule, and recipients can send one back. Gentle nudges from Ground Control about who you haven't reached out to lately, based on your own activity in the app. More ways to create: drawings with PencilKit, more templates, and seasonal sticker packs. A way to open capsules without the app, through a link, for recipients who don't have Orbit yet. TestFlight beta with real long-distance families to see what they actually send.
Built With
- apple-speech
- avfoundation
- bun
- claude-code
- google-gemini
- ios
- photon
- postgressql
- spectrum-ts
- supabase
- supabase-edge-functions
- supabase-realtime
- swift
- xcode
Log in or sign up for Devpost to join the conversation.