A quiet space for two hearts across distance.
Seven questions every day. Two people choosing each other. A love letter that writes itself, one answer at a time.
Every day at midnight (in your timezone), Ours presents you and your partner with 7 meaningful questions:
- 2 deep/vulnerable
- 1 romantic
- 1 playful
- 1 future-oriented
- 1 memory-based
- 1 wildcard (poetic or surprising)
Each of you answers privately. Until both answer, responses stay hidden with the message: "Your words are waiting for your love." When both submit, answers are revealed together with a gentle animation.
- Daily Ritual — 7 curated questions each day with no repetition for 60 days
- Answer Reveal — Private until both submit, then revealed together
- Memory Book — Timeline archive of past answers, searchable and filterable
- Favorites — Heart any question/answer pair to save it
- On This Day — Resurfaces answers from the same date in past years
- Mood Selector — Daily emoji mood + optional reflection
- Streak Counter — Tracks consecutive days of mutual participation
- Magic Link Auth — Passwordless, secure login
- Couple Space — Private invite-only pairing with a 12-character code
- Mobile-First — Designed to feel intimate on a phone screen
| Layer | Technology |
|---|---|
| Frontend | Next.js (App Router), React 19 |
| Styling | Tailwind CSS v4 |
| Animations | Framer Motion |
| Backend/Auth | Supabase (Postgres + Auth + RLS) |
| Deployment | Vercel |
git clone https://github.com/facundocarrizo99/Mimi-s-app.git
cd Mimi-s-app
npm install- Create a project at supabase.com
- Go to SQL Editor and run the contents of
supabase/schema.sql - Enable Email (Magic Link) under Authentication > Providers
- Under Authentication > URL Configuration, add your site URL and redirect URLs:
- Site URL:
http://localhost:3000(dev) or your production URL - Redirect URLs:
http://localhost:3000/auth/callback,https://yourdomain.com/auth/callback
- Site URL:
cp .env.local.example .env.localFill in your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
CRON_SECRET=any-random-secret-string
npm run seedThis inserts 315 meaningful questions across 6 categories into your database.
npm run devOpen http://localhost:3000.
- Push your repo to GitHub
- Import the project in vercel.com
- Add environment variables in Vercel's project settings (same as
.env.local) - Deploy — Vercel auto-detects Next.js
- Update Supabase redirect URLs to include your production domain
- The
vercel.jsoncron runs/api/cronhourly to manage streak resets
users — id, email, display_name, couple_id, timezone
couples — id, user_1_id, user_2_id, invite_code, timezone, streak_count
questions — id, text, category (deep/romantic/playful/future/memory/wildcard)
daily_questions — id, couple_id, question_id, question_date, position (1-7)
answers — id, daily_question_id, user_id, text
moods — id, user_id, couple_id, mood_date, emoji, reflection
favorites — id, user_id, daily_question_id
future_capsules — id, couple_id, user_id, message, open_date, is_opened
All tables use Row Level Security (RLS) so each user can only access their own couple's data.
- Colors: Warm pastels — blush (
#f8e8e0), lavender (#e8daf0), dusk blue (#c8d8f0), rose (#e8a0a0) - Typography: Georgia serif for emotional text, system sans-serif for UI
- Cards: Rounded corners (
2xl), glass-morphism (bg-white/70 backdrop-blur) - Animations: Slow fades, gentle scale transitions, heart pulse on reveal
- Spacing: Generous padding, breathing room between elements
src/
app/
page.tsx — Landing page
layout.tsx — Root layout
globals.css — Tailwind + custom theme
auth/
login/page.tsx — Magic link login
callback/route.ts — Auth callback
daily/page.tsx — Daily questions (main experience)
memory/page.tsx — Memory Book archive
settings/page.tsx — Profile & couple settings
api/
couple/route.ts — Create/join couple
daily-questions/ — Generate & fetch daily questions
route.ts
answer/route.ts — Submit answers
favorite/route.ts — Toggle favorites
memory/route.ts — Memory Book data
mood/route.ts — Mood tracking
cron/route.ts — Streak maintenance
components/
ui/ — Button, Card, Loading, HeartPulse
daily/ — QuestionCard, MoodSelector
layout/ — AppShell (header + nav)
lib/
supabase/ — Client, server, middleware helpers
utils.ts — Date formatting, streak messages
questions.ts — Category labels, daily structure
types/
database.ts — TypeScript interfaces
supabase/
schema.sql — Full database schema with RLS
seed-questions.ts — 315 seed questions