Skip to content
CursareDocs
Sign in

Start here

  • Overview
  • Getting started
  • Platform concepts

Create

  • Content
  • Editor and blocks
  • Block reference

Publish & access

  • Publishing and access
  • Custom domain & white-label

Learners

  • Learner experience
  • Learners and enrollments
  • Progress and certificates

Teams & cohort

  • Teams
  • Cohorts

Sales

  • Offers & checkout
  • Payments & payouts
  • Affiliates
  • Insights and reports

Admin

  • Organization & security
  • Plans, trial & billing
  • Appearance
  • Members & roles
  • Audit log

Developer

  • Integrations
  • API keys & webhooks
  • MCP server
  • API reference
Explore the API
Create

Content

Content items are the publishable units of Cursare: each one brings together the authoring, distribution, learner experience, and commercial configuration of a course, lesson, or path. This page describes the data model, the two kinds of content, ownership, settings, and lifecycle.

The model: one row, updated in place

Each content item is a single row in the database, with two documents:

FieldRole
draftDocumentThe editable draft — what the team sees in the editor.
publishedDocumentWhat learners read — a frozen copy, written only when you publish.

The row's id is the content item's stable identity across the entire platform: enrollments, purchases, reviews, quiz history, and the reference edges of a composition all point to it. As long as publishedDocument is null, the content is a draft — invisible to learners and absent from the catalog.

There are no versions

Publishing does not create a new row. Cursare updates in place: publishing copies draftDocument into publishedDocument, and learners then see the latest content. Progress survives because it is indexed by the stable section ids (blocks), not by version number.

Two kinds: course and material

Every content item has a kind, and creation offers two doors:

KindCreated viaPublic slugOffersRead where
CourseNew courseYes — /{organization}/{slug} is its sales pageBorn with the primary Standard offer and always keeps exactly one primaryOn its own public page
MaterialNew materialNoneNone, not even archivedInside the courses that reference it

New course is title-first: you type the title and the URL handle is derived automatically (and stays editable before you confirm). Creating the course creates its primary Standard offer — free and unlisted — in the same transaction. Selling terms are configured in Enrollment. A course is never "not yet sellable": it is born whole.

The New course dialog: title, auto-derived editable handle, and optional price

New material asks only for a title — plus the owner, when the organization has teams. A material has no slug, no public page, and no commercial settings. It contains the lessons and activities learners read inside parent courses. Its editor makes that role explicit with Learning content and Used in, where the team can see and navigate every authorized parent course.

A material editor showing Learning content and the courses where it is used

The handle (slug) rules, for courses:

  • 1 to 120 characters, only lowercase letters, numbers, and hyphens (^[a-z0-9-]+$);
  • unique within the organization.

On creation you can also pick the owning team (optional) — see Ownership below.

From the list's ⋯ menu you can also Duplicate a content item: this creates a new draft with the title renamed to <title> (copy) and, for courses, a free slug in the -copy, -copy-2, … series. The copy carries over the packaging (kind, tags, theme, pricing, seat limit, and ownership), but never the published document, learners, reviews, or sales.

Titles and descriptions are sales surfaces

A course's title and description appear in the catalog and on its sales page, not just in the editor. Write them to communicate the expected outcome.

Changing kind: promote and demote

The kind is a ceremony, not a cage:

  • Promote to course — on a material's Advanced tab. The material gains a public handle and its primary Standard offer, and starts to sell like any course.
  • Turn into material — the reverse: the course's offers are deleted and its slug is released. It is refused while the course has learners, sales, any enrollment-request history, or campaigns targeting its offers — those all depend on the course's public, sellable existence.

See Publishing and access for how kind interacts with publishing and the public page.

Configuration areas

A content item's configuration is organized into grouped submenus. Each area has a specific responsibility; the editorial body lives only in the editor. Materials show only the areas that apply to them (no Audience, no Business).

GroupSubmenuPurpose
AuthoringEditorOne course surface containing the public Presentation, the ordered material Curriculum, and Related courses.
AuthoringLearning contentThe full lesson and activity editor. Materials only.
AuthoringUsed inAuthorized parent courses whose draft Curriculum includes the material. Materials only.
SetupBasicsHandle (courses, once published) and theme — the content's address and look. The title and description stay in the document header.
SetupDiscoveryTags, search appearance (meta title/description), social image, and the search-engine switch — how people find this course.
AudienceLearners, Cohort, InsightsWho is enrolled, the course's cohorts, and its reports. Courses only.
BusinessPricing / Enrollment / OffersThe course's offer(s): price, installments, approval, intake form, seat limit, listing. Courses only.
ManageAdvancedOwnership (the responsible team or person), the kind ceremony (promote/demote), and the danger zone.

Keep content separate from configuration

The editor should tell the lesson. Access rules, pricing, and audience belong in the configuration tabs, not in the editorial body. See the Editor for the body and blocks.

Authoring profiles

A course has a rich public Presentation and an ordered Curriculum. Presentation accepts public storytelling blocks but not lessons, graded activities, private learning media, or material references. Curriculum accepts only material references. A material keeps the complete learning editor: sections, media, code, activities, assessments, polls, and flashcards.

All three controls live in the same course Editor and the same course document. The Curriculum selector accepts an existing material or New material…, which creates an empty draft material and inserts it into the path. Each reference exposes its own editable URL segment; that address belongs to the course and does not give the reusable material a slug. Related courses uses the same compact selector pattern but accepts existing courses only; recommendations appear on the sales page and never grant learner access or count toward progress.

