- π Introduction
- π» Tech Stack
- β¨ Features
- π Known Issues
- π Quick Start
- π’ Shout Outs
Build a full stack Threads clone using Next.js 14+ with a redesigned look transformed from a Figma design, user interaction to community management, technical implementation, and various features, including nested deep comments, notifications, real-time-search, responsive for all types of devices and more.
- Next.js
- MongoDB
- Shadcn UI
- TailwindCSS
- Clerk
- Webhooks
- Serverless APIs
- Uploadthing
- React Hook Form
- Zod
- TypeScript
- Vercel
Authentication using Clerk for email, password, and social logins (Google and Facebook) with a comprehensive profile management system.
A visually appealing home page showcasing the latest threads and landing page for an engaging user experience.
A dedicated page for users to create threads, fostering community engagement.
A commenting feature to facilitate discussions within threads along with nested threads and commenting, providing a structured discussion.
Users now can delete a thread or a comment and also remove all the nested comments for the user profile screen.
A user and community search feature with pagination for easy exploration and discovery of other users and communities.
Display notifications on the activity page when someone comments on a user's thread, enhancing user engagement.
User profile pages for showcasing information and enabling modification of profile settings.
Follow a user to see its threads in your feed. Users can see their or others open users followers from the user profile screen.
Feature to make a profile private and remove all the profile threads from the feed of normal users.
Allow users to create new communities and invite others using customizable template emails.
A user-friendly interface to manage community members, allowing role changes and removals.
Enable admins to create threads specifically for their community and its members.
Display community profiles showcasing threads and members for a comprehensive overview.
Optimal performance and instantaneous page switching for a seamless user experience.
Utilize Next.js with Server Side Rendering for enhanced performance and SEO benefits.
Handle complex schemas and multiple data populations using MongoDB.
File uploads using UploadThing for a seamless media sharing experience.
Real-time events listening with webhooks to keep users updated.
Utilize middleware, API actions, and authorization for robust application security.
New Next.js layout route groups for efficient routing.
Data integrity with data validation using Zod.
Efficient management of forms with React Hook Form for a streamlined user input experience.
and many more, including code architecture and reusability.
- Webhook to add members to the community is failing on vercel.
- Switching between Organization and User account mess up the profile tab.
- UI of some of the features is implemented but functionality is not there like Repost and Send.
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
Cloning the Repository
git clone https://github.com/TayyabAsghar/yasac.git
cd yasac
Installation
Install the project dependencies using npm:
npm install
Set Up Environment Variables
Create a new file named .env
in the root of your project and add the following content:
MONGODB_URL=''
CLERK_SECRET_KEY=''
UPLOADTHING_APP_ID=''
UPLOADTHING_SECRET=''
NEXT_CLERK_WEBHOOK_SECRET=''
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=''
NEXT_PUBLIC_CLERK_SIGN_IN_URL='/sign-in'
NEXT_PUBLIC_CLERK_SIGN_UP_URL='/sign-up'
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL='/home'
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL='/onboarding'
Replace the placeholder values with your actual credentials. You can obtain these credentials by signing up for the corresponding websites on MongoDB, Clerk, and Uploadthing.
Running the Project
npm run dev
Open http://localhost:3000 in your browser to view the project.