Inspiration
What it does
Frequencies is a calm, low-pressure social app for sharing where you are through sound.
Record up to 10 seconds of ambient audio from your phone. OpenAI listens and returns a mood emoji, category (rain, café, commute, etc.), and a short cinematic description. Browse a live feed of sound moments; sort by hot/new/top; search by description, category, or username. Upvote/downvote posts and leave “quiet notes” on captures. See where frequencies were recorded around the world. Add people via shareable friend codes or @username; filter the feed to friends only. Visualize your friend network in an interactive 3D orbit view. Profile streaks, capture history, and a calendar of past moments. Push reminders with optional daily nudges (9am, 1pm, 5pm, 8pm local time) if you haven’t posted yet. You can browse without an account. Sign-in is only required when you want to post.
How we built it
Frontend: React + TypeScript + Vite, Tailwind CSS, Framer Motion, MapLibre GL for the map, Web Audio API for recording/live waveforms, service workers for push notifications.
Backend: Express 5 API with session-based auth (username + password, bcrypt-hashed), multer for audio uploads, Zod validation.
AI: OpenAI audio model analyzes each clip and returns structured JSON (emoji, category, description) with fallbacks if parsing fails.
Data: Supabase Postgres for users, sessions, posts, friendships, votes, comments, and push subscriptions; Supabase Storage for private audio files with signed URLs.
Deploy: Backend on Railway (Docker); frontend on Vercel, connected via VITE_API_URL.
The repo is an npm workspaces monorepo (frontend + backend) with a shared lockfile and separate production hosts for UI (vercel) and AP (railway).
Challenges we ran into
- Getting reliable JSON from the audio model(gpt-audio)took iteration (response_format wasn’t supported; we added manual JSON extraction and category fallbacks)
- Friend graph UI/UX. Modeling friendships as directional rows (pending / accepted) while still resolving “my friends” bidirectionally.
- Push scheduling. Timezone-aware reminder slots without double-sending the same notification after server restarts
Accomplishments that we're proud of
Shipped the whole product <3
What we learned
What's next for Frequencies
Compatibility / “same frequency”: Match users by shared sound categories and listening patterns Friend-of-friend graph: Expand the social graph beyond direct connections Richer search: Full-text or semantic search over descriptions and audio vibes Co-listen rooms: Passive shared listening sessions without chat pressure Recovery & account safety: Password reset, email optional linking Native mobile: Better background recording, tighter push integration, offline capture queue
Log in or sign up for Devpost to join the conversation.