Public source registry for the learner-facing surfaces rendered by Cursare. It does not contain dashboard, admin, authoring or generic Cursare application components.
The browsable installed source is under registry/learner.
The hosted catalog is available at cursare.github.io/ui.
course-cardcourse-cataloglearner-homecurriculum-journeyenrolled-course-homecourse-playercursare-course-player— loads published learner-safe content from the Cursare API by idcourse-shellcourse-outlinestudy-toolsintake-formblocks— the complete learner platform
learner-foundation and learner-runtime are internal registry dependencies installed
automatically when a surface needs them.
Add the hosted namespace to components.json:
{
"registries": {
"@cursare": "https://cursare.github.io/ui/r/{name}.json"
}
}Install the complete learner platform:
bunx shadcn@4.14.0 add @cursare/blocksOr install one focused surface:
bunx shadcn@4.14.0 add @cursare/course-cardFor API-backed delivery, install the server adapter:
bunx shadcn@4.14.0 add @cursare/cursare-course-playerConfigure the organization API key once in trusted server code, then pages only need the content id:
import {
createCursareCoursePlayer,
} from "@/components/cursare/cursare-course-player"
const apiKey = process.env.CURSARE_API_KEY
if (!apiKey) throw new Error("CURSARE_API_KEY is required")
export const CursarePlayer = createCursareCoursePlayer({ apiKey })
export default function CoursePage() {
return <CursarePlayer contentId="content-id" />
}The key is sent only from the server to GET /api/v1/contents/{id}/learner; never expose it
through a public browser environment variable.
Without configuring a namespace, use the item URL directly:
bunx shadcn@4.14.0 add https://cursare.github.io/ui/r/blocks.jsonImport the learner styles once:
@import "./components/cursare/styles.css";
@import "./components/cursare/composer/viewer/styles.css";The catalog uses the shadcn registry protocol and CLI. Required COSS/Base UI primitives are included as source dependencies of each learner item, so consumers do not need a second registry and keep full ownership of the installed code.
bun install
bun run checkThe Cursare monorepo is canonical. This repository contains the generated registry artifacts plus a materialized, browsable view of their source.
From this repository, export the current learner registry from a local Cursare checkout and validate the exact consumer installation:
bun run registry:sync ../cursare
bun run checkThe automated workflow uses the same command. Synchronization only flows from the canonical Cursare learner packages into this public distribution.
MIT. See LICENSE and THIRD_PARTY_NOTICES.md.