What Inspired Us
We built Curio because today’s social media feels disconnected. Hashtags are spammed, subreddits are fragmented, and “For You” feeds show random content for engagement, not understanding. We wanted a way to actually see how ideas connect. That led to Curio — a feed reimagined as a graph, where posts connect through meaning, not algorithms.
What We Learned
We learned how embeddings and vector search can make discovery smarter. Instead of surfacing what is popular, Curio surfaces what is relevant. We also learned how to apply semantic similarity and clustering to make exploration feel like navigating a web of ideas instead of scrolling a list.
How We Built It
Curio uses Flask, Supabase, and Next.js. Each post is embedded using OpenAI’s text-embedding-3-large and stored in Supabase (pgvector) for semantic search. When users search or post, the backend finds similar posts by cosine similarity. The frontend, built with Next.js and react-force-graph, visualizes posts as nodes and their semantic relationships as edges. Clicking a node expands the graph to explore connected ideas.
We hosted the frontend on Vercel, the backend on Render, and the database on Supabase.
Challenges We Faced
Our main challenge was designing an intuitive graph experience while managing real-time semantic search performance. Converting high-dimensional embeddings into a smooth, meaningful visual layout took several iterations. Integrating multiple services under tight hackathon time also required careful coordination.
Built With
- flask
- gpt5
- next.js
- openai
- python
- react.js
- render
- supabase
- typescript
- vercel


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