• Stars
    star
    720
  • Rank 62,908 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Twitter clone built in Next.js + TypeScript + Tailwind CSS using Cloud Firestore and Storage

Twitter clone built in Next.js + TypeScript + Tailwind CSS using Cloud Firestore and Storage

Preview 🎬

showcase.mp4

Features ✨

  • Authentication with Firebase Authentication
  • Strongly typed React components with TypeScript
  • Users can add tweets, like, retweet, and reply
  • Users can delete tweets, add a tweet to bookmarks, and pin their tweet
  • Users can add images and GIFs to tweet
  • Users can follow and unfollow other users
  • Users can see their and other followers and the following list
  • Users can see all users and the trending list
  • Realtime update likes, retweets, and user profile
  • Realtime trending data from Twitter API
  • User can edit their profile
  • Responsive design for mobile, tablet, and desktop
  • Users can customize the site color scheme and color background
  • All images uploads are stored on Firebase Cloud Storage

Tech πŸ› 

Development πŸ’»

Here are the steps to run the project locally.

  1. Clone the repository

    git clone https://github.com/ccrsxx/twitter-clone.git
  2. Install dependencies

    npm i
  3. Create a Firebase project and select the web app

  4. Add your Firebase config to .env.development. Note that NEXT_PUBLIC_MEASUREMENT_ID is optional

  5. Make sure you have enabled the following Firebase services:

    • Authentication. Enable the Google sign-in method.
    • Cloud Firestore. Create a database and set its location to your nearest region.
    • Cloud Storage. Create a storage bucket.
  6. Install Firebase CLI globally

    npm i -g firebase-tools
  7. Log in to Firebase

    firebase login
  8. Get your project ID

    firebase projects:list
  9. Select your project ID

    firebase use your-project-id
  10. Deploy Firestore rules, Firestore indexes, and Cloud Storage rules

    firebase deploy --except functions
  11. Run the project

    npm run dev

Note: When you deploy Firestore indexes rules, it might take a few minutes to complete. So before the indexes are enabled, you will get an error when you fetch the data from Firestore.

You can check the status of your Firestore indexes with the link below, replace your-project-id with your project ID: https://console.firebase.google.com/u/0/project/your-project-id/firestore/indexes

Optional:

  • If you want to get trending data from Twitter API, you need to create a Twitter developer account and get your API keys. Then add your API keys to .env.development. I hope Elon Musk doesn't make this API paid πŸ˜….
  • If you want to make the user stats synced with the deleted tweets, you need to enable the Cloud Functions for Firebase. Then deploy the Cloud Functions.

More Repositories

1

portofolio

My personal website built with Next.js, Tailwind CSS, Firestore, and Vercel
TypeScript
52
star
2

buburnusantara.com

A landing page for Bubur Nusantara restaurant builth with Vanilla JS
TypeScript
44
star
3

autobsi

Attendance script for My Best BSI
Python
19
star
4

pywebapp

Minigames web app built with Streamlit in Python
Python
17
star
5

shopping-cart

Simple ecommerce cart application built with Next.js and TypeScript
TypeScript
12
star
6

chat-app

Group chat app built with Next.js and TypeScript using Cloud Firestore
TypeScript
12
star
7

to-do-list

To Do List app built with React and TypeScript using Cloud Firestore
TypeScript
7
star
8

next-template

My Next.js Template
TypeScript
5
star
9

ccrsxx

A readme for my GitHub profile
5
star
10

react-audio-transcript

A prototype for a custom React audio component for work
TypeScript
4
star
11

learnify-frontend

Learnify frontend
TypeScript
4
star
12

emilia

My personal Discord bot
Python
3
star
13

memory-card

TypeScript
3
star
14

cv-application

TypeScript
3
star
15

etch-a-sketch

TypeScript
3
star
16

weather-app

TypeScript
3
star
17

my-neovim-config

My Neovim config
Lua
3
star
18

web-university

HTML
3
star
19

clippynote

A simple CLI for taking notes
Python
3
star
20

perfect-mpv

MPV settings that I use
Lua
3
star
21

learnify-backend

Learnify backend
JavaScript
3
star
22

link

A simple URL shortener built with Next.js + TypesScript + Prisma + Postgresql
TypeScript
3
star
23

tic-tac-toe

TypeScript
2
star
24

markdown-previewer

TypeScript
2
star
25

admin-dashboard

SCSS
2
star
26

word-scramble

HTML
2
star
27

risalamin.me

My Personal Site
TypeScript
2
star
28

nextjs-blog

TypeScript
2
star
29

cratt

Create React App with all things configured
Python
2
star
30

drum-machine

TypeScript
2
star
31

clock-timer-reminder

TypeScript
2
star
32

simple-form

TypeScript
2
star
33

final-java-project

Final Java project for my University
Java
2
star
34

rock-paper-scissors

TypeScript
2
star
35

simple-giphy-api

TypeScript
2
star
36

old-tic-tac-toe

TypeScript
2
star
37

hooks

TypeScript
2
star
38

landing-page

SCSS
2
star
39

transcript

A script that downloads the transcript of a YouTube video and translates it to indonesian.
Python
2
star
40

random-quote-machine

TypeScript
2
star
41

oop-example

Contoh Object Oriented Programming
Java
2
star
42

my-scripts

A collection of my personal utility script
Python
2
star
43

simple-library

TypeScript
2
star
44

react-router

TypeScript
2
star
45

image-carousel

TypeScript
2
star
46

typescript-calculator

TypeScript
2
star
47

rental-car-backend

Rental cars backend
JavaScript
2
star
48

violetkuma

Just my Uptime Kuma Theme
SCSS
1
star
49

restaurant-page

TypeScript
1
star
50

sample-express

PLpgSQL
1
star
51

violetfin

My Jellyfin Theme
SCSS
1
star
52

services

Collection of docker services I run on my Homelab
Python
1
star
53

binar-academy

JavaScript
1
star