Quickstart - Get started with commenting in Handsontable using Liveblocks and Next.js
Liveblocks is a realtime collaboration infrastructure for building performant
collaborative experiences. Follow the following steps to start adding a
commenting experience to your Next.js /app directory application using the
hooks from @liveblocks/react and the
components from
@liveblocks/react-ui.
Quickstart
Install Liveblocks
Every package should use the same version.
TerminalInitialize the
liveblocks.config.tsfileWe can use this file later to define types for our application.
TerminalDefine thread metadata
Inside the new
liveblocks.config.tsfile, define the metadata shape for threads. Metadata is used to attach comment threads to table cells.liveblocks.config.tsImport default styles
The default components come with default styles, you can import them into the root layout of your app or directly into a CSS file with
@import.app/layout.tsxAdd comment cell styles
Add CSS for the comment pins in your table cells. The trigger is hidden by default and appears when hovering or when the composer is open.
app/globals.cssCreate a Liveblocks room
Liveblocks uses the concept of rooms, separate virtual spaces where people collaborate, and to create a realtime experience, multiple users must be connected to the same room. When using Next.js'
/approuter, we recommend creating your room in aRoom.tsxfile in the same directory as your current route.Set up a Liveblocks client with
LiveblocksProvider, join a room withRoomProvider, and useClientSideSuspenseto add a loading spinner to your app.app/Room.tsxCreate thread context for your table
Use React context to set up cells and thread state for your table with
useThreads, allowing cells to retrieve their comments.app/CellThreadContext.tsxCreate a custom comment cell
Create a custom cell renderer for your table that displays comment pins alongside cell values using
CommentPin,FloatingComposer,FloatingThread,useSelf, and the context we created. Each cell shows a pin that opens a popover for creating or viewing comment threads.app/CommentCell.tsxUse Liveblocks hooks and components with Handsontable
Set up Handsontable with your
CellThreadProvidercontext. Import yourCommentCellcomponent and use it as a custom cell renderer, and replace the table data with your own. Learn more on the Handsontable website.app/CollaborativeApp.tsxAdd the Liveblocks room to your page
Import your room into your
page.tsxfile, and place your collaborative app components inside it.app/page.tsxNext: authenticate and add your users
Comments is set up and working now inside Handsontable, but each user is anonymous—the next step is to authenticate each user as they connect, and attach their name and avatar to their comments.
Add your users to Comments
What to read next
Congratulations! You've set up the foundation to start building a commenting experience for your Next.js application.