Github link to the Node JS API
Blabber is a social media platform that allows users to speak their mind. It communicates with an API that I built with Node JS.
It gives users many features found in prevalent social media sites such as Facebook and Instagram to play around with such as:
-
Liking posts and comments
Making an app that anyone can use
The site is built with a lot attention to make sure that the user experience is seamless. I wanted to make sure that anyone who is not technically savvy can intuitively navigate through the app. This requires that the app has the following:
- Mobile responsiveness
- Good color direction
- Filtered search feature
- Previewed images before loading
- LinkedIn-style comment tree
- Intuitive icons
Desktop view
Mobile view
Speed optimization techniques used
Fast performance is an important pillar of a seamless user experience. Nobody wants to wait more than 5 seconds for content to load. In the age of abundant information constantly bombarding the typical internet surfer, it is important that applications perform optimally. Firstly, I used code splitting to break down the application into smaller chunks that can be loaded independently, allowing the user to only download the code they need to view a specific page. This reduced the initial loading time of the app and improved the overall performance. Secondly, I optimized images using compression to reduce the file size of images without losing quality, which in turn decreased the loading time of the images. Additionally, the number of fetch request that the client site makes has to be as little as possible, for the reason that fetch requests increases the time it takes for the app to complete tasks. Tasks that require updating more than one document had to be combined in one fetch request. Finally, I implemented lazy loaded components, which means that components that are not immediately needed are not loaded until the user requests them, helping to reduce the initial load time of the page. By using these three techniques, I was able to significantly improve the speed and performance of my React JS app, resulting in a better user experience.
Technologies used
- ReactJS
- Tailwind CSS
- NodeJS
- Mongo DB
- Vite
- Multer
- Tiny MCE rich text editor
- Express