State of Confesi

Posted February 16, 2024 • 4 min read
Bionic reading mode (b)
banner image

Prelude🔗

Topics

Other useful links

What is Confesi?🔗

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:

confession

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...

The story🔗

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:

figma mocks

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!

Nerdy tech stuff🔗

Below is an overview of the various technologies employed throughout the project's evolution.

Server v1 (deprecated)

  • Node.js
  • Express.js
  • Javascript
  • MongoDB

Server v2 (deprecated)

  • Rust
  • Docker
  • Actix-web
  • MongoDB

Server v3 (current)

  • Go
  • Docker
  • Firebase
  • Gorm
  • HTML/CSS/Javascript
  • Redis
  • Testify
  • AWS & GCP
  • Edge & pub-sub functions
  • GitHub Actions
  • PostgreSQL
  • Bash
  • Cron jobs

Client v1 (deprecated)

  • React.js
  • SCSS
  • HTML/CSS/Javascript

Client v2 (deprecated)

  • React Native
  • CSS
  • HTML/CSS/Javascript

Client v3 (current)

  • Flutter & Dart
  • Firebase
  • Assorted native iOS & Android code
  • Lots of weird device config files

Website (current)

  • Webflow
  • GCP

Current progress🔗

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.

Pending tasks🔗

Bug fixes

  • Addressing race conditions in comments and voting
  • Resolving push notification routing and caching issues
  • Rectifying minor issues with infinite feed pagination
  • Smoothing out the Reddit-like threading of comments
  • Etc.

Required features

  • Completing reporting/support/spam functionality

Production readiness

  • Conducting large-scale app testing
  • Finalizing Docker deployments
  • Navigating app store review processes
  • Preparing cloud environments (AWS, GCP, Firebase)
  • Implementing marketing strategies

To developers🔗

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.

A glimpse of the app🔗

The rest of this article is comprised of screenshots partitioning some parts of the app. Enjoy!

app app

app app app app app app app app app app app app app app app app app app app app app app app app app app app