Refactor a Next.js 14 Page to Utilize Both Server and Client-side Rendering

Share this video with your friends

Send Tweet

To take advantage of Next.js app router, we need to separate our client components that need state from the rest of the page so we can load data on the server.

To do this we'll refactor the list of rooms into it's own RoomList component which will take the client-side React hooks with it. This way we can load all our rooms on the server and just pass it to RoomList which will start to stream the rooms as we create them.

The final step will be to turn the form for creating rooms into a server action. You'll notice that we will need to instantiate a new fauna client within the server action even though we have a client available in that same page.