← Back to Projects

Twitter Clone

Livesocial

A full-featured Twitter/X clone replicating core social media functionality — tweeting, following, real-time feeds, and user profiles — built with Next.js and Firebase.

🌐 Live Site📁 GitHub RepoBy Kyle Parsotan · 2023

Problem

Social platforms require a scalable, real-time architecture with secure authentication, media handling, and dynamic feeds. Replicating this at scale is a complex full-stack engineering challenge.

Solution

Built a real-time social feed using Firebase Firestore for live data sync, Firebase Auth for Google and anonymous sign-in, and Cloudinary for image upload and optimization. Next.js App Router handles SSR for fast initial loads, while React-Redux manages client-side state.

Tech Stack

Frontend
Next.js (App Router, SSR)ReactReact HooksReact-ReduxTailwindCSSMaterial UI
Backend
Firebase Cloud Functions (implicit via Firestore rules)
Database
Firebase FirestoreFirebase Storage
DevOps
Vercel
Other
Firebase Authentication

Architecture

Frontend

Next.js App Router handles routing and SSR for fast first-paint. React-Redux manages global state (current user, feed data, notifications). TailwindCSS provides utility-first responsive styling; Material UI supplies icon and component primitives. Real-time feed updates are subscribed via Firestore's onSnapshot listeners, which push changes to the Redux store without a page refresh.

Backend

Firebase acts as the serverless backend. Firestore security rules enforce read/write access per user. Firebase Storage handles binary media (tweet images) with size limits enforced on the client. Authentication tokens are validated server-side on each Firestore request.

Database

Firestore NoSQL document model. Collections: users (profile data), tweets (content, likes, timestamps), followers (user relationships), notifications. Real-time listeners on the tweets collection power the live feed.

Features

Future Improvements

By Kyle Parsotan · 2023

Get to Work

Contact me for freelance work, full-time opportunities! I'm always open to discussing new projects, creative ideas, or opportunities to be part of your visions.