Topics
Other useful links
Confesi (though the website is now laughably outdated), is a social media app concept I dreamt-up early March 2022 while in my university dorm room. It is now a startup I've been working on for almost two years.
The core idea was to create an iOS and Android app that would serve as a "town square" for college students to share "confessions" with each other (envision these confessions as snippets of niche campus gossip). At the time, numerous student-run Instagram pages were facilitating similar exchanges:
These posts were not only hilarious but also extremely popular. More examples can be found here.
To me, a programmer, this scenario presented an opportunity to unify these many scattered pages into a single, centralized app. Moreover, I observed that the concept of confessions was not unique to my school but was a common theme across numerous universities nationwide.
This realization kick-started the planning phase...
My initial prototype was a simple single-page website, conceptualized in Figma while sharing McDonald's with some floormates. Naturally, the vision expanded and evolved over time.
Here's a glimpse of what my original mockups looked like:
After my final exams that term, I dedicated the summer to learning the necessary technologies to bring this app to life. This encompassed not only programming languages but also system design principles—how to build a platform that could seamlessly support a large user base and maintain a structurally sound codebase.
Mid-summer marked the beginning of my journey with Javascript for this project. However, a couple months in, I realized that a website platform was not the ideal solution due to its lack of smoothness and native feel on mobile devices, our primary audience.
This led me to transition from React.js to React Native, allowing for mobile app development with nearly identical code. Yet, after a brief stint with React Native, I pivoted again, this time to Dart and Flutter, due to my familiarity and the potential for accelerated development and improved code quality.
This decision proved beneficial, and Flutter became the cornerstone of our mobile app development.
In the meantime, I welcomed two fellow coders from my university to the team, who advocated for rewriting the app's server in Rust, moving away from my initial Node.js prototype. This transition, while promising in terms of performance, significantly slowed down our development pace due to Rust's steep learning curve and lack of necessary libraries.
As the summer ended and our team expanded to four developers, we faced the reality of Rust's limitations and opted to switch our server to Go. This transition, though cumbersome, resulted in better-written, more modular code.
However, soon after this, life's demands led to the departure of my teammates, leaving me to continue the project solo. Despite the setbacks, progress continued, with courses and coding intermingling until another developer joined, breathing new life into the project.
By February 2023, we were gearing up for a public release, aiming for September. Yet, developmental hurdles delayed our launch, underscoring our commitment to quality over rushed timelines.
Jumping to current day, we're still diligently working towards an eventual release, albeit one eons later than what we first expected. Building an app is hard!
Below is an overview of the various technologies employed throughout the project's evolution.
Server v1 (deprecated)
Server v2 (deprecated)
Server v3 (current)
Client v1 (deprecated)
Client v2 (deprecated)
Client v3 (current)
Website (current)
We have developed a functioning mobile app, website, and server; the simplicity of the setup is deceiving. However, we are not yet ready for alpha or beta testing, but we are working diligently towards that goal.
Bug fixes
Required features
Production readiness
If you're intrigued by the project and considering involvement, feel free to contact me here. I'm open to expanding the team to bring this project to fruition.
The rest of this article is comprised of screenshots partitioning some parts of the app. Enjoy!