Inspiration
The photos that matter most are often the easiest to lose. Trips, anniversaries, and ordinary days disappear into a camera roll, while the small conversations around them fade even faster. We wanted to recreate the warm, tactile feeling of pinning a photo to a cork board — but make it a private place shared with one important person.
What it does
Ourdays is a private shared memory board for couples.
A photo, date, place, and short note become a card that looks like a polaroid pinned to a cork board. Both partners see the same boards and can build on each other's memories.
Users can:
- Add multiple photos to a memory
- Move, resize, and rotate photos and decorations
- Add paper notes with different typefaces, colors, and paper styles
- Choose from board backgrounds and photo frames
- Organize boards by date and custom categories
- See saved places collected on a map
- Switch between a chronological list and a photo gallery
- Save a finished board as one image or share it
- Receive a quiet “one year ago today” reminder
- Connect privately with a partner using an invitation code
Ourdays Premium removes the free limits on memories and boards and adds exclusive backgrounds and frames. One subscription covers both partners.
How we built it
Ourdays is built with React Native, Expo, and TypeScript so the product can share one maintainable mobile codebase. Expo Router handles navigation.
Supabase provides authentication, PostgreSQL, private image storage, and Edge Functions. Row Level Security keeps boards, memories, photos, and decorations visible only to the two members of that board. Photos are resized for display and unnecessary location and device metadata is removed before upload.
RevenueCat powers the monthly and annual subscriptions, store-price retrieval, purchase restoration, and Premium entitlement. Subscription events are synchronized to Supabase so the shared board receives the correct benefits.
The map uses native maps through react-native-maps, Nominatim for place search, and device location services for coordinates. Expo Notifications powers partner activity and anniversary-style reminders. The interface is available in Japanese and English.
Challenges we ran into
The hardest part was making a free-form board feel playful while keeping its state reliable. Every photo, note, and decoration has position, scale, rotation, and stacking order, and both partners need to see the same arrangement.
We also had to make privacy a structural part of the product rather than a promise in the copy. Invitation handling, database permissions, private storage paths, photo processing, and account deletion all needed to agree on who can access each memory.
Finally, aligning App Store subscriptions, RevenueCat products, shared Premium access, and a friendly paywall required careful testing across the full purchase and restore flow.
Accomplishments that we're proud of
We shipped the first public version of Ourdays on the App Store during Shipaton. The finished app combines a handcrafted scrapbook-like interface with real shared editing, private cloud storage, map-based recall, bilingual support, and production subscriptions.
We are especially proud that the visual concept is not just decoration: arranging the board is part of how two people revisit and talk about their time together.
What we learned
A memory product does not need another public feed. Small interaction details — moving a photo, choosing a paper note, or seeing a familiar place appear on a map — can invite a conversation more naturally than likes or follower counts.
We also learned that a warm, personal interface still depends on careful engineering underneath it: explicit permissions, replaceable data boundaries, resilient synchronization, accessible controls, and subscription state that remains consistent for both people.
What's next
We will use real-user feedback to make onboarding, shared editing, accessibility, and the long-term experience of revisiting memories even better.
Demo Video
Built With
- app-store
- expo-notifications
- expo-router
- expo.io
- in-app-purchases
- ios
- nominatim
- postgresql
- react-native
- react-native-maps
- revenuecat
- row-level-security
- supabase
- typescript


Log in or sign up for Devpost to join the conversation.