Inspiration

My partner and I save restaurants, date ideas, and fun places from social media because we want to try them later. We have our own feeds and our own tastes. A week passes, and our lists spread across Instagram, Xiaohongshu (RedNote), YouTube, TikTok, and Maps. Then we want to make a plan and start from scratch, even though both of us have already found ideas we liked, buried who knows where.

I built Quackive to remember both people and their tastes, and to give us a shared bucket list where we can choose together, plan together, and build memories together.

What it does

Quackive turns scattered social saves into plans we can make together. I share a post or link from my iPhone, and Quackive saves it while filling in the useful details.

My Saves keeps my ideas searchable and easy to browse by city or tags. My friends can add their own saves to a shared folder, so we plan from one bucket list.

My friend loves Asian food but hates garlic. Their Taste profile saves me from keeping a mental spreadsheet. Quackive remembers both of us when dinner plans come up.

Quack is the app’s retrieval-grounded AI planning assistant. I can ask, “Where should we eat this weekend?” It retrieves relevant ideas from our shared saves, checks them against our tastes and location, then explains the best fits. We choose together. If nothing fits, it can search for a new place for us.

How I built it

The mobile app uses Expo SDK 54, React Native, and TypeScript. Supabase provides email/password, Google OAuth, and native Apple authentication. A native iOS Share Extension sends authenticated captures to a deployed FastAPI service. The backend uses hosted PostgreSQL and private profile-image storage. A leased background worker resolves supported links and writes enriched items without blocking the share flow.

Google Places verifies venue identity and addresses. TomTom supplies new place options after the user gives consent. A provider-routed language-model layer uses DeepSeek V4 Flash for structured extraction and GPT-5.6 Luna for Quack (AI planning assistant) intent interpretation and response generation.

The signed build runs on a physical iPhone against the live backend and hosted production data. Apple approved the Developer Program membership, and iOS 1.0.0 build 3 is available through the Quackive Internal TestFlight group.

How I used Codex and GPT-5.6

I began by asking Codex to understand the existing product requirement document and shape its UI/UX. I chose the light duck-yellow palette, the round mascot, and Quack as the center action. After the English and Chinese prototypes felt right, I asked Codex to take over the full implementation.

We built Quackive one milestone at a time: social-link capture and enrichment, the searchable library and map, Quack (app’s AI planning assistant harness), the native iOS Share Extension, the opening guidance, and email/Google/Apple authentication. Codex worked on a branch, ran tests, and opened a PR. I reviewed and merged each milestone, then tested the signed build on my own iPhone. I used 21 real Instagram and Xiaohongshu posts as a golden set and kept sending screenshots when something broke. Codex traced device logs, fixed capture timeouts, duplicate cards, keyboard layout, lost conversations, location mistakes, OAuth redirects, and iOS entitlement issues, then added regression tests and installed the next build for me to try.

GPT-5.6 Luna powers Quack’s retrieval-grounded planning loop. Quackive retrieves matching saves and each person’s current tastes, then GPT-5.6 interprets the request and explains which ideas fit the group. The server accepts only approved card IDs and checks location rules before returning results. If the library has no match, Quack asks before searching for something new.

Challenges

Social links provide uneven input. Some posts contain exact venue names and addresses; others hide the useful detail inside video frames. I chose a conservative rule: Quackive enriches claims supported by source text and leaves visual-only posts for a future vision pipeline. It does not invent a restaurant from a thumbnail or creator name.

Native sharing created a second challenge. The extension must save fast, survive token refresh, and close while enrichment continues. An App Group session bridge and an immediate capture acknowledgement keep that flow short. The worker owns the slower resolution and enrichment steps.

Personal and shared recommendations also required clear privacy boundaries. The server resolves live Taste data for authorized friends and shared-folder members. The client receives the context it needs for the interface without a copy of another person’s full private profile.

Accomplishments

In less than one week, I took Quackive from an idea to a complete iOS product with the help of Codex and GPT-5.6. This is the first mobile app I have built and my first AI-native product. It now has a signed TestFlight build running on a physical iPhone, a live backend, hosted production data, and a complete capture-to-shared-planning loop. Apple approved my Developer Program membership, and the app is ready to expand from internal TestFlight testing to a small invited beta group.

Quackive now completes the shared loop I set out to build. Two people can capture ideas from their own feeds, combine them in one bucket list, and ask for a plan that considers both Taste profiles. Each member keeps ownership of their saves and a voice in the choice. The folder preserves what they wanted to do together.

The current main branch passes 284 API tests with one skipped disposable-database test and 76 mobile tests. Ruff and TypeScript checks pass. I deployed the FastAPI backend, and the signed release build runs on a physical iPhone against live dogfood data.

What I learned

Considerate group planning needs shared memory and room for each person’s taste. Quackive became warmer when Quack (AI assistant) checked both members’ saved ideas and current Taste profiles before searching the web. The shared list records the ideas. The live context helps the group find an option that feels right to everyone.

I also learned to give uncertainty a product state. A link can stay pending, a visual-first post can wait for better extraction, and Ask can request a location or permission. Those states protect trust better than a confident guess.

What’s next

Next, I plan to expand the existing TestFlight beta to a small invited group using Quackive for real plans. Their picks and rejections will guide the next ranking changes. In the mean while, I will develop Android version of this app so that more people can use it.

I also plan to add targeted OCR and multimodal extraction for posts whose useful details exist only in images or video frames.

Built With

Share this project:

Updates