Community Contributions
Published Jul 10, 2026
Praxis924's curriculum grows two ways: admins AI-generate lessons, and the community writes them. If you know a topic cold — a framework quirk, a pattern you've taught a dozen times, a gap you keep hitting in the library — you can submit it as a lesson. An admin reviews it, and once approved it joins the published curriculum, credited to you. This walkthrough covers the whole path: writing a submission at /contribute, what the reviewer sees at /admin/contributions, and what happens to your lesson after approval.
Who this is for
Any signed-in learner can contribute — you don't need admin rights. It helps to have finished a few lessons first so you know the house style: a Praxis924 lesson is built from four sections (main_explanation, practical_explanation, key_principles, summary) plus a handful of exercises (mcq, fill_blank, calculation). You're writing to that shape, so your submission slots cleanly into the reading and practice flow learners already use.
What you'll need
- A verified account (register + confirm your email). Contributions are tied to your identity because approved lessons are credited to you.
- A topic that belongs under an existing Technology → Framework path. Knowing where your lesson lives helps the reviewer place it.
- A rough draft of the four sections and a few exercises. You don't need them polished to publication grade — that's what review is for — but the clearer the draft, the faster the yes.
Step 1 — Open the contribute form
Go to /contribute. This creates a LessonContribution — a draft owned by you, separate from the live curriculum. Nothing you type here is visible to learners yet; it sits in a review queue until an admin acts on it.
Step 2 — Write the lesson
Fill in the four sections in order. Think of them as a teaching arc, not four disconnected blobs:
main_explanation— the core concept, explained plainly. Assume the reader is new to this specific idea but not to programming.practical_explanation— show it in use: a real snippet, a concrete scenario, the "here's when you'd reach for this" part.key_principles— the handful of rules or mental models that stick after the details fade.summary— a tight recap that reinforces the takeaways.
Then add exercises. Mix the kinds so learners get variety: mcq for recognition, fill_blank for recall, calculation for anything numeric. A few well-aimed questions beat a long quiz.
Tip: Write the way the AI-generated lessons read — direct, example-first, no filler. Consistent voice across the library is a feature, and it makes your lesson easier to approve as-is.
Step 3 — Submit for review
Submit when the draft is coherent. Your LessonContribution now enters the admin queue. You can move on; there's no live back-and-forth required at this stage.
Step 4 — What the reviewer does
An admin opens /admin/contributions and reads your submission against the same bar every lesson meets: accurate, well-scoped, correctly placed in the syllabus, and clean across all four sections and its exercises. The reviewer can approve it into the curriculum or send it back. On approval, the lesson joins the published library under its Technology → Framework path, moves into published status, and carries your credit.
When it goes wrong
Most rejections are fixable and come down to a small number of causes.
| Symptom | Likely cause | Fix |
|---|---|---|
| Sent back for revision | A section is thin, or an exercise is ambiguous | Flesh out the weak section; make each question have exactly one defensible answer |
| Placement questioned | Topic doesn't fit the Framework you chose | Re-scope to the right Technology → Framework, or narrow the lesson |
| Duplicate flagged | The library already covers this | Differentiate — go deeper, or pick the sub-topic that's genuinely missing |
| Stuck as a draft | Never actually submitted | Reopen /contribute and submit; a saved draft isn't in the queue |
Note: Approval is a human decision, not an automated pass. A reviewer weighing accuracy and fit is exactly what keeps the curriculum trustworthy — treat revision requests as the system working, not as a rejection of you.
What you get
When your contribution is approved it becomes a first-class lesson: learners browse it in /learn, read it in the focused viewer, practice its exercises in /practice/[lessonId], ask Lucy about it (she folds the lesson's content into her answers), and see it in progress tracking and spaced review. Because it's a published lesson, it also flows into the content pool export — the git-friendly Markdown + quiz YAML bundle — so your work can travel to other Praxis924 instances too. And your name rides along with it.
Next
- Start small: contribute one lesson that fills a gap you personally hit. A single sharp lesson is worth more than a sprawling half-finished one.
- After it's live, open it as a learner and run the exercises yourself — the fastest way to spot a confusing question is to answer it cold.
- Found a problem in someone else's lesson? Use the issue-report and discussion tools on the lesson instead of resubmitting — reviewers see those too.