> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asakiri.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> The content-first model behind every Asakiri course.

Asakiri uses a **content-first** domain model with a **context-first** authoring
workflow. Reusable knowledge lives in content records, media lives as independent
assets, and lessons and exercises compose *references* to those records and assets.

This is database-like behavior over local project data. It does not mean the course is
stored as a single database file. A course is a directory of small JSON files, specified
by the [course format](/build/file-formats).

## The three domains

<CardGroup cols={3}>
  <Card title="Content" icon="table" href="/data-structure/content-records">
    Reusable semantic records organized into collections. Lessons and exercises reference them.
  </Card>

  <Card title="Media" icon="photo-film" href="/data-structure/media">
    Local binary assets (audio, image, video) with technical metadata.
  </Card>

  <Card title="Composition" icon="link" href="/data-structure/bindings">
    Lessons and exercises bind to records, fields, items, or assets.
  </Card>
</CardGroup>

## How a course fits together

```
Course
└─ Units                 outline; each names an ordered list of lessons
   └─ Lessons            an ordered list of parts
      └─ Parts           rich-text | rich-media | exercise
         └─ Fragments    each binds to content, an asset, or an inline literal

Content
└─ Collections           a table with a stable ID and field definitions
   └─ Records            a globally unique ID and typed field values

Media
└─ Assets                a stable ID, kind, MIME type, and local file
```

* **Structure** ([Course structure](/data-structure/course-structure)) is the outline
  learners move through: units, lessons, and parts.
* **Content** ([Content records](/data-structure/content-records)) is the reusable
  knowledge: collections of records with typed fields.
* **Media** ([Media](/data-structure/media)) owns the binary files.
* **Bindings** ([Bindings and fragments](/data-structure/bindings)) connect the outline
  to the content and media it displays.
* **Exercises** ([Exercises](/data-structure/exercises)) separate what a learner sees
  from how a response is graded.

## Two ideas that hold it together

<AccordionGroup>
  <Accordion title="References are live and addressable by stable ID">
    A record, a field, a repeated item, and an asset each have a stable ID. Renaming a
    column or a displayed value never breaks a reference. Editing a record updates every
    place it is used. See [Reference lifecycle](/data-structure/reference-lifecycle).
  </Accordion>

  <Accordion title="Presentation and evaluation are separate concerns">
    An exercise renders fragments (what the learner sees) and grades against stable IDs
    or accepted-value bindings (never against duplicated display text). See
    [Exercises](/data-structure/exercises).
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.