Red Stet
← Back to Help
Help · For teachers · Tier 3 — Advanced features

Saving your own assignment templates

Once an assignment shape works — instructions, rubric, attempt cap, peer-review setup — save it as a template. The next assignment is a tweak away, not a rebuild.

Why templates exist

A working assignment carries a rubric, style preset, attempt cap, target word counts, sub-tasks, reference links, self-assessment prompts, sometimes peer review, sometimes variants. Fifteen-plus decisions deep.

Click From template… in the New Assignment modal, pick the shape, the form fills in. Week-specific content — passage, question, due date — you fill in fresh.

Templates are shapes, not lessons. Structural decisions that travel across weeks, classes, and years.

New assignment ? Help From template… Save as template
Top-right of the New Assignment modal. From template… opens the picker; Save as template captures whatever you've filled in.

The starter templates Red Stet ships

The picker isn't empty on day one. Six starters cover common secondary and early-college writing patterns:

  • Close reading essay — 500–800 words, MLA, 4-criterion rubric.
  • Research paper — 1200–1500 words, APA, 5-criterion rubric with counterargument; 2-attempt cap.
  • Persuasive essay — 600–900 words, 4-criterion rubric weighted toward audience awareness.
  • Reflection journal — 300–500 words, single attempt, no rubric — engagement-graded.
  • Discussion post — 150–250 words plus a reply, single attempt, no rubric.
  • All options demo (kitchen sink) — every field populated (see below).

Starters live in code, identical for every teacher. To tweak one, apply it, change what you want, then Save as template.

Starters are deliberately small. Enough to seed the picker, not enough to substitute for your own library.
Pick a template
Starter templates ship with Red Stet. Your saved templates appear below.
Cancel
Starter templates
Close reading essayStarter MLA · 4-criterion rubric
Write a 500–800 word close reading of a single passage from the assigned text. What we're looking for…
Research paperStarter APA · 2 attempts · 5-criterion rubric
Write a 1200–1500 word research paper on the assigned topic, supported by at least 5 sources…
Reflection journalStarter 1 attempt
Write a 300–500 word reflection on the week's reading, discussion, or activity. Use the 4 Rs…

Saving an assignment as a template Save as template

Fill out the New Assignment modal, click Save as template in the header. The name prompt pre-fills with the assignment's title — usually just hit Enter.

The name is for you; students never see it. "Close reading — short prose" beats "Lit assignment 1". Picker sorts by most-recently-updated.

To build outside the modal: the Assignment templates panel on the dashboard has a button for a dedicated editor. Useful when stocking the library at the start of a year.

Title + instructions are required. If either is empty, Red Stet alerts "Fill in title + instructions first." Everything else is optional.
Save as template
Click → name prompt → form lands in your library.

What actually gets saved

The modal's Save-as-template button captures the reusable fields:

  • Title — placeholder for the new assignment.
  • Instructions — the markdown body.
  • Style presetchicago, ap, apa, or mla.
  • Max attempts.
  • Rubric — criteria with names and descriptors.

The dashboard editor adds two more: a description (note to your future self) and a default due-date offset in days — 14 pre-fills the due date two weeks out.

What's not captured by Save-as-template: sub-tasks, reference links, self-assessment prompts, peer-review config, variants, target word/page/citation counts. The kitchen-sink starter shows these exist — apply it and tweak.

Applying a template to a new assignment From template…

Open the New Assignment modal, click From template…. The picker has two sections:

  • Starter templates — always visible.
  • Your saved templates — newest-touched first. Empty libraries show "no saved templates yet."

Each card shows name, meta summary (style preset, attempt cap, rubric size), and the first 180 instruction characters. Click; modal fills in, picker closes. Fill in the assignment-specific bits — due date, classroom.

Applying overwrites whatever you'd typed. Cancel if you opened the picker by mistake.

Pick a template
Starter templates ship with Red Stet. Your saved templates appear below.
Cancel
Starter templates
Close reading essayStarter MLA · 4-criterion rubric
Your saved templates
Close reading — short proseSaved MLA · 2 attempts · 4-criterion rubric
Write a 500–800 word close reading of a single paragraph. Pick a passage that's doing something…
Weekly journalSaved 1 attempt

Per-teacher scope — yours alone, with explicit sharing teacherUserId

Every template you save is yours. Backend keys each row by teacherUserId; listMine returns only the caller's rows. Co-teachers don't see your library; you don't see theirs.

To bridge, Share any saved template into one of three scopes:

  • Co-teachers — every staff member on the originating classroom gets a notification; the template lands in their Shared with you sub-section.
  • Department — set a label (e.g. "English department"). Anyone with the same label sees the row.
  • Organization — school-wide. The cross-org admin surface ships in Phase 9; today, org rows land in the table but only the owner sees them.

Sharing is a copy. The receiver's Import mints a new row — no live link back. Later edits to the shared template don't reach existing imports.

JSON export / import

For teachers in different orgs, the Shared with you section has an upload-arrow button for a JSON file. Each row has a download arrow to export. Same shape as shareAssignment minus storage IDs. Hand off the file however; the receiver imports through the same button.

You
5 templates
Close reading — short prose
Research paper — APA
Weekly journal
Co-teacher
3 templates
(invisible to you)
Dept. chair
12 templates
(invisible to you)
Three teachers in one school, three separate libraries. The by_teacher index keys each template to its owner.

Cross-classroom reuse

