Inspiration

Many people don’t speak up or ask for help when their real name is attached to a post, especially on sensitive topics like mental health or self-expression. Research has shown that individuals are significantly more likely to disclose symptoms of PTSD when their responses are anonymous rather than identifiable (e.g., 5.8% vs. 1.7% probable PTSD reporting [1]).

This problem becomes even worse when you factor in systemic bias. People from marginalized groups often face higher risks of being dismissed, labeled, or mistreated based on their identity (name, race, gender, background, etc.). Even when someone is simply trying to ask for support, identity-based assumptions can change how others respond, leading us to our solution.

What it does

SafeSpace is an unconventional social support network made to cover the gap that fails to address these challenges. By navigating topics (Spaces) users can click on interactive bubbles to see what threads exist inside the Space. Each thread is anonymous, no names, no judgment, no bias. Users can choose to share their name and contact individuals inside their thread to ask further questions or help others out privately.

Spaces stick close to other Spaces that relate to them. Allowing you to search Spaces and see other relevant Spaces if one fits your need better.

How we built it

We utilized Typescript and CSS (specifically TailwindCSS) as our primary assortment of languages. To handle our database, we used Convex to manage non-sensitive data. For our authentication we used Clerk to make sure the data is secure. To handle all routing, we used TanStack Router. We used Vite and React to manage our web hosting, and utilized Vercel to create a web deployment.

Other algorithms came into play, such as the Louvain method, which was useful to find out topic similarities and push Spaces that were related closer together into clusters. We did client-side user movement interpolations to avoid high stress on server rendering, and have users render certain elements locally instead.

Challenges we ran into

Our idea was ambitious. We needed to tackle many problems such as figuring out the best lightweight clustering method. Originally, the plan was to use the Leiden Algorithm but no library existed in typescript so we used the Louvain Method within graphology; specificially "graphology-communities-louvain".

Another was actually making sure the web application ran without lagging or stuttering. Since our method of navigation is by treating the place similarly to a game, rendering user movements efficiently, was one of the longest and most tedious processes.

Accomplishments that we're proud of

The project stayed true to our vision: a decluttered social network with a way to communicate effectively and anonymously. Overall, the aesthetic of our project is our favourite part personally. The Spaces feel alive with the way they breathe and animate across drifting.

What we learned

It was our first time working with a NoSQL database like Convex. To use it effectively was a challenge we put on ourselves, and it improved our understanding of how databases work. Moreover, it also brought us closer to the topic: combating systemic bias. This was a prompt that hit close to home. A world where people aren't judged for factors outside of their control, and can speak freely about things that affect them. That's exactly what SafeSpace provides.

What's next for SafeSpace

Next, we take our project, push marketing towards the local community, and use the feedback to effectively navigate the next steps for what SafeSpace needs to become a place no one has to worry about bias or exclusion.

Sources

[1] https://pmc.ncbi.nlm.nih.gov/articles/PMC3532328/

Built With

Share this project:

Updates