CommentsComments - Enable feedback to any product effortlessly

  • Realtime
  • Customizable
  • Accessible
was created in 2021
Jonathan
Jonathan8m ago
@Alicia Is this correct?
Alicia
Alicianow
Can you double-check this @Liveblocks AI?
Liveblocks AI
Liveblocks AI2m ago
Yes, that sentence is correct. The date matches the doc metadata.
Nimesh
Nimesh36m ago
00:46 Can we remove the reverb here?
Liveblocks AI
Liveblocks AI12m ago
00:46 I can suggest a dry mix preset for that section if you’d like.
Olivier
Olivier16m ago
We should change this into a circle.
👍3
1
Liveblocks AI
Liveblocks AI8m ago
Good call. A circle would match the style guide better.
Chris
Chris2m ago (edited)
Can we make the logo bigger?
😅6
Liveblocks AI
Liveblocks AInow
The header logo is currently 24px. Bumping it to 32px would keep it within the 8px grid.
All threads
Steven
Steven16m ago
00:10 Can we switch these shots?
Pierre
Pierre5m ago
00:42 This looks a bit off. Look at the attached screenshots.
Liveblocks AI
Liveblocks AInow
The color grading at 00:42 differs from the previous shot. Adjusting the exposure should help maintain consistency.
Vincent
Vincent2m ago
01:12 I love the color grading! 👌
Steven
Steven
Reply to thread…Create a new thread…
Mark as resolvedAttach to current time
Comment
Send

Flexible -
Shape it to your needs

Adapt Liveblocks Comments to any app, be it a text editor, media player, or whiteboard, using custom metadata.

{  "threadId": "th_aFc3G9t2HvNkR8PqO_zU5L",  "metadata": {    "quote": "Which one?"    "resolved": false,  }}
{  "threadId": "th_X7m9R4_p5qOzE1VZ3JkY6u",  "metadata": {    "shape": "circle",    "x": 720,    "y": 142  }}
{  "threadId": "th_dOqjuyEV1ZR_A3k2Yk4hN",  "metadata": {    "time": 36    "priority": "important",  }}

Customizable -
Integrate flawlessly into your design

Rely on versatile ready-made components, or use primitives to build a completely custom interface using React.

Stacy
Stacy4h ago

@Marc This looks great!

Marc
Marc2h ago

@Liveblocks AI Could you check if our accent and radius values follow our design guidelines?

Liveblocks AI
Liveblocks AI1h ago

Yes, these values align with the design system. The --lb-radius and --lb-accent variables provide good flexibility for brand customization.

Stacy
Stacynow

Perfect, thanks!

Reply to thread…

Theme
Border radius
Accent color

Default components - Make it your own

Default components allow you to customize colors, spacing, and more, via CSS variables and classes.

Primitives - Above and beyond

Primitives are unstyled, headless components which allow you to create fully custom commenting experiences.

import { cn } from "src/utils/cn";import { Suspense } from "react";import {  Comment as CommentPrimitive,  Timestamp as TimestampPrimitive,} from "@liveblocks/react-comments/primitives";import { User } from "./User";
export function Comment({ comment, className, ...props }) { return ( <div className={cn(className, "p-4")} {...props}> <div className="flex items-center gap-3"> <span className="font-semibold"> <Suspense fallback={comment.userId}> <User userId={comment.userId} /> </Suspense> </span> <TimestampPrimitive date={comment.createdAt} className="text-sm text-gray-500" /> </div> <CommentPrimitive.Body className="prose mt-3" body={comment.body} components={{ Mention: ({ userId }) => ( <CommentPrimitive.Mention className="font-semibold text-blue-500"> @ <Suspense fallback={userId}> <User userId={userId} /> </Suspense> </CommentPrimitive.Mention> ), }} /> </div> );}

Notifications -
Keep users engaged in the conversation

Use Liveblocks Notifications to send emails, Slack notifications, and more—improving engagement and usage.

The biggest impact Liveblocks had on our business is faster time-to-market. We could go to market in record time and provide our enterprise customers with realtime collaboration and commenting features.

Dev ShekhawatDev Shekhawat, Software Engineer at Hashnode

Designed for developers

Liveblocks Comments comes with a set of pre-built React components. Get started for free today!

import "@liveblocks/react-comments/styles.css";import { Composer, Thread } from "@liveblocks/react-comments";import { useThreads } from "./liveblocks.config";
function Room() { const { threads } = useThreads(); return ( <div> {threads.map((thread) => ( <Thread key={thread.id} thread={thread} /> ))} <Composer /> </div> );}

Turn your product into the space where people and AI collaborate