
Twitter clone built in Next.js + TypeScript + Tailwind CSS using Cloud Firestore and Storage
Here are the steps to run the project locally.
Clone the repository
git clone https://github.com/ccrsxx/twitter-clone.gitInstall dependencies
npm iCreate a Firebase project and select the web app
Add your Firebase config to .env.development. Note that NEXT_PUBLIC_MEASUREMENT_ID is optional
Make sure you have enabled the following Firebase services:
Install Firebase CLI globally
npm i -g firebase-toolsLog in to Firebase
firebase loginGet your project ID
firebase projects:listSelect your project ID
firebase use your-project-idAt this point, you have two choices. Either run this project using the Firebase on the cloud or locally using emulator.
Using the Firebase Cloud Backend:
Deploy Firestore rules, Firestore indexes, and Cloud Storage rules
firebase deploy --except functionsRun the project
npm run devUsing Firebase Local Emulator:
Install Java JDK version 11 or higher before proceeding. This is required to run the emulators.
Set the environment variable NEXT_PUBLIC_USE_EMULATOR to true in .env.development. This will make the app use the emulators instead of the cloud backend.
At this point, you can run the following command to have a fully functional Twitter clone running locally:
npm run dev:emulatorsNote: 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, replaceyour-project-idwith your project ID: https://console.firebase.google.com/u/0/project/your-project-id/firestore/indexes
Optional:
.env.development. I hope Elon Musk doesn't make this API paid ?.