Version-controlled curriculum source and signed static delivery for the WordBloom iOS app. This public repository contains no child profiles, responses, recordings, analytics, credentials, or private signing keys.
- Edit
scripts/generate-year.mjsfor the year curriculum, then runnpm run generate, or add a reviewed pack undersource/packs/. - Keep published objective, activity, book, and page IDs permanent.
- Update
release.json: incrementsequence, select the pack, and set its publication time. - Increment the pack's
versionwhenever its bytes change. - Run
npm testand open a pull request. - Merge to
main. GitHub Actions validates, signs, and publishes the release to GitHub Pages.
Production channel:
https://ianq.github.io/WordBloom-Content/production/channel.json
The iOS app verifies the detached Ed25519 signatures and SHA-256 manifest digest before storing or activating content. A failed update leaves its bundled or previous verified content active.
Books live in the pack's books array. Each book has a stable ID, title, reading level,
theme, emoji, and ordered pages. Publishing a new signed pack updates both lesson content
and the Books tab atomically; the app keeps bundled books available for offline use.
The generated year path contains six progressive levels and 52 weekly units. Four
activities per skill per week, each requiring two successful encounters, provide 416
five-game mastery sessions before extra adaptive review caused by mistakes or hints.
See CURRICULUM.md for the scope, sequence, daily routine, and editorial safeguards.
This is an evidence-informed foundation, not a government-validated SSP programme or
a substitute for reading with an adult; obtain literacy-specialist review before making
formal educational efficacy claims.
CONTENT_SIGNING_PRIVATE_KEY_FILE=/path/to/private.pem npm run buildNever commit the private key. The production key is stored only as the GitHub Actions secret CONTENT_SIGNING_PRIVATE_KEY; public-key.txt is safe to distribute and is embedded in the app.