A step-by-step reference for PMs and content authors — creating learning paths, modules, and activities, and giving colleagues access to the Studio.
The Content Studio is the web-based admin panel for Bhasha Setu. It is where you create and manage all learning content — the paths, modules, activities, words, and media that learners see in the app.
The Studio is powered by Payload CMS. You do not need to know any code to use it. Every published change is automatically packaged into a content pack and downloaded by the app the next time a learner opens it, so content updates reach users without requiring an app release.
Access URL: The Studio is available at the address provided by your project lead. Credentials are issued separately — do not share them.
Open the Studio URL in your browser. You will see the login screen below.
Enter your email address in the Email field.
Enter your password in the Password field.
Click Login. You will be taken to the Dashboard.
If you have forgotten your password, click Forgot password? on the login page and follow the instructions sent to your email.
After logging in you land on the Dashboard — an overview of all content collections in the Studio.
The left sidebar groups collections into three sections: Learning Content (Languages, Learning Paths, Modules, Words, Activities, Media), Learners & Progress, and System (Packs, Users, Audit Logs). You will mainly work in the Learning Content group.
To let a team member create or edit content, you need to create a User record for them.
In the sidebar, click System → Users, then click Create New (top-right of the list).
Enter the person's Email address — this is their login username.
Set a temporary New Password and repeat it in Confirm Password. Share it with them securely; they can change it from the Account page after logging in.
The Role defaults to Content Editor, which is correct for most team members. Leave it unless you need to grant admin-level access.
Click Save. The account is active immediately.
All learning content is organised in three levels — Learning Path → Module → Activity. Understanding this structure is essential before you start creating content.
The list below shows all Learning Paths currently in the Studio. Each row shows the path title, its slug, the language it is in, its display order, and its review/publish status.
A Learning Path is the top-level container — equivalent to a course. To create one, click Learning Content → Learning Paths in the sidebar, then Create New.
The screenshot above shows an existing path. The same form is used when creating a new one — just start with blank fields.
| Field | What it does | Notes |
|---|---|---|
| Title | The human-readable name shown in the app. | Required. |
| Slug_id | A URL-safe identifier (e.g. classroom-talk) used internally. | Required. Use lowercase letters, numbers, hyphens only. |
| Description | A short sentence describing what the path covers. Shown in the app. | Optional but recommended. |
| Order | The position of this path in the full list (0 = first). | Required. Controls display sequence in the app. |
| Language | The language this path is for (e.g. Halbi). | Required. Select from the Languages collection. |
| Review_status | Workflow state: Draft → Approved → Published. | Required. Only Approved paths are included in content packs. |
When you are done filling in the fields, click Save Draft to save without publishing, or Publish changes to make the content live in the next pack build.
A Module is a lesson that sits inside a Learning Path. To create one, click Learning Content → Modules, then Create New.
| Field | What it does | Notes |
|---|---|---|
| Title | The module name shown in the app. | Required. |
| Slug_id | URL-safe identifier for this module. | Required. |
| Description | A brief summary of what this module covers. | Optional. |
| Order | Position within its parent Learning Path (0 = first). | Required. |
| Estimated Minutes | Approximate time to complete the module. Displayed in the app as a time estimate. | Defaults to 20 minutes. |
| Learning_path | The Learning Path this module belongs to. | Required. Choose from the dropdown. |
| Review_status | Workflow state: Draft → Approved → Published. | Required. |
A module can only belong to one Learning Path. If you need the same content in multiple paths, create a separate module for each.
An Activity is the smallest unit of learning — a single interaction such as a flash card set, a matching game, or a listening quiz. To create one, click Learning Content → Activities, then Create New.
The Type field determines what the learner will do. Select a type first — the Studio then reveals the payload editor for that type.
Available activity types:
| Type | Description |
|---|---|
| audio_narration | A short audio clip with accompanying text. |
| dialogue_builder | An interactive dialogue the learner constructs. |
| fill_in_the_blank | A sentence with a missing word the learner fills in. |
| flash_cards | A set of word/image cards the learner swipes through. |
| instructions | A screen with instructional text — no interaction required. |
| listening_quiz | Learner listens to audio and picks the correct answer. |
| matching_game | Learner drags pairs to match words with meanings or images. |
| picture_labelling | Learner labels parts of an image. |
| pronunciation_imitation | Learner records themselves repeating a spoken phrase. |
| video_snippet | A short video clip with optional comprehension question. |
| word_cloud | A visual display of vocabulary words for the learner to explore. |
Once a type is selected, the Activity content section appears. This is a structured JSON editor that accepts the data the activity needs — words, audio references, question text, and so on. Words and audio files are referenced by their IDs from the Words and Media collections.
| Field | What it does | Notes |
|---|---|---|
| Title | A descriptive name for this activity. | Required. |
| Module | The module this activity belongs to. | Required. |
| Type | The interaction type (see table above). | Required. Drives the payload structure. |
| Order | Position within the module (0 = first). | Required. |
| Activity content | Structured data defining the activity's content (questions, words, media). | Required once a type is selected. |
| Review_status | Workflow state: Draft → Approved → Published. | Required. |
Words and Media: Activities reference content from the Words collection (vocabulary items with pronunciations) and the Media collection (audio clips, images, videos). Make sure the words and media you need exist in those collections before creating activities that reference them.
Content you create is saved as a Draft until you explicitly publish it. Published content is reviewed and included in the next content pack — which the app downloads automatically.
Tip: Use the Review_status field as a workflow gate — keep content as Draft while writing, move to Approved for peer review, and Publish only when it is final. This prevents half-finished content from reaching learners.
All changes are tracked in the Audit Logs collection (sidebar → System → Audit Logs), so you can always see who edited what and when.