| name | just-react-creator |
| description | Publish Just React creator content with the public Course Builder cb CLI. Use when creating or updating Just React sketch posts, adding local images to posts through Cloudinary uploads, uploading videos/media through multipart upload, logging in to Just React, or exploring the Just React content API. |
Just React Creator
Use the public cb CLI as the paved path. Keep output token-safe: never print auth tokens, local config files, or signed URLs unless the user explicitly needs the URL for a script.
Install and auth
If cb is missing, ask before installing or provide:
curl -fsSL https://github.com/badass-courses/coursebuilder-cli/releases/latest/download/install.sh | sh
Then authenticate:
cb auth login --app just-react
cb auth whoami --app just-react
For agent runs with an existing token, prefer environment variables:
export JRE_TOKEN="..."
cb auth whoami --app just-react --token "$JRE_TOKEN"
Explore the API
Start with:
cb app list
curl -s https://www.justreact.dev/api/content-model | jq .
Just React creator content defaults to post resources for sketches/thoughts. Published public posts need:
{
"state": "published",
"visibility": "public"
}
Use drafts/unlisted unless the user explicitly wants the post live.
Create a sketch post
cb resource create \
--app just-react \
--body '{
"type": "post",
"title": "My sketch title",
"fields": {
"title": "My sketch title",
"slug": "my-sketch-title",
"body": "Markdown body goes here.",
"state": "published",
"visibility": "public"
}
}'
Save the returned id for updates and media attachment.
Verify:
cb resource get my-sketch-title --app just-react
Add images to posts
Posts can reference images directly in Markdown:

If the image is already hosted
Update the post body with a Markdown image reference:
cb resource update <post-id> \
--app just-react \
--body '{"fields":{"body":"Existing body\n\n"}}'
If the image is local
Use the Cloudinary image upload command. It signs the upload server-side, uploads the local file directly to Cloudinary, and returns Markdown with the final res.cloudinary.com URL.
Supported local image types: .jpg, .jpeg, .png, .gif, .webp, .avif.
Upload and print Markdown:
cb creator upload image ./image.png \
--app just-react \
--parent-resource-id <post-id> \
--alt "Alt text"
Upload and append the Markdown image to the post body:
cb creator upload image ./image.png \
--app just-react \
--parent-resource-id <post-id> \
--alt "Alt text" \
--append-markdown
Verify the post body after append:
cb resource get <post-id> --app just-react
Upload video/media
For video files, use durable multipart upload. This uploads the file and triggers downstream processing:
cb creator upload file ./video.mp4 \
--parent-resource-id <post-id> \
--app just-react
Use cb creator upload list-pending if a large upload is interrupted.
Safety rules
- Never print bearer tokens or
~/.config/coursebuilder/config.json.
- Prefer
--token "$JRE_TOKEN" in automation instead of pasting literal tokens.
- Create a tiny private/unlisted test post first when validating a new workflow.
- Use
state=published and visibility=public only when the user confirms it should go live.
- For images, use
creator upload image plus Markdown. For videos, use creator upload file.