A system for building educational articles that teach through interactive demonstration. These articles combine prose with inline widgets that let readers learn by doing.
When to use this skill: Creating technical tutorials, explainers, or educational content for the Academy that benefits from hands-on interaction rather than passive reading.
Do this first, every time.
Output: A one-sentence summary of what the reader will understand after completing the article.
Plan the story before writing anything.
Articles should follow a narrative arc, not a feature list. A typical structure:
Create a simple outline with widget placement markers:
## Hook: What they already know
Prose introducing familiar context
## Problem: The gap they don't see
Prose setting up the issue
[WIDGET: Demonstrate the problem]
## Solution: The key insight
Prose explaining the concept
[WIDGET: Show solution in action]
## Practice: Let them try
[WIDGET: Interactive practice]
## Why it matters
Prose connecting to their real work
## Takeaway
3 practical things they can do immediately
Output: Complete narrative outline with widget placements marked.
Design each widget before implementing.
For each [WIDGET] marker in your outline, define:
### Widget: [Name]
**Purpose:** What this widget teaches (one sentence)
**Interaction:** What the user does (click, type, drag, toggle)
**Revelation:** What they discover through the interaction
**States:** Initial state → User action → Result state
See modules/01-widget-patterns.md for implementation patterns.
Output: Widget specifications for each interactive element.
Write for your specific audience.
| Audience | Vocabulary | Sentence Length | Metaphors |
|---|---|---|---|
| Beginners (“normies”) | Everyday words, no jargon | Short, direct | Familiar objects |
| Technical users | Some technical terms okay | Can be longer | Industry concepts |
| Mixed | Define terms on first use | Varied | Both types |
| Instead of | Use |
|---|---|
| “Heavy lifting” | “Does a lot of work” or just explain what it does |
| “Under the hood” | “Behind the scenes” or explain directly |
| “Leverage” | “Use” |
| “Robust” | Say what makes it strong |
| “Seamlessly” | Describe the actual experience |
| “Paradigm” | “Approach” or “way of thinking” |
| “Utilize” | “Use” |
For tone guidance, see ../hub-designer/modules/06-tone-of-voice.md.
Output: Complete prose draft with widget placeholders.
Build widgets using vanilla JavaScript patterns.
element.dataset.state = 'active'<style> block — Keep styles with the article<script> block — Keep logic with the articleArticles live in /_articles/ and use the article layout:
---
layout: article
title: "Your Title Here"
description: "One-line summary"
date: 2026-01-21
author: "Peregian Digital Hub"
tags: ["Category", "Topic"]
back_link: "/academy/"
back_text: "Academy"
---
Article content sits in a narrow reading column (max-w-3xl). Use these classes to break out for widgets and visualizations:
| Class | Behavior |
|---|---|
.full-width |
Full viewport width with padding (good for colored sections) |
.full-width-flush |
Full viewport width, no padding (edge-to-edge images) |
.wide |
Wider than text column, scales with screen size |
Examples:
<!-- Full-width section with background -->
<div class="full-width bg-base-100 py-12">
<div class="max-w-6xl mx-auto">
<!-- Widget content centered -->
</div>
</div>
<!-- Edge-to-edge image -->
<div class="full-width-flush">
<img src="..." alt="..." class="w-full">
</div>
<!-- Wider chart/diagram -->
<div class="wide">
<!-- Needs more room than text column -->
</div>
<style> block at the end<script> block after the stylesSee modules/01-widget-patterns.md for code patterns.
See snippets/ for copy-paste widget templates.
Output: Complete article with working widgets.
Review against these checklists.
For colours, typography, and brand application, see ../hub-designer/modules/04-brand-system.md.
Key colours for articles:
#f8f9fa#5BC0EB#000E2B#10b981#ef4444| Module | Purpose |
|---|---|
modules/01-widget-patterns.md |
Widget types, state management, JS patterns |
modules/02-article-structure.md |
Front matter, sections, layout features |
modules/03-prose-guidelines.md |
Writing for different audiences |
| Snippet | Use Case |
|---|---|
snippets/copy-paste-demo.html |
Before/after clipboard demonstration |
snippets/toggle-view.html |
Raw/rendered toggle widget |
snippets/live-editor.html |
Real-time input/output editor |
snippets/tooltip-mockup.html |
Hover-reveal information display |
These hub-designer modules apply to articles:
| Module | Relevant For |
|---|---|
../hub-designer/modules/04-brand-system.md |
Colours, typography, contrast rules |
../hub-designer/modules/06-tone-of-voice.md |
Brand voice and language style |
Here’s how the phases come together:
Phase 0: “Teaching beginners why Markdown matters when working with AI”
Phase 1 Outline:
Phase 2 Widgets:
Phase 3 Prose: Written for “normies” — no jargon, short sentences, familiar metaphors
Phase 4 Implementation: Vanilla JS, embedded styles, progressive enhancement
Phase 5 Polish: Reviewed against all checklists
Demonstrate, don’t just explain. If readers can experience the concept, they’ll remember it.
One insight per widget. Don’t make widgets do too much.
Write for your actual audience. “Normies” and developers need different language.
Real interactions over simulations. Use the actual clipboard, actual typing, actual results.
Test the narrative flow. The article should feel like a journey, not a reference manual.