jazz icon indicating copy to clipboard operation
jazz copied to clipboard

feat: add CoValue serialization for Server Component -> Client Component

Open gdorsi opened this issue 1 month ago • 1 comments

This PR makes it possible to pass CoValues from Server Components to Client Components.

This way it is possible to do SSR of CoValue data that's also reactive.

Example:

export default async function ServerSidePage(props: {
  params: Promise<{ id: string }>;
}) {
  const { id } = await props.params;
  const account = await JazzAccount.load(id, {
    loadAs: jazzSSR,
  });

  if (!account.$isLoaded) {
    return <div>{account.$jazz.loadingState}</div>;
  }

  return (
    <TodoList id={account.$jazz.id} preloaded={account.$jazz.export()} />
  );
}

On the client component:

export function TodoList({
  id,
  preloaded,
}: {
  id: string;
  preloaded?: ExportedCoValue;
}) {
  const me = useAgent();
  const list = useCoState(JazzAccount, id, { // The list is available during the SSR
    preloaded,
    select: (account) => {
      if (!account.$isLoaded) return account;

      return account.profile.todos;
    },
  });

Live example: https://jazz-nextjs-git-feat-ssr-data-passing-gcmp.vercel.app/account/co_zFwYcUJSgEC5F179Hamwx66c2SB

Only works with public data, for now...

gdorsi avatar Nov 12 '25 01:11 gdorsi

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
design-system Ready Ready Preview Comment Nov 26, 2025 11:05am
gcmp-homepage Ready Ready Preview Comment Nov 26, 2025 11:05am
jazz-nextjs Ready Ready Preview Comment Nov 26, 2025 11:05am
music-demo Building Building Preview Comment Nov 26, 2025 11:05am
passkey-demo Ready Ready Preview Comment Nov 26, 2025 11:05am
quint-ui Ready Ready Preview Comment Nov 26, 2025 11:05am
22 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
clerk-demo Ignored Ignored Preview Nov 26, 2025 11:05am
file-upload-demo Ignored Ignored Preview Nov 26, 2025 11:05am
form-demo Ignored Ignored Nov 26, 2025 11:05am
image-upload-demo Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-chat Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-chat-1 Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-chat-2 Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-filestream Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-homepage Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-image-upload Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-inspector Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-multi-cursors Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-organization Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-paper-scissors Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-richtext Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-richtext-prosekit Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-richtext-tiptap Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-todo Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-vector-search Ignored Ignored Preview Nov 26, 2025 11:05am
jazz-version-history Ignored Ignored Preview Nov 26, 2025 11:05am
passphrase-auth-demo Ignored Ignored Preview Nov 26, 2025 11:05am
reactions-demo Ignored Ignored Preview Nov 26, 2025 11:05am

vercel[bot] avatar Nov 12 '25 01:11 vercel[bot]

Jazz pre-release

Packages:

{
    "cojson-core-napi": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-wasm": "https://pkg.pr.new/garden-co/jazz/cojson-core-wasm@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "jazz-tools-codemod-0-18": "https://pkg.pr.new/garden-co/jazz/jazz-tools-codemod-0-18@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "jazz-tools-codemod-0-19": "https://pkg.pr.new/garden-co/jazz/jazz-tools-codemod-0-19@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson": "https://pkg.pr.new/garden-co/jazz/cojson@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-storage-do-sqlite": "https://pkg.pr.new/garden-co/jazz/cojson-storage-do-sqlite@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-storage-indexeddb": "https://pkg.pr.new/garden-co/jazz/cojson-storage-indexeddb@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-storage-sqlite": "https://pkg.pr.new/garden-co/jazz/cojson-storage-sqlite@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-transport-ws": "https://pkg.pr.new/garden-co/jazz/cojson-transport-ws@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "community-jazz-vue": "https://pkg.pr.new/garden-co/jazz/community-jazz-vue@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "create-jazz-app": "https://pkg.pr.new/garden-co/jazz/create-jazz-app@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cursor-docs": "https://pkg.pr.new/garden-co/jazz/cursor-docs@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "hash-slash": "https://pkg.pr.new/garden-co/jazz/hash-slash@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "jazz-run": "https://pkg.pr.new/garden-co/jazz/jazz-run@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "jazz-tools": "https://pkg.pr.new/garden-co/jazz/jazz-tools@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "jazz-webhook": "https://pkg.pr.new/garden-co/jazz/jazz-webhook@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "quint-ui": "https://pkg.pr.new/garden-co/jazz/quint-ui@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-darwin-arm64": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-darwin-arm64@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-darwin-x64": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-darwin-x64@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-linux-arm-gnueabihf": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm-gnueabihf@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-linux-arm64-gnu": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm64-gnu@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-linux-arm64-musl": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm64-musl@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-linux-x64-gnu": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-x64-gnu@9f9688c87b8fab8808421ad031da4e70fb7480c6",
    "cojson-core-napi-linux-x64-musl": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-x64-musl@9f9688c87b8fab8808421ad031da4e70fb7480c6"
}

View Commit

github-actions[bot] avatar Nov 25 '25 16:11 github-actions[bot]

Jazz pre-release

Packages:

{
    "cojson-core-napi": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-wasm": "https://pkg.pr.new/garden-co/jazz/cojson-core-wasm@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "jazz-tools-codemod-0-18": "https://pkg.pr.new/garden-co/jazz/jazz-tools-codemod-0-18@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "jazz-tools-codemod-0-19": "https://pkg.pr.new/garden-co/jazz/jazz-tools-codemod-0-19@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson": "https://pkg.pr.new/garden-co/jazz/cojson@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-storage-do-sqlite": "https://pkg.pr.new/garden-co/jazz/cojson-storage-do-sqlite@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-storage-indexeddb": "https://pkg.pr.new/garden-co/jazz/cojson-storage-indexeddb@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-storage-sqlite": "https://pkg.pr.new/garden-co/jazz/cojson-storage-sqlite@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-transport-ws": "https://pkg.pr.new/garden-co/jazz/cojson-transport-ws@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "community-jazz-vue": "https://pkg.pr.new/garden-co/jazz/community-jazz-vue@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "create-jazz-app": "https://pkg.pr.new/garden-co/jazz/create-jazz-app@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cursor-docs": "https://pkg.pr.new/garden-co/jazz/cursor-docs@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "hash-slash": "https://pkg.pr.new/garden-co/jazz/hash-slash@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "jazz-run": "https://pkg.pr.new/garden-co/jazz/jazz-run@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "jazz-tools": "https://pkg.pr.new/garden-co/jazz/jazz-tools@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "jazz-webhook": "https://pkg.pr.new/garden-co/jazz/jazz-webhook@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "quint-ui": "https://pkg.pr.new/garden-co/jazz/quint-ui@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-darwin-arm64": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-darwin-arm64@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-darwin-x64": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-darwin-x64@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-linux-arm-gnueabihf": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm-gnueabihf@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-linux-arm64-gnu": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm64-gnu@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-linux-arm64-musl": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm64-musl@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-linux-x64-gnu": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-x64-gnu@bc9120bf6f51c920cde1a3c7c4f459770333876e",
    "cojson-core-napi-linux-x64-musl": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-x64-musl@bc9120bf6f51c920cde1a3c7c4f459770333876e"
}

View Commit

github-actions[bot] avatar Nov 26 '25 10:11 github-actions[bot]

Jazz pre-release

Packages:

{
    "cojson-core-napi": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-wasm": "https://pkg.pr.new/garden-co/jazz/cojson-core-wasm@69ae29383c1a83be083db992d3060e67bc807afe",
    "jazz-tools-codemod-0-18": "https://pkg.pr.new/garden-co/jazz/jazz-tools-codemod-0-18@69ae29383c1a83be083db992d3060e67bc807afe",
    "jazz-tools-codemod-0-19": "https://pkg.pr.new/garden-co/jazz/jazz-tools-codemod-0-19@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson": "https://pkg.pr.new/garden-co/jazz/cojson@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-storage-do-sqlite": "https://pkg.pr.new/garden-co/jazz/cojson-storage-do-sqlite@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-storage-indexeddb": "https://pkg.pr.new/garden-co/jazz/cojson-storage-indexeddb@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-storage-sqlite": "https://pkg.pr.new/garden-co/jazz/cojson-storage-sqlite@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-transport-ws": "https://pkg.pr.new/garden-co/jazz/cojson-transport-ws@69ae29383c1a83be083db992d3060e67bc807afe",
    "community-jazz-vue": "https://pkg.pr.new/garden-co/jazz/community-jazz-vue@69ae29383c1a83be083db992d3060e67bc807afe",
    "create-jazz-app": "https://pkg.pr.new/garden-co/jazz/create-jazz-app@69ae29383c1a83be083db992d3060e67bc807afe",
    "cursor-docs": "https://pkg.pr.new/garden-co/jazz/cursor-docs@69ae29383c1a83be083db992d3060e67bc807afe",
    "hash-slash": "https://pkg.pr.new/garden-co/jazz/hash-slash@69ae29383c1a83be083db992d3060e67bc807afe",
    "jazz-run": "https://pkg.pr.new/garden-co/jazz/jazz-run@69ae29383c1a83be083db992d3060e67bc807afe",
    "jazz-tools": "https://pkg.pr.new/garden-co/jazz/jazz-tools@69ae29383c1a83be083db992d3060e67bc807afe",
    "jazz-webhook": "https://pkg.pr.new/garden-co/jazz/jazz-webhook@69ae29383c1a83be083db992d3060e67bc807afe",
    "quint-ui": "https://pkg.pr.new/garden-co/jazz/quint-ui@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-darwin-arm64": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-darwin-arm64@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-darwin-x64": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-darwin-x64@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-linux-arm-gnueabihf": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm-gnueabihf@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-linux-arm64-gnu": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm64-gnu@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-linux-arm64-musl": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-arm64-musl@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-linux-x64-gnu": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-x64-gnu@69ae29383c1a83be083db992d3060e67bc807afe",
    "cojson-core-napi-linux-x64-musl": "https://pkg.pr.new/garden-co/jazz/cojson-core-napi-linux-x64-musl@69ae29383c1a83be083db992d3060e67bc807afe"
}

View Commit

github-actions[bot] avatar Nov 26 '25 11:11 github-actions[bot]