Skip to content

Extension ideas backlog

A prioritized backlog of extension ideas for the Plugin SDK. Each idea names the capabilities it needs so feasibility can be checked against the capability catalog. Nothing here is a contract; ideas graduate into fixtures or packages by following Developing a .tuesh extension.

Status markers: picked up (work started or shipped), otherwise open.

Shipped / in progress

  • Infinite canvaspicked up (public/plugin-fixtures/infinite-canvas). A single-surface, workspace-scope whiteboard: pan/zoom, freehand strokes, shapes, arrows, sticky notes, undo/redo. Native runtime; ui.page, commands.register, storage.namespaced only. Persistence is one debounced write per gesture with a compact scene graph (quantized integer coordinates) to stay inside the 2 MiB quota and the 60-calls-per-10 s window.
  • Streak garden — daily-goal grid that grows a plant per consecutive study day. Pure storage.namespaced + ui.page; high delight per line of code.
  • Soundscapes page — rain/café/noise loops generated or looped inside the guest document. Zero capabilities beyond ui.page.

Study and review

  • Mock exam builder — harvest question/quiz blocks across topics via course.read, assemble a timed randomized exam on its own course page, grade at the end. Fills a real gap: exam training exists per block but no cross-topic assembly.
  • Read-aloud — narrate theory blocks with play/pause/speed controls in a sidebar panel; course.read + speechSynthesis.
  • Leitner box trainerreview.provide with its own box scheduling stored locally.
  • Vocabulary drill — NL/EN term pairs extracted from course content fed back as review items.
  • Mistake journal — log wrong answers from quiz/question interactions; pre-fill entries from events.subscribe.
  • Spaced-repetition scheduler variants — SM-2/Leitner over stored card state feeding the existing review queue.
  • Formula sheet builder — pin/star formula-reference blocks into a personal cheat sheet; export via transfer.provide.
  • Exam countdown dashboard — days-remaining cards on a workspace page plus sidebar panel.

Workspace and navigation

  • Layout presets — commands that call workspace.split to put a topic view beside notes; save/recall arrangements in storage.
  • Quick switcher — command-palette-first navigation to allowlisted core views via workspace.openView({ href }).
  • Random practice launcher — "Surprise me" command opening an unvisited topic in a new pane.
  • Focus mode — collapse the workspace to one reading surface with workspace.closePane / focusPane, restore afterwards.

Change awareness

  • Revision watchdog — subscribe to course.revisionPublished; list what changed since you last studied each course, deep-linking into updated topics.
  • Block annotation layer — private sticky notes pinned to block ids, rendered as a course-inspector panel.
  • Revision diff viewer — pick two published revisions, open them in workspace.split panes, walk changed blocks side by side.

Data and export

  • Anki/CSV deck importertransfer.import converting foreign formats into flashcards-lite-compatible JSON.
  • Per-plugin data backup — one-click dump/restore of a storage namespace via transfer.provide with schema version checks.
  • Handout printer — assemble selected blocks into print-optimized HTML through transfer export.
  • Grade tracker — record exam-trainer/practice scores over time; trend charts per topic.
  • Calendar bridge — ICS import/export of deadlines and exam dates; countdown panel next to task-board.
  • Sync bridge — replicate the namespaced store between devices against a declared endpoint via network.fetch; the only realistic multi-device path until a host sync capability exists.
  • Share packs — export any single deck/rubric/note set as .json others import through their own copy of the same plugin.

Authoring quality (owner-facing)

  • Course linter — editor actions scanning for missing alt text, empty sections, inconsistent terminology; proposes fixes through course.write one confirmation at a time.
  • Link checker — walk resource/link blocks, HEAD-check URLs via network.fetch, report dead links in a panel.
  • Terminology guard — flag synonyms/inconsistent casing of defined terms while editing.
  • Cloze generator — editor action deriving a cloze block from a selected theory block.
  • Glossary extractor — scan defined terms into an A–Z course tab with search.provide.

Accessibility

  • Bionic/ruler reading mode — native-runtime typographic transforms beyond what tokens allow.
  • Dictation notes — Web Speech API voice capture into an annotation store.

Ambience

  • Scratchpad whiteboard — per-topic durable canvas (the host drawing overlay is deliberately ephemeral). Largely covered by the infinite canvas fixture; a course-scoped variant remains open.

Stretch (needs host work)

  • AI tutor panel — blocked on ai.complete being reserved; prototype as native or wait for the host provider.
  • Cross-device sync as a platform capability — would supersede the sync bridge's bring-your-own-endpoint approach.