Publishing validates Curriculum references

A structurally valid course can publish with an empty Presentation or Curriculum, independently of its offer. References, when present, must target published materials in the same organization and keep the graph acyclic. Cursare reports every invalid item and leaves the previous published document and graph unchanged.

Ownership of a content item

The Ownership card appears with a second person

In a solo organization, ownership has one possible answer — you — so the Ownership card inside Manage → Advanced stays hidden and new courses simply belong to you. The Advanced tab itself remains, because the danger zone still applies. The card appears once the organization has a second member or a pending invite.

Every content item belongs to exactly one side — never both:

OwnerHow it looksWho is responsible
TeamteamId set, ownerId nullThe team's members, according to each one's role.
PersonownerId set, teamId nullThe owning person is responsible for all functions.
Organizationboth nullOnly organization owners/admins (content created via API).

When there is no team, the owning person is responsible for everything. Reassigning ownership (to a team or to an organization member) always leaves exactly one side set. Organization owners and admins are a fallback over any content item.

Functions and roles

A content item has three functions, and each function corresponds to a per-member role in the owning team (team_member_role):

Role (team_member_role)FunctionWhat it authorizes
editorcontentEdit the draft, publish, rename the handle, tags, theme, and duplicate.
financefinancePrice, currency, installments.
cohortcohortManage cohorts: administer, moderate, and make up the tutor pool.

Authorization resolution, from the highest ceiling down to the lowest:

  1. Organization owner/admin — passes on any function and also in the danger zone.
  2. Owning person — holds all of the content's functions.
  3. Member of the owning team — only the function whose role they carry.
  4. Organization content (no owner and no team) — grants only to organization owners/admins.

Listing sits on the boundary

Toggling catalog visibility (listed) can be done through either the content function or the finance function — it is the only setting shared between the two functions.

The danger zone and ownership require the highest ceiling

Transferring ownership and deleting a content item require being the owning person or an organization owner/admin. No team role reaches this far: an editor, finance, cohort, or learners member cannot delete or reassign a content item just by being on the team.

Catalog, listed, and unlisted but sellable

An organization's public catalog gathers its courses that are published AND listed (listed = true), from most recent to oldest. Storefront listing is paid-only: a course can be listed only once it has a price, so free courses are always unlisted and reachable by direct link only. Materials never enter the catalog at all — they have no public page. This separates two important cases:

  • A course's internal modules (materials) never appear as standalone cards: they are read inside the composition only.
  • Unlisted but sellable: a course can be out of the catalog and still have a price and be purchased via direct link. It is also the way out for a course that has already sold and that you want to take out of circulation — unlist instead of deleting.

Pricing and access

A course's commercial life lives in Enrollment — entry, price, delivery, and rules. With one option the workspace edits the learner path directly; with two or more it becomes Ways to enroll. The full model — the Standard offer born with the course, additional offers, campaigns, and buyer checkout — is in Pricing & checkout; the enrollment journey is in Learners and enrollments.

Two rules worth carrying everywhere: the currency locks after the first sale, and a course always keeps one active offer — archiving the last one is refused.

Tags and theme

  • Tags — free-text labels: type anything and it sticks. Names are normalized to lowercase and deduplicated, limited to 12 tags per content item, each up to 32 characters. The editor suggests tags your other contents already use, so spellings converge naturally.
  • Theme — sets the trio of accent colors the components render with; it must be a known theme.

Renaming the handle

Renaming a course's handle is safe by design: the id is the stable identity everywhere, and course URLs use edge slugs that belong to the parent content, so renaming a child never breaks the compositions that use it. Only the old public links start returning 404. Materials have no handle to rename.

Lifecycle

The recommended flow is draft → review → publish → follow-up → republish in place:

  1. Draft — edit the body in the editor; learners see nothing until you publish.
  2. Review — use the preview before publishing, and avoid changing commercial rules at the same moment you deeply change the content.
  3. Publish — validates the persisted authoring profile, copies the draft into publishedDocument, records publishedAt, and recalculates Curriculum edges and section ids. Materials publish too; reused materials show an impact warning.
  4. Follow-up — see engagement and outcomes in Insights.
  5. Republish — repeat as many times as you need; learner progress is preserved.

Danger zone (deletion)

Deletion is restricted to the owning person or an organization owner/admin and has two safety locks:

  • Referenced by other content — refused while another composition uses this content as a module. Remove the references first, otherwise the courses would be left hanging.
  • Already purchased — refused while any purchase exists. A purchase is a promise: unlist instead of deleting.

When deletion proceeds, enrollments, reviews, and quiz history are removed in cascade. Prefer taking it out of the catalog or halting new enrollments whenever there are still learners attached.

Next steps

EditorThe editorial body, the blocks, and the references that assemble a composition.Publishing and accessPublish in place, list, and control who gets in.Pricing & checkoutOffers, prices, campaigns, seats, and the buyer checkout.TeamsTeam ownership and per-member roles.
PreviousPlatform conceptsNextEditor and blocks

Your privacy choices

Necessary cookies keep Cursare working. Analytics and marketing technologies are optional and stay off until you choose them. Privacy Policy.

Sign-in, security and core platform functions.

Audience measurement such as Google Analytics.

Tag Manager and campaign attribution.