You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Course: from zero to a t27 program on a chip, 27 lessons built on the widgets #1414
A free, step-by-step course at t27.ai/#/course for people who have never touched hardware: how a chip works, how to write a program for it in t27, and how the t27c compiler (and the native t27b backend) turns a spec into a bitstream on a real XC7A200T.
Shape
27 lessons in 9 modules of 3. Every lesson teaches one topic and is built around one widget from the WIDGETS gallery (specs/widgets/gallery.t27); every one of the 40 widgets appears in the course, either as a lesson's main widget or in its "also try" row.
The course is orchestrated by a .t27 spec only.specs/course/course.t27 holds the module and lesson order, every word in English and Russian, the widget each lesson embeds, and test blocks for its shape. scripts/course-from-spec.mjs compiles it with the wasm compiler, runs its tests, checks every widget id against the gallery spec, and writes src/lib/course.generated.ts. No lesson text lives in TSX.
Pure black page, no green backgrounds or glows (owner, 2026-10-05).
Bilingual: EN and RU, switched by the site's language button.
Acceptance
node scripts/course-from-spec.mjs --check passes in website-checks; a widget id missing from the gallery, a lesson without RU text, or a gallery widget not used anywhere fails it.
#/course shows the module map; #/course/<lesson-id> shows one lesson with its widget embedded (?embed=1), prev/next, and works at 375 px.
The previous paid-course page stays reachable from the course.
Live on t27.ai after the apex publish run passes.
Boundary
Words and numbers come from the spec and from the widget pages; nothing is posted outward.
Activity
course: #/course, 27 lessons from zero to a chip, orchestrated by spe…