Templates scope to you, not to a class. Save one in AP Lit Period 4 and it's in the English 11 Period 2 picker immediately. No per-class list, no "copy to another class" step.

At term boundaries: when Fall AP Lit archives and Spring AP Lit spins up, no migration — templates were never bound to the class. Build once, apply from any section.

AP Lit · P4
Picker shows:
6 starters
5 your saved
English 11 · P2
Picker shows:
6 starters
5 your saved
Creative · P6
Picker shows:
6 starters
5 your saved
Same library, three classrooms. Save once, apply anywhere.

Managing the library — edit, rename, delete

The Assignment templates panel on the dashboard manages everything. Each row carries name, meta (style preset, attempt cap, rubric size, due offset), and three actions: Apply, Edit, Delete.

Edit

Opens the full editor. Save replaces the old version.

Apply to new assignment

Starts from the dashboard, not the modal: click Apply, the active classroom's create form opens pre-filled.

Delete

Removes the template. Past assignments stay intact — each got its own copy at apply time (see copy-on-apply). Permanent; no undo.

Assignment templates
Close reading — short prose MLA · 2 attempts · 4-criterion rubric · due +14d
Apply Edit Delete
Research paper — APA APA · 5-criterion rubric · due +21d
Apply Edit Delete
Weekly journal 1 attempt · instructions only
Apply Edit Delete

Personal reflection-prompt templates personalReflectionPromptTemplates

A narrower second library: reflection prompts. Each template is one tab's worth of self-assessment questions — same shape as assignments.selfAssessmentPrompts.

The reflection-prompts editor inside the modal has two controls:

  • Load from template… — dropdown, newest first. Picking one replaces the prompts on the active attempt tab.
  • Save as template — captures the visible attempt's prompts. Copied by value; later assignment edits don't write back.

Per-teacher scope (ownerUserId). No shared surface.

Source: personalReflectionPromptTemplates.listMine, create, remove. No edit mutation — delete and re-save to change one.

// Convex table
personalReflectionPromptTemplates
ownerUserId id<users>
name string
prompts array
createdAt number

Where templates are stored teacherAssignmentTemplates

One Convex table — teacherAssignmentTemplates — in convex/teacherAssignmentTemplates.ts. Each row:

  • teacherUserId — owner; by_teacher index.
  • name, description — labels.
  • title, instructions — assignment-shape fields.
  • stylePreset, maxAttempts, rubric, defaultDueOffsetDays — pre-fill values.
  • createdAt, updatedAt.

Three mutations: create, update, remove. All require teacherStatus === 'verified'; update/remove check ownership.

Starters live in public/app.js as STARTER_TEMPLATES. Never hit Convex, never count against your total, change only on app deploy.

// Convex table
teacherAssignmentTemplates
teacherUserId id<users>
name string
description? string
title? string
instructions string
stylePreset? enum
maxAttempts? number
rubric? any
defaultDueOffsetDays? number
createdAt number
updatedAt number
.index('by_teacher')
 
// In-code, not stored
STARTER_TEMPLATES (app.js)
6 shapes, identical for everyone

Copy-on-apply — past assignments don't change

Apply copies the template's fields into the new assignment. From there the assignment owns its own rubric, instructions, everything. Edit the template later — the published assignment doesn't move. Delete the template — the assignment is untouched.

The flip side: a typo fix doesn't propagate. Past assignments keep the typo until you edit them directly.

Template: Close reading — short prose
Edited: today Rubric criterion renamed
Past assignments that used it
Close reading — Beloved, ch. 3 Unchanged · own rubric copy
Close reading — Bishop, "One Art" Unchanged · own rubric copy
The template moves. Assignments it spawned stay frozen.

The "All options" demo template

The last starter — All options demo (kitchen sink) — is a tour, not a pattern. Every field the modal supports is populated. Fastest way to see how each section renders for students.

What's in it:

  • Markdown body with headings, bold/italic, inline code, block quote, code block, link.
  • Starter body — text Red Stet pre-fills into the student's doc.
  • Target word count (600–900), pages (2–4), citations (3).
  • 4-criterion rubric.
  • Four sub-tasks with weights.
  • Three reference links.
  • Three self-assessment prompts (two required, one optional).
  • Peer review, two reviewers, anonymized.
  • Two variants — esl and extended-time.

Apply to a throwaway assignment and walk the modal; apply to a sandbox student account and see the other end. Creating an assignment covers each section in detail.

Not curriculum. Strip the demo language before shipping, or use as exploration only.
All options demo (kitchen sink)Starter MLA · 3 attempts · 4-criterion rubric
This template demonstrates every option. Use it to see how each section renders in the student's view. Strip out the bits you don't want…
Fields populated: title · instructions (with markdown) · starter body · style preset · max attempts · tags · target words/pages/citations · rubric · sub-tasks · reference links · self-assessment prompts · peer review · variants

Sharing surfaces — where templates land for others

Receivers see shared templates in the Shared with you sub-section under Assignment templates. Each row: owner's name, scope ("co-teachers", "department", or "org"), preview with rubric count + peer-review flag.

Two actions per row:

  • Import copies into the receiver's library. From there: edit, share onward, or apply.
  • Export (down arrow) downloads as JSON for hand-off to another org.

Co-teacher scope fires a bell notification. Department and org scopes are silent — discovered on next visit.

Close reading — short proseShared Maya Chen · co-teachers · 4 criteria
Read a short passage carefully and write a 250-word response addressing claim, evidence, and voice.
A shared template as the receiver sees it. Import to copy into your own library.