Inspiration

Sonder was born from an idea sparked years ago as a vision of creating a meaningful space for mental health conversations in a world full of noise. After witnessing many pivotal mental health awareness campaigns take shape, we decided to officially build our own. Sonder is the result — a place to slow down, check in, and remember that everyone’s living a story just as real and complicated as your own.

What it does

Each day, Sonder sends a random prompt to all users at the same time, giving everyone a chance to pause, reflect, and share a glimpse of their day. Users have 10 minutes to respond to the given prompt, keeping these moments honest and present. When you join Sonder, you’ll create an account with a username and password to keep your space secure and personal. You can set up a simple profile, follow others whose stories you connect with, and build your corner of the community. Whether you’re looking for friends, familiar faces, or fresh perspectives, connection is always just a few taps away. Sonder isn’t about likes or followers. It's all about seeing one another a little more clearly and finding comfort in the nuanced moments we share.

How we built it

For the backend, we used FastAPI, which made it easy to build secure, high-performance APIs. It handled user authentication, daily prompt distribution, response submissions (text, images, anonymous posts), reactions, comments, and profile search. We used PostgreSQL for the database to store user profiles, responses, and comments, ensuring scalable data management. On the frontend, we built the mobile app with React Native, using native components to create smooth feed views, submission forms, profile pages, and notification handling, with simple, intuitive styling for a clean user experience. The flow works like this: React Native sends API requests to FastAPI (e.g., login, post a response, react to a prompt), FastAPI processes the logic and interacts with the PostgreSQL database, then sends back the necessary data for the app to render in real-time.

Challenges we ran into

Figuring out how to structure the backend for user management and setting up routes for different features of the application was a big learning curve. Database management using SQL and PostgreSQL was a hurdle as the relational tables that could handle user data and interactions efficiently, such as the prompts and responses, took a lot of trial and error. Despite these challenges, figuring it out piece by piece ended up being one of the most rewarding parts of the whole project.

Accomplishments that we're proud of

  • Clear communication, which helped keep our files organized to avoid merge conflicts and compatibility issues.
  • Maintaining strong focus and collaboration, even with our distinct technical backgrounds, and during chaotic moments like unexpected bugs.
  • Building a cohesive, intuitive mobile application in less than 40 hours.

What we learned

We learned a lot about balancing asynchronous tasks in React Native, especially authentication flows. With this, we gained hands-on experience working with database operations — setting up storage for user data, handling complex relationships between tables, and making sure information stayed consistent across the app.

What's next for Sonder

We plan to expand Sonder by introducing new features like a generative AI assistant and more advanced social components, while continuing to refine the user experience and engagement. Our goal is to gradually deploy updates, gather feedback, and scale the app to a broader audience over time.

Built With

Share this project:

Updates