
Twitter Clone developed using Go + Vue 3 + Vite + TailwindCSS + PostgreSQL + Redis
The Twitter Clone is an impressive endeavor aiming to replicate one of the most popular social networking platforms today. It's particularly exciting that this project represents a first attempt at developing a distributed system, showcasing a commendable commitment to tackling complex software challenges. The array of services and technologies employed suggests a robust architecture capable of handling high traffic and delivering a seamless user experience.
In this project, various services such as notifications, timeline management, and media handling are integrated to create a feature-rich social networking application. The chosen technologies, from Golang for internal services to PostgreSQL for the main database, reflect a thoughtful consideration of performance and scalability. This clone is not just about features; it addresses critical aspects like observability and high availability, making it a forward-thinking project.
Edge Service (GraphQL): Acts as the unified entry point for communication between the frontend and various backend services, leveraging GraphQL for flexibility.
Media Service: Facilitates the uploading and managing of multimedia content such as images and videos, enhancing user engagement with rich media.
Notifications Service: Implemented through Firebase Cloud Messenger, ensuring users receive real-time alerts about interactions, keeping them connected and engaged.
Search Service: Utilizes ElasticSearch for efficient searching and indexing, allowing users to quickly find tweets or users they’re interested in.
Timeline Service: Manages the display of tweets on users' timelines, ensuring a smooth flow of information in a well-organized manner.
Scalability and High Availability: Designed to handle significant user loads while remaining operational, ensuring that the service remains reliable under various conditions.
Metrics and Analytics: Incorporates tools for monitoring application performance and user interactions, allowing for data-driven improvements.
Docker and Nginx: Utilizes Docker for containerization and Nginx for load balancing, enhancing deployment processes and managing traffic efficiently.

Vite is a build tool that aims to provide a faster and leaner development experience for modern web projects
Vue.js is a lightweight and flexible JavaScript framework that allows developers to easily build dynamic and reactive user interfaces. Its intuitive syntax, modular architecture, and focus on performance make it a popular choice for modern web development.
Tailwind CSS is a utility-first CSS framework that provides pre-defined classes for building responsive and customizable user interfaces.
A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.