Down For
A shared iOS app where friend groups save ideas by occasion type, gauge who's interested, and build a living record of everywhere they've been together.
The Problem
Friend groups share places and ideas constantly. A restaurant someone spotted on TikTok, a trip concept from a travel post, a bar a friend went to last weekend. It flows through Instagram DMs, group chats, and shared screenshots at a pace nobody can keep up with, and almost none of it goes anywhere. By the time the group is actually trying to make a plan, the ideas are buried in chat history or forgotten entirely. The group either spends time re-searching for something someone already found, or they default to whatever is most familiar.
Before building anything I asked friends directly whether this was a real problem. The response was consistent, and everyone recognized it immediately. What makes it hard to solve is that saving is individual and planning is social, and nothing connects the two cleanly for a group. You can save a restaurant to your own Instagram folder and your friends have no idea it exists. You can share it in the group chat and it disappears in a few hours. There is no shared space organized around the actual decision the group is trying to make, no signal for who is actually interested, and no layer for remembering what the group did once they finally go somewhere. The existing tools solve adjacent pieces. Mapstr for saving places, Partiful for event planning, Beli for restaurant rankings. None of them are built around a friend group sharing ideas together over time, organized by the kind of occasion they are planning for, with a social layer that reflects real group dynamics rather than formal event commitments.
What I Built
Down For gives a friend group one shared space where their ideas actually live. You save something by pasting a link or adding it manually with a photo, and the app generates an item card with the title, image, and source automatically. Items are organized by occasion type, things like Birthday, Trip, Nightlife, or Eating Out, so when the group is trying to make a plan they can filter to what is relevant right now rather than scrolling through everything they have ever saved.
The social layer is built around how groups actually signal interest. Anyone can react, comment, or tap a single button to show they are interested in something, without picking a date or making a commitment. That lightweight signal creates momentum around an idea without turning it into a scheduling problem. Once the group goes somewhere, anyone can mark it visited and attach a personal memory, a short note, a photo, a rating. Each person's memory is their own, shown on their own card with their name and avatar. Over time the group builds a real shared record of everywhere they have been together, with personal context attached to each place. Once a month, Down For Wrapped turns that accumulated history into a short, fun recap for the crew, the kind of stats that make a group chat go "wait, we actually did all that?" That record, and the recap that surfaces it, is the long-term value layer and the thing that has no direct equivalent in any existing tool.
The app is currently live in TestFlight beta with 25+ users. Before moving to production I ran over 15 user testing sessions on Expo Go with real users, and that feedback drove meaningful product changes throughout the build including revisions to the occasion tag system, the capture flow, and several features that got cut entirely after testing showed they were not solving a real problem.
Stack: React Native with Expo, Supabase (auth, PostgreSQL with row-level security, real-time subscriptions, file storage), Google Places API, Apple Push Notifications, EAS for iOS distribution.
The Product Decisions
The central product question throughout the build was whether saving something would feel meaningfully easier than dropping a link in a group chat. Group chat is a very strong competitor. It is already on everyone's phone, everyone in the group already uses it, and it handles just enough of the basics that switching feels unnecessary. The only way to build something better is to be dramatically better at a specific thing, not slightly better at everything. That forced a lot of discipline around what Down For should and should not be.
The capture flow required the most work. I built three modes because different sources require different handling. Pasting a link auto-fetches the title, image, and metadata. Google Maps links go further, pulling rich location data directly from the Places API including photos and place details that a standard metadata fetch would not capture. For sources that block scraping entirely, like Instagram and TikTok, the app detects those domains and routes to a clean manual card instead of a broken result. Everything that cannot be auto-fetched falls back to manual entry with a photo upload. Those details are invisible when they work and immediately damaging when they do not.
The social layer design was a deliberate constraint. I did not build scheduling, RSVP flows, or calendar integration even though they would have been natural additions. The I'm Down signal is intentionally one tap with no date and no commitment, because the moment the app starts requiring coordination it becomes a different product with a much narrower use case. The app's job is to keep ideas alive and make it easy to see who else is interested, not to plan the event.
The most important decision was what to cut. I built a Surprise Me feature that randomly surfaced a saved idea when a group could not decide. It was technically clean and one of the more polished UI moments in the app. 5 early testers had no idea what it was for, so I cut it.
The data model required thinking about multi-user shared state differently than anything I had built before. Designing for multiple people across different devices seeing the same data in real time meant thinking about permissions, row-level security, and sync as foundational constraints rather than features to add later.
How I'd Evolve It
Next I would add a direct share extension that lets users save from Instagram or Safari without switching apps, closing the last real gap in the capture flow. I would also build lightweight resurfacing prompts, a notification or feed moment that proactively reminds a crew about something they saved when it is actually relevant, before a weekend trip, when someone is in a new city, when an occasion type has gone quiet. Right now resurfacing only happens when someone opens the app and looks. Those two changes turn the app from something people have to remember to check into something that reaches back out at the right moment.
The more interesting long-term question is what resurfacing becomes once it is not tied to a fixed monthly cadence. Down For Wrapped already does a version of this once a month, showing a crew what they saved, what they never got to, and what they built together over time. The natural evolution is making that same intelligence run continuously instead of once a month, quietly noticing when a saved place matches what a crew is actually doing right now and surfacing it in the moment instead of waiting for a recap to mention it. That is the part of the original problem, that saving is easy but remembering to act on what you saved is not, that still has the most room to grow.