Bhasha Setu · MLE App

Content Studio
How-to Guide

A step-by-step reference for PMs and content authors — creating learning paths, modules, and activities, and giving colleagues access to the Studio.

Payload CMS Admin Content authors Updated June 2026
00 Overview

What is the Content 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.

01 Logging in

Logging in

Open the Studio URL in your browser. You will see the login screen below.

localhost:5221/admin
Content Studio login page
  1. Enter your email address in the Email field.

  2. Enter your password in the Password field.

  3. 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.

02 Dashboard

The Dashboard

After logging in you land on the Dashboard — an overview of all content collections in the Studio.

localhost:5221/admin
Content Studio dashboard showing collections overview

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.

03 Creating a team account

Giving a colleague Studio access

To let a team member create or edit content, you need to create a User record for them.

localhost:5221/admin
Create new User form showing Email, Password, and Role fields
  1. In the sidebar, click System → Users, then click Create New (top-right of the list).

  2. Enter the person's Email address — this is their login username.

  3. 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.

  4. The Role defaults to Content Editor, which is correct for most team members. Leave it unless you need to grant admin-level access.

  5. Click Save. The account is active immediately.

04 Content hierarchy

The content hierarchy

All learning content is organised in three levels — Learning Path → Module → Activity. Understanding this structure is essential before you start creating content.

Learning PathA full course in one language (e.g. "Classroom Talk"). Contains an ordered set of modules.
ModuleA lesson within a path (e.g. "Greetings"). Contains an ordered sequence of activities.
ActivityA single learning interaction (flash cards, quiz, matching game…). The smallest unit of 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.

localhost:5221/admin
Learning Paths list view showing seeded English paths with title, language, order, and status columns
05 Learning Paths

Creating / updating a Learning Path

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.

localhost:5221/admin
Learning Path edit form showing Slug_id, Title, Description, Order, Language, and Review_status fields

The screenshot above shows an existing path. The same form is used when creating a new one — just start with blank fields.

FieldWhat it doesNotes
TitleThe human-readable name shown in the app.Required.
Slug_idA URL-safe identifier (e.g. classroom-talk) used internally.Required. Use lowercase letters, numbers, hyphens only.
DescriptionA short sentence describing what the path covers. Shown in the app.Optional but recommended.
OrderThe position of this path in the full list (0 = first).Required. Controls display sequence in the app.
LanguageThe language this path is for (e.g. Halbi).Required. Select from the Languages collection.
Review_statusWorkflow 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.

06 Modules

Creating / updating a Module

A Module is a lesson that sits inside a Learning Path. To create one, click Learning Content → Modules, then Create New.

localhost:5221/admin
Module create form showing Title, Description, Order, Estimated Minutes, and Learning_path relationship fields
FieldWhat it doesNotes
TitleThe module name shown in the app.Required.
Slug_idURL-safe identifier for this module.Required.
DescriptionA brief summary of what this module covers.Optional.
OrderPosition within its parent Learning Path (0 = first).Required.
Estimated MinutesApproximate time to complete the module. Displayed in the app as a time estimate.Defaults to 20 minutes.
Learning_pathThe Learning Path this module belongs to.Required. Choose from the dropdown.
Review_statusWorkflow 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.

07 Activities

Creating / updating an Activity

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.

Step 1 — Choose the activity type

The Type field determines what the learner will do. Select a type first — the Studio then reveals the payload editor for that type.

localhost:5221/admin
Activity create form with the Type dropdown open showing all 11 activity types

Available activity types:

TypeDescription
audio_narrationA short audio clip with accompanying text.
dialogue_builderAn interactive dialogue the learner constructs.
fill_in_the_blankA sentence with a missing word the learner fills in.
flash_cardsA set of word/image cards the learner swipes through.
instructionsA screen with instructional text — no interaction required.
listening_quizLearner listens to audio and picks the correct answer.
matching_gameLearner drags pairs to match words with meanings or images.
picture_labellingLearner labels parts of an image.
pronunciation_imitationLearner records themselves repeating a spoken phrase.
video_snippetA short video clip with optional comprehension question.
word_cloudA visual display of vocabulary words for the learner to explore.

Step 2 — Fill in the activity payload

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.

localhost:5221/admin
Activity create form after selecting flash_cards type, showing the Activity content payload editor
FieldWhat it doesNotes
TitleA descriptive name for this activity.Required.
ModuleThe module this activity belongs to.Required.
TypeThe interaction type (see table above).Required. Drives the payload structure.
OrderPosition within the module (0 = first).Required.
Activity contentStructured data defining the activity's content (questions, words, media).Required once a type is selected.
Review_statusWorkflow 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.

08 Publishing & the app

Publishing and reaching learners

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.

Create / EditAuthor content in the Studio. Save as Draft at any point.
ReviewSet Review_status to Approved when the content is ready.
PublishClick Publish changes. The record is marked Published.
Pack buildThe system automatically rebuilds the content pack with all Published records.
App updateLearners' apps download the new pack on next open — no app release needed.

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.