React Chat Application - Feedback welcome!


I’m currently in the process of finishing up my portfolio site before I begin applying for full-time dev work within the next ~month. In the meantime, I wanted to share a one-off project I recently finished that will be going on that site. I’ve enjoyed working on this project a lot, and learned and refined my knowledge a ton from the process. Any and all feedback is welcome, but I’m primarily interested to hear perspectives on the code itself!

Personal background -

I started FCC this past summer and completed the program and obtained all certifications around November. Since then, I’ve been working on my own project ideas, deepening my knowledge through a continuous cycle of learning additional theory through other resources and nailing it down with hands-on practice, and overall just working constantly to cement a solid foundation from which to launch my dev career.

Project Background -

My aim was to build a standalone chat application, drawing functional/ mobile-first UI inspiration from other services (, Discord, etc.). I also wanted to use this as an opportunity to get more experience with React-Router and Redux, as well as ironing out some of my pain points on the overall architecture of React projects.

Currently, users can enter the app with just a username, select/ create channels, participate in multi-person chat channels, view online participants, and delete channels if they are the creator of the channel. I plan to continue experimenting with new features while in-between other projects including authentication, emoji and image support, persistent history, favorite channels, etc.

Tech Used -

-Material UI (and CSS-in-JS)
-Redux/ React-Redux

Thank you for taking the time to read my post and look at my project!


ive been meaning to make one with websockets (

1 Like

Thanks - appreciate it!

I actually had started another Node project with Eventually I’d like to build out the backend completely, strip out SendBird altogether, and replace with my own chat server. That was one of my goals with the architecture of the chat-client app - segmenting the “back-end” interaction and logic as much as possible so I could eventually plug-and-play with my own solution.

Here’s the code for my Node piece if you’re curious (in progress and messy):