Una plataforma de blog moderna y personalizable con un potente sistema de gestión de contenidos. Ideal para escritores, desarrolladores y creadores de contenido que buscan una solución profesional y fácil de usar.
// models/Post.js
const postSchema = new Schema({
title: { type: String, required: true },
content: { type: String, required: true },
slug: { type: String, unique: true },
author: { type: Schema.Types.ObjectId, ref: 'User' },
categories: [{ type: Schema.Types.ObjectId, ref: 'Category' }],
tags: [String],
publishedAt: Date,
status: { type: String, enum: ['draft', 'published'] }
});
// components/Comments.jsx
export function Comments({ postId }) {
const { data: comments, isLoading } = useQuery(
['comments', postId],
() => fetchComments(postId)
);
const { mutate: addComment } = useMutation(
(newComment) => postComment(postId, newComment),
{
onSuccess: () => {
queryClient.invalidateQueries(['comments', postId]);
},
}
);
return (
<div className="space-y-4">
{comments?.map((comment) => (
<CommentCard key={comment.id} comment={comment} />
))}
<CommentForm onSubmit={addComment} />
</div>
);
}
Explora el código y la demo para ver el blog en acción: