Geist Learning Lab
Build explorative, interactive learning experiences as Next.js apps using the Geist design system. Use when creating tutorials, explorable explanations,…
Install
Quick install
npx skills add https://github.com/vercel-labs/skill-geist-learning-labs/tree/HEAD/skills/geist-learning-labnpx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-lab --agent claude-codenpx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-lab --agent cursornpx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-lab --agent codexnpx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-lab --agent opencodenpx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-lab --agent github-copilotnpx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-lab --agent windsurfMore install options
Shorthand — useful for multi-skill repos:
npx skills add vercel-labs/skill-geist-learning-labs --skill geist-learning-labManual — clone the repo and drop the folder into your agent's skills directory:
git clone https://github.com/vercel-labs/skill-geist-learning-labs.gitcp -r skill-geist-learning-labs/skills/geist-learning-lab ~/.claude/skills/geist-learning-lab
Build explorative, interactive learning experiences as Next.js apps using the Geist design system. Use when creating tutorials, explorable explanations,…
geist-learning-labby vercel
Build explorative, interactive learning experiences as Next.js apps using the Geist design system. Use when creating tutorials, explorable explanations,…npx skills add https://github.com/vercel-labs/skill-geist-learning-labs --skill geist-learning-labDownload ZIPGitHub
Geist Learning Lab
Build interactive learning experiences that teach by making the learner do something, get feedback, and iterate — using Geist's dark-first, minimal, precise UI language.
Design Philosophy
- Learning loops, not pages — Every screen completes: prompt → attempt → feedback → refinement → checkpoint
- Cognitive load management — Progressive disclosure, chunking, one concept + one action at a time
- Error-friendly design — Mistakes are expected; the UI normalizes them and turns them into learning moments
- Interactive representations — Sliders, toggles, diagrams, live code — not just text
- Geist precision — Dark backgrounds, tight tracking, semantic color, 4px grid, Swiss typography
Critical Rules
- Every lesson must include at least one attempt+feedback loop — No passive-only pages
- Every interactive control must have a visible effect — Within ~100ms or show loading state
- Progress/review must exist even in a prototype — Track steps completed, checkpoints passed
- Active attempt before explanation — Ask a question or show a task, then explain
- Immediate, specific feedback — "Correct" isn't enough; explain why
- Multiple representations — Always at least 2 of: text, code, visual, interactive, real data
- Color is learning signal — Green=correct, Red=incorrect, Amber=hint/warning, Blue=info/definition
- Progressive disclosure by default — Depth behind "Why?", "Edge Cases", "Formal Definition"
- URL state for exploration — Shareable slider/toggle configurations via search params
- Misconception-first design — Bake in common traps: "Most people get this wrong because..."
The Learning Loop (Central Doctrine)
Every lesson repeats this cycle:
StepWhat HappensComponentOrientWhat you'll learn in 5-10 minHeading + learning objectiveAttemptLearner predicts/answers/edits firstQuickCheck, CodePlayground, ParameterDockFeedbackImmediate + specific responseFeedback surface (green/red panel)ExplainShort explanation anchored to their attemptCallout, WorkedExampleExtendVariation, edge case, or transfer taskBeforeAfterSplit, ConceptExplorerCheckpointQuick recall questionQuickCheck with ConfidenceRatingReflect"What changed in your understanding?"Optional text input or self-rating
"Aha Moment" Design Patterns
PatternHow It WorksWhen to UsePrediction Gap"What do you think happens if...?" then revealBefore introducing a conceptContrast PairTwo near-identical cases with different outcomesClarifying subtle distinctionsSlider to FailureLet learner push a parameter until it breaksUnderstanding boundaries/limitsTime TravelScrub algorithm step-by-step, watch invariantsAlgorithms, state machinesMisconception TrapTempting wrong option, then explain why wrongCommon errors in a domain
Quick Color Reference (Learning Semantics)
SignalColor TokenHexUsageCorrectgreen-700#46A758Success feedback, completed stepsIncorrectred-700#E5484DError feedback, failed checksHint/Cautionamber-700#FFB224Hints, warnings, "watch out"Info/Definitionblue-700#0070F3Definitions, current step, linksDefaultgray-400#737373Everything else: borders, muted textProgress donegreen-700 dot#46A758Completed step indicatorProgress currentblue-700 ring#0070F3Current step focus stateProgress pendinggray-400 dot#737373Upcoming steps
Component Library (23 Patterns)
Lesson Flow & Progress
<LessonShell /> <ProgressRail /> <StepFlow /> <CheckpointCard /> <ResumeBanner />
Explorable Explanations
<ParameterDock /> <LiveOutputPanel /> <ConceptExplorer /> <InteractiveDiagram /> <BeforeAfterSplit /> <TimelineExplorer /> <ConceptMap />
Code Learning
<CodePlayground /> <DiffEditor /> <TaskRunner /> <SnippetCopy />
Quizzes & Active Recall
<QuickCheck /> <ConfidenceRating /> <HintLadder /> <MistakeAnalyzer />
Reading Support
<GlossaryPopover /> <Callout /> <WorkedExample />
Typography in Learning Context
ElementWhat It MeansStyleBig heading"What you're doing"text-heading-{32|24} semibold, negative trackingSmall label"Where you are"text-label-{14|12} gray-400Mono"What the computer sees"text-copy-14-mono or text-label-14-monoBodyReading contenttext-copy-14 or text-copy-16, max-w-2xl
Layout Patterns
ContextMax WidthStructureReading contentmax-w-2xl / max-w-4xlSingle column, comfortable line lengthInteractive labmax-w-6xlTwo panels: explanation + playgroundFull explorermax-w-7xlThree zones: nav + content + lab panel
App Router Structure
`/ → Landing / course picker
/learn → Course catalog + resume
/learn/[courseSlug] → Course overview, modules, progress
/learn/[courseSlug]/[moduleSlug] → Module overview
/learn/[courseSlug]/[moduleSlug]/[lessonSlug] → Lesson shell
`
File Organization
`content/courses/<courseSlug>/course.json → Metadata, module order
content/courses/<courseSlug>/<module>/<lesson>.mdx → Lesson content
components/learning/ → Reusable learning components
lib/learning/progress.ts → Schema + storage adapters
lib/learning/grading.ts → Quiz validation, code tests
lib/learning/spaced.ts → Review scheduling
`
References
references/lesson-shell.md— LessonShell, ProgressRail, StepFlow, CheckpointCard, ResumeBanner TSX patterns
references/explorable-explanations.md— ParameterDock, LiveOutputPanel, ConceptExplorer, InteractiveDiagram, BeforeAfterSplit, TimelineExplorer, ConceptMap
references/code-learning.md— CodePlayground (read-only/guided/free), DiffEditor, TaskRunner, SnippetCopy
references/quiz-assessment.md— QuickCheck, ConfidenceRating, HintLadder, MistakeAnalyzer with feedback patterns
references/reading-support.md— GlossaryPopover, Callout variants, WorkedExample with stepwise reveal
references/pedagogical-framework.md— The Learning Loop doctrine, progressive disclosure rules, aha patterns, scaffolded complexity
references/architecture.md— Next.js App Router routing, MDX content system, state management, file organization
references/progress-state.md— Progress schema, localStorage adapter, spaced repetition, URL state for explorations
references/learning-animations.md— Step transitions, feedback reveals, diagram animations, reduced-motion compliance
More skills from vercel
agent-friendly-apisby vercelCompanion skill for the Agent-Friendly APIs course on Vercel Academy. Build a feedback API, make it agent-friendly with structured documentation, then create a Claude Code skill that generates the docs automatically.filesystem-agentsby vercelYou are a knowledgeable teaching assistant for the Building Filesystem Agents course on Vercel Academy. You help students build agents that navigate filesystems with bash to answer questions about structured data.add-provider-packageby vercelGuide for adding new AI provider packages to the AI SDK. Use when creating a new @ai-sdk/<provider> package to integrate an AI service into the SDK.csvby vercelAnalyze and transform CSV data using bash toolsaiby vercelPythonai module — models, agents, hooks, middleware, MCP, structured outputcron-jobsby vercelVercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.frontend-designby vercelCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts,…vercel-react-best-practicesby vercelReact and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js…
---
Source: https://github.com/vercel-labs/skill-geist-learning-labs/tree/HEAD/skills/geist-learning-lab
Author: vercel
Discovered via: mcpservers.org
SKILL.md source
---
name: geist-learning-lab
description: Build explorative, interactive learning experiences as Next.js apps using the Geist design system. Use when creating tutorials, explorable explanations,…
---
# geist-learning-lab
Build explorative, interactive learning experiences as Next.js apps using the Geist design system. Use when creating tutorials, explorable explanations,…
# geist-learning-labby vercel
Build explorative, interactive learning experiences as Next.js apps using the Geist design system. Use when creating tutorials, explorable explanations,…
`npx skills add https://github.com/vercel-labs/skill-geist-learning-labs --skill geist-learning-lab`Download ZIPGitHub
## Geist Learning Lab
Build interactive learning experiences that teach by making the learner do something, get feedback, and iterate — using Geist's dark-first, minimal, precise UI language.
## Design Philosophy
* Learning loops, not pages — Every screen completes: prompt → attempt → feedback → refinement → checkpoint
* Cognitive load management — Progressive disclosure, chunking, one concept + one action at a time
* Error-friendly design — Mistakes are expected; the UI normalizes them and turns them into learning moments
* Interactive representations — Sliders, toggles, diagrams, live code — not just text
* Geist precision — Dark backgrounds, tight tracking, semantic color, 4px grid, Swiss typography
## Critical Rules
* Every lesson must include at least one attempt+feedback loop — No passive-only pages
* Every interactive control must have a visible effect — Within ~100ms or show loading state
* Progress/review must exist even in a prototype — Track steps completed, checkpoints passed
* Active attempt before explanation — Ask a question or show a task, then explain
* Immediate, specific feedback — "Correct" isn't enough; explain why
* Multiple representations — Always at least 2 of: text, code, visual, interactive, real data
* Color is learning signal — Green=correct, Red=incorrect, Amber=hint/warning, Blue=info/definition
* Progressive disclosure by default — Depth behind "Why?", "Edge Cases", "Formal Definition"
* URL state for exploration — Shareable slider/toggle configurations via search params
* Misconception-first design — Bake in common traps: "Most people get this wrong because..."
## The Learning Loop (Central Doctrine)
Every lesson repeats this cycle:
StepWhat HappensComponentOrientWhat you'll learn in 5-10 minHeading + learning objectiveAttemptLearner predicts/answers/edits firstQuickCheck, CodePlayground, ParameterDockFeedbackImmediate + specific responseFeedback surface (green/red panel)ExplainShort explanation anchored to their attemptCallout, WorkedExampleExtendVariation, edge case, or transfer taskBeforeAfterSplit, ConceptExplorerCheckpointQuick recall questionQuickCheck with ConfidenceRatingReflect"What changed in your understanding?"Optional text input or self-rating
## "Aha Moment" Design Patterns
PatternHow It WorksWhen to UsePrediction Gap"What do you think happens if...?" then revealBefore introducing a conceptContrast PairTwo near-identical cases with different outcomesClarifying subtle distinctionsSlider to FailureLet learner push a parameter until it breaksUnderstanding boundaries/limitsTime TravelScrub algorithm step-by-step, watch invariantsAlgorithms, state machinesMisconception TrapTempting wrong option, then explain why wrongCommon errors in a domain
## Quick Color Reference (Learning Semantics)
SignalColor TokenHexUsageCorrectgreen-700`#46A758`Success feedback, completed stepsIncorrectred-700`#E5484D`Error feedback, failed checksHint/Cautionamber-700`#FFB224`Hints, warnings, "watch out"Info/Definitionblue-700`#0070F3`Definitions, current step, linksDefaultgray-400`#737373`Everything else: borders, muted textProgress donegreen-700 dot`#46A758`Completed step indicatorProgress currentblue-700 ring`#0070F3`Current step focus stateProgress pendinggray-400 dot`#737373`Upcoming steps
## Component Library (23 Patterns)
### Lesson Flow & Progress
`<LessonShell />` `<ProgressRail />` `<StepFlow />` `<CheckpointCard />` `<ResumeBanner />`
### Explorable Explanations
`<ParameterDock />` `<LiveOutputPanel />` `<ConceptExplorer />` `<InteractiveDiagram />` `<BeforeAfterSplit />` `<TimelineExplorer />` `<ConceptMap />`
### Code Learning
`<CodePlayground />` `<DiffEditor />` `<TaskRunner />` `<SnippetCopy />`
### Quizzes & Active Recall
`<QuickCheck />` `<ConfidenceRating />` `<HintLadder />` `<MistakeAnalyzer />`
### Reading Support
`<GlossaryPopover />` `<Callout />` `<WorkedExample />`
## Typography in Learning Context
ElementWhat It MeansStyleBig heading"What you're doing"`text-heading-{32|24}` semibold, negative trackingSmall label"Where you are"`text-label-{14|12}` gray-400Mono"What the computer sees"`text-copy-14-mono` or `text-label-14-mono`BodyReading content`text-copy-14` or `text-copy-16`, max-w-2xl
## Layout Patterns
ContextMax WidthStructureReading content`max-w-2xl` / `max-w-4xl`Single column, comfortable line lengthInteractive lab`max-w-6xl`Two panels: explanation + playgroundFull explorer`max-w-7xl`Three zones: nav + content + lab panel
## App Router Structure
```
`/ → Landing / course picker
/learn → Course catalog + resume
/learn/[courseSlug] → Course overview, modules, progress
/learn/[courseSlug]/[moduleSlug] → Module overview
/learn/[courseSlug]/[moduleSlug]/[lessonSlug] → Lesson shell
`
```
## File Organization
```
`content/courses/<courseSlug>/course.json → Metadata, module order
content/courses/<courseSlug>/<module>/<lesson>.mdx → Lesson content
components/learning/ → Reusable learning components
lib/learning/progress.ts → Schema + storage adapters
lib/learning/grading.ts → Quiz validation, code tests
lib/learning/spaced.ts → Review scheduling
`
```
## References
* `references/lesson-shell.md` — LessonShell, ProgressRail, StepFlow, CheckpointCard, ResumeBanner TSX patterns
* `references/explorable-explanations.md` — ParameterDock, LiveOutputPanel, ConceptExplorer, InteractiveDiagram, BeforeAfterSplit, TimelineExplorer, ConceptMap
* `references/code-learning.md` — CodePlayground (read-only/guided/free), DiffEditor, TaskRunner, SnippetCopy
* `references/quiz-assessment.md` — QuickCheck, ConfidenceRating, HintLadder, MistakeAnalyzer with feedback patterns
* `references/reading-support.md` — GlossaryPopover, Callout variants, WorkedExample with stepwise reveal
* `references/pedagogical-framework.md` — The Learning Loop doctrine, progressive disclosure rules, aha patterns, scaffolded complexity
* `references/architecture.md` — Next.js App Router routing, MDX content system, state management, file organization
* `references/progress-state.md` — Progress schema, localStorage adapter, spaced repetition, URL state for explorations
* `references/learning-animations.md` — Step transitions, feedback reveals, diagram animations, reduced-motion compliance
## More skills from vercel
agent-friendly-apisby vercelCompanion skill for the Agent-Friendly APIs course on Vercel Academy. Build a feedback API, make it agent-friendly with structured documentation, then create a Claude Code skill that generates the docs automatically.filesystem-agentsby vercelYou are a knowledgeable teaching assistant for the Building Filesystem Agents course on Vercel Academy. You help students build agents that navigate filesystems with bash to answer questions about structured data.add-provider-packageby vercelGuide for adding new AI provider packages to the AI SDK. Use when creating a new @ai-sdk/<provider> package to integrate an AI service into the SDK.csvby vercelAnalyze and transform CSV data using bash toolsaiby vercelPython `ai` module — models, agents, hooks, middleware, MCP, structured outputcron-jobsby vercelVercel Cron Jobs configuration and best practices. Use when adding, editing, or debugging scheduled tasks in vercel.json.frontend-designby vercelCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts,…vercel-react-best-practicesby vercelReact and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js…
---
**Source**: https://github.com/vercel-labs/skill-geist-learning-labs/tree/HEAD/skills/geist-learning-lab
**Author**: vercel
**Discovered via**: mcpservers.org
Related skills 6
caveman
Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.
secure-linux-web-hosting
Use when setting up, hardening, or reviewing a cloud server for self-hosting, including DNS, SSH, firewalls, Nginx, static-site hosting, reverse-proxying an app, HTTPS with Let's Encrypt or ACME clients, safe HTTP-to-HTTPS redirects, or optional post-launch network tuning such as BBR.
readme-i18n
Use when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.
lark-shared
Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-cli, or seeing _notice in JSON output.
improve-codebase-architecture
Find deepening opportunities in a codebase, informed by the domain language in CONTEXT.md and the decisions in docs/adr/. Use when the user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable.
paper-context-resolver
Optional RigorPilot helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacin...