CompositionStart free

Composition · Student writing & literary magazine · Free for schools · Early access · 2026

The writing desk for student authors — draft, revise with tracked revision colors, get readability feedback, and publish to the literary magazine, with a grammar engine designed to keep student text inside the school

Composition is the writing desk for student authors, writing teachers, and literary magazine advisers: a structured document editor where students draft and revise through tracked revision colors, with readability score shown live on the page as they write. Publishing sends adviser-approved pieces to the literary magazine or school newspaper from the same editor. The grammar and AP style engine — the @homeroom/grammar substrate with roster-aware dictionary — is built code. Grammar feedback is honest-off until the in-VPC LanguageTool host is provisioned: that provisioning is what ensures no student text is transmitted outside the school’s system. Student writing is owned by the school and the student author, never by the platform. Free for schools. Early access — no contract, no billing, no signup today.

Revision engine builtdraft, revise with tracked change colors, version history, and live Yjs collaboration — production-ready today
Grammar substrate built, feedback honest-off@homeroom/grammar: AP rules, roster-aware dictionary, LanguageTool client — active when in-VPC host provisioned
Readability auto-leveling scoring builtdeterministic Flesch-Kincaid grade computation, local, no external service — live in-editor surface in active development
School-owned writingstudent work is consent-gated, owned by the school and student author, never sold — consent revocable, one-click export

The revision arc — why tracked revision colors build writers, not just better drafts

A student who sees what changed — and why — learns something different from a student who only sees the cleaned-up result

When a teacher corrects a student essay by rewriting sentences and returning a clean copy, the student sees the before and the after as two separate documents. The reasoning — why one construction is stronger, where the sentence lost its thread, why a word choice was wrong for this register — has to be reconstructed from the difference. That reconstruction is hard. Most students do not do it. They accept the better version and carry the same tendencies into the next piece.

Tracked revision colors put the original and the feedback in the same view, in the same text, at the point where the revision matters. The student’s words stay on the page in the student’s color. The teacher’s annotation or change appears in a distinct revision color alongside it. The student reads the original, reads the feedback, and makes a decision — accept, modify, or push back with a note. That decision is the moment of learning. Version history then preserves the full arc: the rough draft, the first pass, the revised piece, the final submission. The teacher sees not just whether the student got it right but how the student’s thinking changed across the drafts.

The structured document editor, tracked revision colors, version history, and Yjs live collaboration are built and production-ready. The readability scoring engine (deterministic Flesch-Kincaid computation) is built code; its live in-editor surface is in active development. The grammar and AP style engine substrate is built; grammar feedback is honest-off until the in-VPC LanguageTool host is provisioned. The platform is free for schools and available for early access.

How it works

The writing cycle in four stages

Composition runs on the writing cycle: blank page to draft in the structured editor, revision rounds with tracked revision colors, grammar and readability check (readability live, grammar honest-off until in-VPC host is provisioned), and publication to the literary magazine with adviser approval and consent confirmed. Every stage is described as it is built today.

Step 1 · Draft — blank page to first piece in the structured editor

The student opens a new piece and selects the form: essay, short story, personal narrative, poem, or the form the teacher has pre-set for the assignment. The editor frames the document for the form. Readability score appears live on the page as the student writes, updating with each paragraph — no extra step required. The student can share the piece with a writing partner or invite the teacher into the document for live Yjs collaboration. At this stage nothing leaves the school’s system: the draft is local to the session and the tenant.

Step 2 · Revise — tracked revision colors and teacher notes across drafts

When the draft is ready for feedback, the student submits it to the revision stage. Tracked revision colors mark every change as a visible annotation: the teacher’s feedback appears in a distinct color alongside the student’s original text, so the student sees the original and the suggestion at the same time rather than absorbing silent edits. The teacher leaves inline notes at any point in the text and returns the piece to the student for the next pass. Version history records every saved state from first draft through final revision, so both student and teacher can trace the arc of the writing across the assignment.

Step 3 · Grammar and style check — readability live, grammar feedback honest-off until in-VPC host is provisioned

Readability auto-leveling is live throughout the writing and revision cycle. Grammar and AP style feedback — the @homeroom/grammar substrate with roster-aware dictionary — is present in the platform code and ready to surface. It is honest-off today because the in-VPC LanguageTool host is not provisioned by default: no student text is sent to an external grammar service. That is the privacy-intentional design. When the school’s administrator provisions the in-VPC host, grammar and AP style suggestions appear inline and no text leaves the tenant. Until then, the readability score and the revision engine are the live feedback tools.

Step 4 · Publish to the literary magazine — adviser approval, consent confirmed, then into the edition

When the student and teacher agree the piece is ready, it enters the adviser review stage. The adviser reads the piece in its revised state and either approves it for the litmag edition or returns it with notes. The engine refuses the transition to publication layout without the adviser gate clearing — no workaround under deadline. Once approved, the piece flows into the litmag spread design or digital edition. Consent for the student’s name and work is confirmed at publication: a student whose family has not opted in does not appear in the edition regardless of the adviser’s approval of the piece. The edition record is stored in the adviser desk view. Print and digital money rails are present in the platform and honest-off for live transactions today.

The full platform

Five engines — honest about what is built and what is in development

Every feature is labelled honestly: Built means the underlying engine is production-ready. In development means the surface or public-facing interface is in active build. We do not claim otherwise.

Structured document editor — draft, revise with tracked revision colors, version history, and live Yjs collaboration

The document editor is the same structured-writing engine used across the platform’s newspaper desk and playscript tools. A student opens a new piece and the editor applies the selected form: essay, short story, poem, or personal narrative. Tracked revision colors show every change as a distinct pass: the teacher’s annotations appear alongside the student’s original text in a separate revision color, so the student sees the original and the feedback in the same view rather than confronting a clean copy with silent edits absorbed. Version history preserves every saved state across the full revision arc — the teacher can compare the rough draft to the third pass and see the work change paragraph by paragraph. Live collaboration via Yjs lets a student and a writing partner, or a student and a teacher, work in the same document simultaneously and see each other’s changes in real time. The structured document editor is built and production-ready.

Built · production-ready

Grammar, AP style, and roster-aware dictionary — the @homeroom/grammar substrate, in-VPC only, feedback honest-off until host provisioned

The grammar substrate is real, shipping code in the platform: ap-rules.ts encodes the AP Stylebook rule set; languagetool-api.ts and client.ts form the grammar and style engine client; roster-dictionary.ts is a roster-aware proper-noun dictionary that recognises student names, teacher names, and school-specific terms so they are not flagged as errors. The complete @homeroom/grammar package is built. Grammar and AP style feedback to the student writer is honest-off today: the LanguageTool in-VPC host is not provisioned by default, and no grammar suggestions appear until it is. The honest-off design is privacy-intentional — when the in-VPC host is not provisioned, no student text is transmitted outside the school’s system, because there is no external endpoint to transmit to. When the school’s administrator provisions the in-VPC host, grammar and AP style suggestions appear inline in the editor without any student text leaving the tenant.

Grammar substrate built · in-VPC host not yet provisioned · feedback honest-off

Readability score and automatic leveling — live feedback as the student writes, no external service required

The readability engine (gap-readability-auto-leveling) runs locally on the document text in the editor and updates live with each paragraph. The score is based on standard readability measures. The auto-leveling indicator shows where the piece sits on a grade-band scale and flags when vocabulary or sentence structure diverges significantly from the target level. A writing teacher can set a target reading level for an assignment. This scoring engine is independent of the grammar in-VPC host. The readability scoring engine (deterministic Flesch-Kincaid grade computation) is built code; the live in-editor readability surface that shows the score as the student writes is in active development — not production-ready today.

Scoring engine built · live in-editor surface in active development

Literary magazine and newspaper publishing — adviser-approved, one editor to a published edition, print and digital money rails honest-off

The same multi-surface editor-design engine that runs the school newspaper desk runs the literary magazine from the same desk. When a student piece is ready, it enters the adviser review stage: the adviser reads the piece as it stands and either approves it for the edition or returns it with notes. The engine refuses the transition to publication layout without the adviser gate clearing — this is the same fail-closed logic as the newspaper desk, enforced at the data layer, not by a deadline convention that could be skipped. An approved piece flows into the litmag print spread design or the digital edition from the cleared copy file. The school and the litmag adviser control the edition entirely: what goes in, in what order, under which student names. Print edition fulfilment and digital subscription billing are present in the platform and honest-off for live transactions today. The litmag edition structure, the adviser gate, and the multi-surface editor are built and production-ready.

Built · print and digital money rails honest-off

Who uses it

Built for the student writer, the writing teacher, and the literary magazine adviser — the whole writing programme on one desk

Student writers

A student opens a new piece and sees the form the teacher has set: essay, short story, poem, personal narrative. Readability score is visible from the first sentence. They draft, save, and the version history captures each state. When feedback comes back with tracked revision colors, the student sees exactly what the teacher changed and where, in the text, not in a separate comment thread. For a student submitting to the literary magazine, the submission path is the same editor — no separate upload, no separate account, no separate consent form.

Writing teachers

A writing teacher sets up an assignment in the editor: form, target reading level, deadline. Students see the assignment on the class roster. The teacher collects submissions in the revision queue, reads each piece, leaves tracked notes, and returns or approves. The teacher can see at any point which students have submitted, which are in revision, and which readability scores are on track for the assignment target. Version history lets the teacher compare the student’s rough draft to the final piece across the arc. When the grammar in-VPC host is provisioned, AP style and grammar suggestions will appear alongside the teacher’s tracked revision notes.

Literary magazine advisers

The litmag adviser has visibility over every piece submitted for the edition at any time. Pieces reach the adviser review stage only after the student and writing teacher have cleared the revision rounds. The adviser approves a piece for the edition layout or returns it with notes. There is no bypass: the publication layout does not open until the adviser gate clears. Consent for each student’s name and work is confirmed at publication — the adviser does not need to track consent separately; it is enforced by the platform. The edition record, including layout history and consent log, is in the adviser desk view.

The grammar engine — why in-VPC is not a technical footnote but the privacy design

When the grammar engine is honest-off, no student text goes anywhere — because there is nowhere to send it

A grammar-checking service that sends student text to an external host requires a privacy decision: who processes that text, under what terms, and with what retention policy. For student writing — written by minors, about their lives, their opinions, their families — that decision is not a routine SaaS data-processing agreement. It is a question about whether a third party receives minor-student content to run an inference. FERPA and most school data-use policies make this a school-and-family decision, not a vendor default.

The @homeroom/grammar substrate is built for tenant isolation from the ground up. The LanguageTool engine runs inside the school’s own VPC when the school’s administrator provisions the host. Until that provisioning decision is made, there is no grammar endpoint — not “we have an endpoint but we anonymise the data”: there is no external endpoint at all. The platform does not substitute a third-party grammar API during that gap. Honest-off means not present, not quietly running behind a setting. When the school provisions the in-VPC host, grammar and AP style feedback appear and the roster-aware dictionary activates. The school made the call. Nothing left the tenant without that call.

Student writing & consent

Student writing belongs to the student and the school. The platform owns nothing.

Student writing — drafts, revision history, published pieces, consent records — is owned by the school and the student author, not by the platform. No student text is sold to or shared with outside companies or advertisers. No student text is used to train machine-learning models. Student work is never made public without affirmative consent: a student whose family has not opted in is excluded from the published edition even if the adviser approved the piece on its literary merit. Minor student data is consent-gated: a student must have a valid school roster entry to participate in the writing programme. There is no self-registration path that bypasses the school’s rostering.

Consent can be updated or withdrawn at any time. The school controls who has access to student drafts, revision history, and consent records. One-click data export is available in writing — if the school ever leaves the platform, every record leaves with it: every draft, every published piece, every revision history file, every consent log. The platform retains nothing after export.

What is built and what is coming — plainly stated

The writing and revision engine is built. The grammar feedback is honest-off until the in-VPC host is provisioned.

Built and production-ready today: the structured document editor (draft, form selection, tracked revision colors, version history across the full revision arc, live Yjs collaboration); the litmag publication engine (adviser fail-closed approval gate, same multi-surface editor-design substrate as the newspaper desk, edition record in the adviser desk view); and the consent and export engine (consent-gated authorship, school-owned records, revocable opt-in, one-click export).

In active development today: the live in-editor readability surface — the readability scoring engine (deterministic Flesch-Kincaid grade computation, grade-band indicator, target-level comparison, local computation) is built code, but the surface that shows the score live on the document as the student writes is not wired into the editor yet, so it is not production-ready today. Grammar and AP style feedback to the student writer — the @homeroom/grammar substrate (ap-rules, roster-aware dictionary, LanguageTool client) is built code, but feedback is honest-off until the school’s administrator provisions the in-VPC LanguageTool host. Print edition fulfillment and digital publishing money rails are present in the platform and honest-off for live transactions today. There is no live billing or subscription checkout: the platform is free for schools, and early access is by conversation or free-start interest form, not by live account provisioning. We say all of this directly because writing teachers and litmag advisers deserve to know exactly what is production-ready and what is still being finished.

Connected to the school publishing platform

The composition desk, the newspaper desk, and the yearbook share one staff roster, one consent layer, and one publishing platform.

Composition is the literary writing desk. journalist.software is the newspaper desk on the same platform: the same full-surface editor-design engine, the same roster, the same adviser-gate architecture. A school running both its litmag and its newspaper shares one staff entry per student, one adviser account, and one consent layer. Editorial chains are separate — litmag adviser approval and newspaper adviser approval are distinct gates — but the desk infrastructure is shared. yearbook.press is the yearbook desk on the same platform: a student author credited in the litmag can carry that publication credit into their yearbook record via the shared roster. Seen is the recognition programme: every student author, whether in the litmag or the newspaper, can land on a recognition page that is consent-verified and adviser-approved. playscript.software is the playwright editor on the same substrate: a student whose litmag piece is a short play can move it into the playscript editor for stage formatting.

Start free · Writing teachers, student authors, and literary magazine advisers

Start free or book a conversation — no contract, no billing, no live checkout

Composition is free for schools and is in active development. There is no subscription, no per-student fee, and no billing interface today. Starting free captures your interest and puts you in the early-access queue; it is not live account provisioning. A conversation is the other path: we walk through the current state of the desk honestly — the revision engine, the readability auto-leveling, the litmag adviser gate, and where grammar feedback sits on the roadmap — and discuss what getting your school’s writing programme set up looks like. No pricing commitment. No signup in the legacy sense.

To book a conversation or register interest: [email protected].

FAQ

Common questions

What is the structured document editor and how does it work?

The structured document editor is where students draft their writing pieces. A student opens a new piece, selects or is assigned a form (essay, short story, poem, personal narrative), and the editor frames the document for that form. Readability score appears live as the student writes. The student can collaborate with a writing partner or teacher in the same document via live Yjs collaboration. Tracked revision colors show every change across draft rounds. Version history preserves every saved state from first attempt to final submission. The editor is the same structured-writing engine used across the platform’s newspaper desk and playscript tools.

What are tracked revision colors and how are they different from ordinary comments?

Tracked revision colors mark every change in the document as a visible, color-coded annotation rather than a silent edit. When a teacher annotates a draft, the original student text stays on the page in the student’s color and the teacher’s changes or suggestions appear in a distinct revision color alongside it. The student sees the original and the feedback at the same time, in context, and has to make an active decision about each change rather than accepting edits invisibly. This is different from a comment bubble off to the side: the revision is in the text, next to what it concerns. Version history then preserves each revision round as a saved state, so the arc from rough draft to final piece is visible across the full assignment.

How does the grammar engine work and why is it honest-off?

The grammar substrate — the @homeroom/grammar package — is built: ap-rules.ts encodes the AP Stylebook rule set, languagetool-api.ts and client.ts form the grammar and style engine client, and roster-dictionary.ts is a roster-aware proper-noun dictionary. Grammar feedback to the student writer is honest-off today because the LanguageTool in-VPC host is not provisioned by default. The honest-off design is privacy-intentional: when the in-VPC host is not provisioned, no student text is transmitted outside the school’s system, because there is no external endpoint to transmit to. When the school’s administrator provisions the in-VPC LanguageTool host, grammar and AP style suggestions appear inline in the editor without any student text leaving the tenant.

What is the readability auto-leveling engine?

The readability engine (gap-readability-auto-leveling) is deterministic scoring math — classic Flesch-Kincaid grade computed locally on the document text, with the same counts always producing the same grade (no model, no network). The auto-leveling indicator is designed to show where a piece sits on a grade-band scale and to let a writing teacher set a target reading level for an assignment. The scoring engine runs entirely locally, independent of the grammar in-VPC host; the live in-editor surface that shows the score as the student writes is in active development.

How does a student piece move from draft to published in the literary magazine?

The path is: draft in the editor → revision rounds with tracked revision colors → readability check live throughout → adviser review (fail-closed) → publication layout with consent confirmed → published edition. The adviser gate is the one step that cannot be bypassed: the engine refuses the transition to publication layout without the adviser clearing the piece. A student whose family has not opted in to publication is not included in the edition even if the adviser approved the piece. Print and digital money rails for edition sales are present in the platform and honest-off for live transactions.

How does the adviser approval gate work for student writing?

The adviser approval gate is fail-closed: a student piece cannot move from the revision stage to the publication layout without the adviser gate clearing. This is enforced at the engine layer, not by a convention that could be skipped under deadline. The adviser reads the piece as it stands in the revision queue, with all tracked revision colors visible, and either approves it for the edition or returns it to the student with notes. If the adviser returns it, the student revises and re-submits; the engine does not permit publication until the adviser approves. The adviser can hold a piece at the gate indefinitely. This is the same fail-closed gate logic that runs the newspaper desk on the same platform.

Is Composition free for schools?

Yes — this is the model. There is no contract, no per-student fee, and no subscription billing today. The full composition desk — structured editor, tracked revision colors, readability auto-leveling, version history, Yjs collaboration, consent engine, and litmag adviser approval — is available at no cost. Money honest-off means there is no live checkout or billing interface: when your school gets set up, no payment information is entered. Book a conversation to walk through the current state of the desk and discuss what getting your school’s writing programme on the platform looks like.

Who owns the student’s writing?

The student author and the school own the writing. The platform does not claim any license to student work beyond what is needed to store it, display it to the people the school designates, and prepare the formats the school requests (PDF, digital edition, print layout). No student text is sold, licensed to outside parties, used to train models, or shared with advertisers. If the school leaves the platform, a one-click data export takes every draft, every published piece, every revision history record, and every consent record with it.

What happens if a student or family withdraws consent after a piece is published?

Consent is revocable at any time. If a student or family withdraws after a piece has been included in a published litmag edition, the platform removes the student’s name and work from the digital edition and flags the print record for the adviser. The school and the adviser manage handling of any print copies already distributed; the digital record is updated. The withdrawal is logged in the consent ledger. This applies to both the student’s authorship credit and to the piece text itself.

Can the editor be used for classroom writing assignments as well as the literary magazine?

Yes. The composition desk runs both classroom assignments and litmag submissions from the same editor. A writing teacher sets up an assignment (form, target reading level, deadline), assigns it to students on the class roster, and collects submissions in the revision queue. Work that is ready for the litmag enters the publication flow; work that is a class assignment stays in the classroom record. The two tracks share the same editor, the same revision engine, and the same consent record, but they have distinct publication gates. A piece can move from a classroom assignment to a litmag submission when both the student and teacher agree it is ready.

How does Composition connect to the newspaper desk and the yearbook?

Composition, the newspaper desk, and the yearbook share one staff roster, one consent architecture, and one multi-surface editor-design engine on the same platform. A student who writes for the litmag is on the same roster as the reporter who covers the arts beat for the school paper. The editorial chains are separate — litmag adviser approval and newspaper adviser approval are distinct gates — but the desk infrastructure, the roster, and the consent layer are shared. journalist.software is the newspaper desk on the same platform. yearbook.press is the yearbook desk.

What is the roster-aware dictionary and why does it matter?

The roster-aware dictionary (roster-dictionary.ts in the @homeroom/grammar package) extends the grammar engine’s vocabulary with proper nouns drawn from the school’s own roster: student names, teacher names, programme titles, club names, and school-specific terms. Without it, a grammar checker flags every unfamiliar proper noun as a potential misspelling. With the roster dictionary, those terms are recognised as correct entries. The dictionary is built from the school’s own data, which means it is accurate to the school’s population and is never shared with any outside service. The roster-aware dictionary is part of the @homeroom/grammar substrate and is active when the in-VPC LanguageTool host is provisioned.