π’ Threads Clone Project is a full-stack web application that replicates the functionality of the popular social media platform "Threads" operated by Meta Platforms. Through this clone, you can explore and interact with features like posting and sharing text, images, videos, and engaging with other users' content through comments, likes, and reposts.
Frontend
Tooling
- ESLint
- Prettier
- lint-staged
- commitlint
- Cz-Customizable
Discover the culmination of our dedication and expertise, where every keystroke and pixel is a testament to our commitment to excellence.π’ The main features are:
- User authentication and registration system.
- Create, edit, and delete posts containing text, images, and videos.
- Interact with posts through comments, likes, and reposts.
- User profile pages showcasing posts and activity.
- Explore and discover content from other users.
- Responsive design for various devices.
- coming soon.
To get a local copy up and running follow these simple example steps.
Clone the project.
git clone git@github.com:shahadat3669/threads-clone.git
Go to the project directory.
cd threads-clone
you have to those tools in your local machine.
- NPM
- GIT & GITHUB
- Any Code Editor (VS Code, Brackets, etc)
Install all the necessary packages:
npm install
Create a .env.local
file in the root directory of your project and add the following environment variables:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=CLERK_PUBLISHABLE_KEY_HERE
CLERK_SECRET_KEY=CLERK_SECRET_KEY_HERE
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/onboarding
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
UPLOADTHING_SECRET=UPLOADTHING_SECRET_KEY_HERE
UPLOADTHING_APP_ID=UPLOADTHING_APP_ID_HERE
MONGODB_URL=MONGODB_URL_HERE
To obtain the Clerk keys needed for the environment variables, follow these steps:
- Sign up for a Clerk account at https://clerk.dev.
- Log in to your Clerk dashboard.
- Generate the Clerk Publishable Key and Secret Key from the dashboard.
- Replace
CLERK_PUBLISHABLE_KEY_HERE
andCLERK_SECRET_KEY_HERE
in your.env.local
file with the respective keys you obtained.
For the other NEXT_PUBLIC_CLERK_*
environment variables, you can configure the appropriate URLs based on your application's requirements.
To obtain the MongoDB URL, follow these steps:
-
Sign up for a MongoDB Atlas account at https://www.mongodb.com/cloud/atlas.
-
Create a new cluster by following the MongoDB Atlas documentation.
-
Once your cluster is set up, navigate to the "Database Access" tab and create a new database user with a username and password.
-
Go back to the "Clusters" view and click the "Connect" button on your cluster card.
-
Select "Connect your application" and copy the connection string provided. It should look like:
mongodb+srv://<username>:<password>@threads-cluster.jvsd6uc.mongodb.net/?retryWrites=true&w=majority
-
Replace
MONGODB_URL_HERE
in your.env.local
file with the respective url you obtained. Don't forget to change<username>
and<password>
in the connection string with the credentials you created.
To obtain the UploadThing keys, follow these steps:
- Sign up for an UploadThing account at https://uploadthing.com.
- Log in to your UploadThing dashboard.
- Generate the UploadThing Secret Key and App ID from the dashboard.
- Replace
UPLOADTHING_SECRET_KEY_HERE
andUPLOADTHING_APP_ID_HERE
in your.env.local
file with the respective keys you obtained.
The project is set up with development tools such as ESLint and Prettier to ensure code quality and consistency. Lint-staged, commitlint, and Cz-Customizable are configured to enhance the development workflow, providing a standardized and efficient approach to committing code.
In the project directory, run the project in the development server:
npm run dev
Open http://localhost:3000 with your browser to see the result.
The page will reload when you make changes.You may also see any lint errors in the console.
Launches the test runner in the interactive watch mode:
npm test
Builds the app for production to the build
folder.
npm run build
Your app is ready to be deployed!
Deploying the Threads Clone project can be done using various platforms and hosting services. Choose the one that best suits your requirements and follow their deployment guidelines to make your clone accessible to others.
Shahadat Hossain
Here are some potential future features that WebWrap Studio consider implementing to further enhance its web development services:
- Real-time Notifications: Implement a real-time notification system that alerts users when they receive likes, comments, or reposts on their posts. This feature would enhance user engagement and keep users informed about their interactions with others.
- User Interactions Analytics: Provide users with insights into how their posts are performing, including the number of likes, comments, and reposts. This feature could help users understand their audience better.
- Localization and Internationalization: Add support for multiple languages and regions, allowing users from different parts of the world to use the platform in their preferred language.
Contributions to the Threads Clone Project are encouraged! Whether you're fixing bugs, adding new features, or improving documentation, your input is valuable.
Feel free to check the issues page.
Give a βοΈ if you like this project!
- My Family.
Here are some frequently asked questions (FAQs) that users might have for WebWrap Studio, along with their respective answers:
-
What is the purpose of the Threads Clone Project?
- The Threads Clone Project is a full-stack web application aimed at replicating the features of the popular social media platform "Threads." It provides an opportunity for developers to learn and practice modern web development technologies while building a clone of the original platform.
-
What technologies are used in the Threads Clone Project?
- The Threads Clone Project is built using the MERN stack, which includes React, Next.js, TypeScript, MongoDB, Node.js, and Express.js. It also utilizes Tailwind CSS for styling and incorporates development tools like ESLint, Prettier, lint-staged, commitlint, and Cz-Customizable.
-
Can I use the code or design elements for my own project?
- While this project is open-source under the MIT License, we encourage you to review the license terms and ensure compliance before using any code or design elements for your own projects.
This project is licensed under the MIT License, allowing you to use, modify, and distribute the code for personal and commercial purposes.