diff --git a/src/guide/class-and-style.md b/src/guide/class-and-style.md
index 0febb18f0f..c393e7c572 100644
--- a/src/guide/class-and-style.md
+++ b/src/guide/class-and-style.md
@@ -3,6 +3,7 @@
A common need for data binding is manipulating an element's class list and its inline styles. Since they are both attributes, we can use `v-bind` to handle them: we only need to calculate a final string with our expressions. However, meddling with string concatenation is annoying and error-prone. For this reason, Vue provides special enhancements when `v-bind` is used with `class` and `style`. In addition to strings, the expressions can also evaluate to objects or arrays.
## Binding HTML Classes
+Watch a free video lesson on Vue School
### Object Syntax
diff --git a/src/guide/component-basics.md b/src/guide/component-basics.md
index cda0c9b5c6..37206bb535 100644
--- a/src/guide/component-basics.md
+++ b/src/guide/component-basics.md
@@ -1,5 +1,7 @@
# Components Basics
+Watch a free video course on Vue School
+
## Base Example
Here's an example of a Vue component:
diff --git a/src/guide/component-props.md b/src/guide/component-props.md
index 30dd6bdcca..0c3503a874 100644
--- a/src/guide/component-props.md
+++ b/src/guide/component-props.md
@@ -2,6 +2,8 @@
> This page assumes you've already read the [Components Basics](component-basics.md). Read that first if you are new to components.
+Learn how component props work with a free lesson on Vue School
+
## Prop Types
So far, we've only seen props listed as an array of strings:
diff --git a/src/guide/component-registration.md b/src/guide/component-registration.md
index 09a7b50990..8d34f6d807 100644
--- a/src/guide/component-registration.md
+++ b/src/guide/component-registration.md
@@ -2,6 +2,8 @@
> This page assumes you've already read the [Components Basics](component-basics.md). Read that first if you are new to components.
+Watch a free video lesson on Vue School
+
## Component Names
When registering a component, it will always be given a name. For example, in the global registration we've seen so far:
diff --git a/src/guide/computed.md b/src/guide/computed.md
index 193fc1a139..1164b35068 100644
--- a/src/guide/computed.md
+++ b/src/guide/computed.md
@@ -2,6 +2,8 @@
## Computed Properties
+Learn how computed properties work with a free lesson on Vue School
+
In-template expressions are very convenient, but they are meant for simple operations. Putting too much logic in your templates can make them bloated and hard to maintain. For example, if we have an object with a nested array:
```js
diff --git a/src/guide/conditional.md b/src/guide/conditional.md
index c35f1e2efb..c56a7ebfda 100644
--- a/src/guide/conditional.md
+++ b/src/guide/conditional.md
@@ -1,5 +1,7 @@
# Conditional Rendering
+Learn how conditional rendering works with a free lesson on Vue School
+
## `v-if`
The directive `v-if` is used to conditionally render a block. The block will only be rendered if the directive's expression returns a truthy value.
diff --git a/src/guide/events.md b/src/guide/events.md
index 7d9e2d5701..a4a6c2b080 100644
--- a/src/guide/events.md
+++ b/src/guide/events.md
@@ -1,5 +1,7 @@
# Event Handling
+Learn how to handle events in a free Vue School lesson
+
## Listening to Events
We can use the `v-on` directive, which we typically shorten to the `@` symbol, to listen to DOM events and run some JavaScript when they're triggered. The usage would be `v-on:click="methodName"` or with the shortcut, `@click="methodName"`
diff --git a/src/guide/instance.md b/src/guide/instance.md
index 9d28e131d9..5e324c9396 100644
--- a/src/guide/instance.md
+++ b/src/guide/instance.md
@@ -87,6 +87,8 @@ Vue also exposes some built-in properties via the component instance, such as `$
## Lifecycle Hooks
+Watch a free lesson on Vue School
+
Each component instance goes through a series of initialization steps when it's created - for example, it needs to set up data observation, compile the template, mount the instance to the DOM, and update the DOM when data changes. Along the way, it also runs functions called **lifecycle hooks**, giving users the opportunity to add their own code at specific stages.
For example, the [created](../api/options-lifecycle-hooks.html#created) hook can be used to run code after an instance is created:
diff --git a/src/guide/list.md b/src/guide/list.md
index ec4be39071..db1aa1aaf5 100644
--- a/src/guide/list.md
+++ b/src/guide/list.md
@@ -1,5 +1,7 @@
# List Rendering
+Learn how to render list with a free Vue School lesson
+
## Mapping an Array to Elements with `v-for`
We can use the `v-for` directive to render a list of items based on an array. The `v-for` directive requires a special syntax in the form of `item in items`, where `items` is the source data array and `item` is an **alias** for the array element being iterated on:
diff --git a/src/guide/single-file-component.md b/src/guide/single-file-component.md
index 635df90217..4e7ad252b1 100644
--- a/src/guide/single-file-component.md
+++ b/src/guide/single-file-component.md
@@ -2,6 +2,8 @@
## Introduction
+Watch a free video lesson on Vue School
+
In many Vue projects, global components will be defined using `app.component()`, followed by `app.mount('#app')` to target a container element in the body of every page.
This can work very well for small to medium-sized projects, where JavaScript is only used to enhance certain views. In more complex projects however, or when your frontend is entirely driven by JavaScript, these disadvantages become apparent: