Build_Threads_Like_App
Build_Threads_Like_App
Install Prerequisites:
$ cd threads-clone
Create a Sign-in Page in `pages/sign-in.tsx` and protect routes using `withAuth` middleware.
3. Connect to MongoDB
Install MongoDB:
MONGODB_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/threads?retryWri
tes=true&w=majority
4. Define Models
userId: string;
content: string;
createdAt: Date;
});
export default mongoose.models.Post || mongoose.model<Post>("Post", PostSchema);
await connectMongo();
await post.save();
return res.status(201).json(post);
});
return res.status(200).json(posts);
useEffect(() => {
setPosts(data);
fetchPosts();
}, []);
return (
<div>
<h1>Threads Clone</h1>
{posts.map((post) => (
<div key={post._id}>
<p>{post.content}</p>
</div>
))}
</div>
);
e.preventDefault();
await fetch("/api/posts", {
method: "POST",
});
setContent("");
};
return (
<form onSubmit={handleSubmit}>
</form>
);
- Likes and Comments: Add `likes` and `comments` fields to the `Post` model and create related
APIs.
- Pagination: Use server-side rendering (SSR) or API pagination for large post feeds.
8. Deploy
$ vercel