Two ways to write a .tdc course: the TDC Studio app, or the VS Code extension in the tdc-sdk repo. Self-study, school, workshop, association — not trainers-only.
For yourself. Document what you learn (networking, Linux, security) as .tdc, replay it in T2DECODE offline.
In a group. Lab tomorrow: modules, Markdown, quiz, tdc check, signature. Ghost Link: P2P talk on the same network, the .tdc reaches the desks — classroom with no internet.
Two ways to write
Same .tdc file, same grammar. Use the app, or stay in VS Code / Cursor / VSCodium. Anyone can write a course: for yourself, a friend, a class, a club.
1. The TDC Studio app
Standalone IDE (macOS, Windows, Linux). Home: new course, open a .tdc / .json, templates (Linux, networking, security, cloud, crypto, dev). Three tabs: form, .TDC code, learner preview (T2DECODE rendering). Ed25519 signatures, .tdc export. Flutter source: TDC-Studio-IDE-App in the repo. Screenshots: v1.7.
If you already write in an editor. Highlighting, diagnostics, snippets, open a .tdc in Studio. Not on the Marketplace: VSIX in the vscode-tdc folder of the same repo. Current file: vscode-tdc-language-1.1.0.vsix. ID: tutodecode.vscode-tdc-language.
Snippets: tdc-course, tdc-module, tdc-quiz, tdc-question, tdc-codeblock. Offline: install from the VSIX file (Extensions menu → Install from VSIX).
Why a .tdc language, not JSON
The association did not invent a language for sport. It defined T2DECODE’s native course format: a file you read as a lesson plan, not as an API payload.
A course reads out loud — course, module, Markdown in content. JSON buries the lesson under commas and escapes.
Pedagogical Markdown is the point — long chapters, not 140-character fields. Triple quotes exist for that.
A grammar, therefore a linter — tdc check knows course / module / quiz. A JSON blob has no such domain structure.
JSON is not banned — the app also opens .json (parser fallback), plus tdc convert-json. Canonical format is the DSL.
Not an LMS export — .tdc belongs to TUTODECODE, written by Studio, read by T2DECODE. Not SCORM, not Moodle XML.
Example
Native .tdc on the left. The same course as .json on the right (parser fallback).