Learn Drupal

November 19th, 2013

Are you ready to get the truth, the whole truth, and nothing but the truth...? Don't worry, you still have a week to prepare!

Mark your calendars, because next week is when you'll get your chance to ask Chris Shattuck ANYTHING! Just tune into r/Drupal on Tuesday, November 26 starting at 11 a.m. EST to get all the juicy details.

In the meantime, you can brainstorm about what kind of questions you want to ask (maybe about BuildAModule, Drupal, start-ups, or why Dominion is such an awesome game), and you should also check out some of the new Object Oriented Programming videos in the Drupal 8 Developer Prep collection.

5 NEW videos added in "Drupal 8 Developer Prep"

A summary of staying sane with OOP, and our use case for re-factoring - 1:43

We're about to dive into some re-factoring of our example code, but before we do, we do a quick review of things you can keep in mind to keep yourself from fretting too much about your code.

(FREE!) How and why to use static methods in classes - 5:21

Sometimes there are methods that you'd like to be able to call on their own without going through instantiating a new object. The "static" keyword does exactly that. Static methods still make the relationship between methods and their class container explicit - which is a win over traditional procedural functions - but without having to needlessly create objects.

Refactoring to add a new "Builder" class, and how to decide when to use a static method - 5:09

Now that you know how to use static methods, how do you figure out when to use them? In this video we look at one example where we generalize an idea from our code and decide how to expose the methods. It's more fun than it sounds, I swear.

What a "controller" is, and how to implement one in our code - 3:41

Early on in this series, we created a "controller" inside of our Drupal 8 module. If you've never worked with object-oriented code before, you might be a little confused about what the role of a controller is. No problem, here we make it simple and explore an example in our code.

How to inherit methods and properties from another class - 3:51

Over the next few videos we're going to look at a few different ways to allow one class benefit from the work we've done in another class. The first method we'll look at is how to "inherit" another classes methods and properties. If you've never seen this before, you'll likely immediately see the application in your own projects.


November 12th, 2013

Come Ask Chris Anything on Reddit!

On Tuesday, November 26 at 11 a.m. EST, BuildAModule does Reddit and you can ask Chris ANYTHING! Get the answers to those burning questions you've always had about the man behind the curtain: What's the funniest thing your kids have done? Where's the best place to get fish tacos? Is it hard to work on a treadmill desk? ...Or you can just ask him a lot of questions about BuildAModule and Drupal.

Just hop on over to r/Drupal when the time is right to join in on the Ask Me Anything discussion. In the meantime, you can check out the schedule of upcoming Drupal AMA's that include Drupal 8 developers Angie Byron (webchick) and Larry Garfield (Crell), Drupal creator Dries Buytaert, and Drupal author Emma Jane Westby.

While you're waiting, we also have five new videos in the Drupal 8 Developer Prep series with tips on ways to wrap your mind around Object Oriented Programming, and how it can help you stay sane while planning projects.  

5 NEW videos added in "Drupal 8 Developer Prep"

What instantiation means, the difference between class and object, and the advantage of properties - 5:04

In this video we praise properties for their ability to persist between different method calls, as well as talk a bit more about instantiation. And for those of you still figuring out the relationship between classes and objects, we disambiguate things here.

Reviewing the rest of our code after moving functions into class methods - 2:53

Now that we've moved all of our functional code into class methods, we take a look at the other aspects of our code that had to change with it.

(FREE!) Review of the advantages of object-oriented programming that we've covered so far - 3:02

At this point you probably have a pretty good grasp of the basic technical aspects of working with OOP in PHP. In this video we step back a little and summarize some of the things that you can look forward to when implementing OOP on your own projects.

How the Agile phiolosophy will help you stay sane when figuring out how to structure a project - 2:16

Since classes provide us a means to deeply organize our code, how far to we go to plan how our code will be structured before we dive in and actually start building something? In this video we talk about how the Agile philosophy comes into play when evaluating your planning process (and there's bunnies!).

How to decide when to re-factor your code, or split classes into smaller classes - 2:07

One other technique you can use to keep yourself sane when looking at the number of options available for structuring OOP code is by realizing that you don't have to get it right the first time. Code evolves, and in this video we talk about a strategy for deciding when to re-factor your code.

November 4th, 2013

"Advanced Site Building in Drupal 7" is Released on DVD!

At long last, the Advanced Site Building in Drupal 7 collection is released as a DVD for all those who like to have shiny, new things to put up on their shelves. Offline viewers and on-the-go-learners can also pick up the full series as a download, available in both HD and Standard formats.

That's not all that's new this week. We also have five new videos in our ongoing Drupal 8 Developer Prep series, as we dive deeper into Object Oriented Programming! 


5 NEW videos added in "Drupal 8 Developer Prep"

Walkthrough of our procedural code example, part 3 (processing the form) - 4:46

Here we wrap up our overview of our sample code before we start to convert it into object-oriented code. It may seem like there's a lot there, but we need something with some guts to really see the benefits of using classes instead.

How to derive objects from procedural code - 1:45

One of the first things you'll probably do when converting your own code to object-orientation is try to pick out what the objects are. Sometimes this is pretty straightforward, and other times it will more of a challenge, but in this video we look at how to find the objects in our procedural code example.

(FREE!) How classes are structured, what methods and properties are, and how a constructor works - 4:45

If you've never seen a class before, there's a few technical pieces to learn. In this video we cover the basic structure of a class, we point out the role of methods and properties (which are actually class-based functions and variables) and discuss the role of a constructor when creating new objects.

How to name classes and methods according to both Drupal and general standards - 1:14

You have some freedom when you name your classes and methods, but if you follow some basic guidelines you will find that your code becomes more portable and recognizable down the road.

How a class structure makes the relationship between methods explicit - 2:31

One of the biggest immediate payoffs to working with classes instead of plain functions is that you can establish a relationship between functions and variables (or, methods and properties) in an explicit way. This means you can take out the guesswork when it comes to figuring out exactly which functions match up with other functions, and how they work together.


October 29th, 2013

This past week, we delivered back-to-back mentored trainings at BADCamp. People from all walks of life gathered to kick start the camp by getting up to speed on Drupal basics. Thank you to the army of orange t-shirt clad volunteer mentors and all of the students in attendance who helped make this year's Drupal Immersion with BuildAModule a huge success.

And now, we're going to ride that momentum of positive energy and bring it with us into the next chapter of our Drupal 8 Developer Prep series. Get ready, because it's time to dive into Object Oriented Programming! 

5 NEW videos added in "Drupal 8 Developer Prep"

(FREE!) Overview of what we're about to cover (OOP, autoloading, namespaces and Symfony) - 2:28

In the next set of videos we're going to step away from Drupal 8 a bit and dive into Object Oriented Programming. As we work through these upcoming examples, you'll start to recognize more and more of the patterns that we've seen already in our custom glue module, and understand the benefits of using those patterns.

(FREE!) The difference between procedural and object-oriented programming - 4:26

It can take a little while for the implications of object-oriented programming to really sink in, but we start discussing them here as we compare OOP with typical procedural code (or, the code we tend to use when we just want to get something done).

Setting up an examples folder and demoing our contact form script - 3:21

In this next set of examples we're going to be evolving a script that generates forms from simple functions to structured classes. In this video we set up a folder in our Drupal install to run our examples and take a look at our script in action.

Walkthrough of our procedural code example, part 1 (outline of the code) - 3:26

Over the next few videos we're going to walk through the our starter code. In this video we look at the outline of functions and discuss the general architecture before we dive into what happens when we use our code to generate a contact form.

Walkthrough of our procedural code example, part 2 (building the form) - 6:08

In this video we continue our walk through of our example, and this time we explore our form building function as it builds our form initially.


October 22nd, 2013

BADCamp Training (Oct 24 and 25) is Full!

We've maxed out at 240 students for our two days of training at BADCamp this year. That's a lot of people! There are also some really cool Summits happening on those same days that are definitely worth checking out. Hop over to the BADCamp site for more information and full details about all the other ongoings during this week's festivities.

For those of you attending the training, here's a sneak peak at the awesome people who will be acting as your mentors for Drupal Immersion. We're looking forward to seeing all of you there!

5 NEW videos added in "Drupal 8 Developer Prep"

(FREE!) How to add a page programmatically with a module - 6:16

This video introduces a technique that is pretty different in Drupal 8. To add a page, we'll end up touching a new routing system, adding a custom controller class, and adding a hook_menu() function that works a little different than the hook_menu() you might be familiar with.

(FREE!) A brief comparison to adding a page programmatically in Drupal 7 - 1:02

For those who are unfamiliar with how adding pages worked in Drupal 7, we do a brief comparison of the code needed to add a page in 7 versus adding one in Drupal 8.

(FREE!) Reviewing the code in our Controller class file - 2:05

Now that we've got a fully functioning module, we step back through our code and take a look at what's going on. We start with the controller class, were we connect our data with the way to display the data. At first, this structure might look a little strange, but after we spend a little time with OOP, you'll start to recognize why we've organized the code this way.

(FREE!) Reviewing the code in our routing.yml file - 2:51

The next part of our code we explore is our routing file, which uses the same YAML format as our .info.yaml file. At first glance, this routing configuration file might look as foreign as our controller class, but when we come back to this after exploring the role of a router in Symfony, this will make a lot more sense.

(FREE!) Reviewing our hook_menu() code - 1:27

In Drupal 8, the hook_menu() hook has changed roles quite a bit to share some of the load with the routing.yml file. In this video we look at exactly how this role has changed and what the future holds for hook_menu().


October 15th, 2013

It's time for us to start building our first Drupal 8 module! We'll ease into things by creating a simple module that illustrates how you can leverage your existing module development skills while working within Hooks. We'll also take our first look at the YAML file, one of many areas where the structure of module development is changing from using something Drupal-specific to something that is more widely adopted.

The Hooks that we'll be working with in particular are hook_page_alter() and hook_form_alter(). For those of you who have worked with them before in Drupal 7, you'll notice that they look very similar here. For the uninitiated and those who could use a refresher, we've got you covered... Just use the links below to get a FREE crash course on how these Hooks work!

3 NEW videos added in "Drupal 8 Developer Prep"

(FREE!) How to set up basic module scaffolding in Drupal 8 - 2:42

Here we build the simplest Drupal 8 scaffolding possible so that we know what the minimal requirements are.

(FREE!) How a .info.yml file works, the purpose of using YAML and what the 'type' attribute is for - 3:21

In Drupal 8, modules have switched from using a .info file to a .info.yml file. In this video, we talk about what YAML files (that's what the .yml means), how it will pay off for Drupal to use a standard format like YAML, and discuss the new 'type' attribute.

(FREE!) Adding a hook_page_alter() and hook_form_alter() to our module - 5:27

While the big changes in Drupal 8 might sound a little daunting, there's still a lot we can do to leverage our existing Drupal experience. Here we add a couple of hooks that haven't changed a whole lot since Drupal 7 and see that we can still do some very powerful thing in Drupal before we even dip our toes into Object Oriented Programming.


October 8th, 2013

This week, the first batch of videos in our "Drupal 8 Dveloper Prep" collection are being released. In this series, we'll go over the new concepts and techniques being introduced in Drupal 8, build a simple Drupal 8 module, and go through the basics of object oriented programming. But that's not all... With a Drupal 8 release just on the horizon, you can be sure we'll have plenty more Drupal 8 goodness where that came from!

3 NEW videos added in "Drupal 8 Developer Prep"

(FREE!) How we're dealing with the fact that there's no official Drupal 8 release yet - 1:43

An official release of Drupal 8 is right around the corner, but there are still a number of components in flux. In this video, we'll explain why that doesn't prevent us from diving into the new concepts introduced in Drupal 8, and the how we'll "future proof" this collection so that it's still relevant after Drupal 8 hits.

(FREE!) Who the "Drupal 8 Developer Prep" series for and what we will be covering - 5:15

In this video, we give a quick introduction of the new concepts and techniques in Drupal 8 that this collection will cover, including Symfony, object oriented programming, Composer, namespacing, and many more.

(FREE!) How to install our Drupal 8 snapshot with Dev Desktop - 4:35

Before we start building our first Drupal 8 module, we're going to import a Drupal 8 snapshot to make sure everyone can can follow along and avoid any inconsistencies between the version of Drupal 8 used in the videos and the latest version of Drupal 8.


October 1st, 2013

Dear Readers,

This week we're releasing a teaser video for the upcoming "Drupal 8 Developer Prep" series. It's been a lot of fun working on this series, but one thing that's really made focusing on this new collection possible has been the work of two new team members, Jeremy Zerr and John Nguyen. I'd love to introduce these guys, since they're an important part of how BuildAModule grows from here.

Jeremy Zerr, Lead Developer – Jeremy has been doing a lot of work behind the scenes to evaluate the opportunities we have for creating a better service for our customers, from wrangling statistics to building better ways for members to manage their accounts, just to name a couple. if you come to a live Mentored Training and get a chance to meet Jeremy, you'll get the feeling like he's willing to go above and beyond to help you get past any hurdles you have. Jeremy is also an amazing ping-pong player, rides a motorcycle like a boss, and is also one of the nicer guys you'll ever meet.

John Nguyen, Client Solutions Lead – If you've submitted a request for support or had a question in the last couple of months, John was probably the one that helped you out. John has taken lead on our support system and is working on more effectively helping new and existing customers with anything they need. He's incredibly patient and responsive, and if you interact with him through email or the forums, you'll get a sense for his focus on service. John is naturally good at pretty much anything he picks up, and even though he'll beat you at virtually any game you play with him, he'll still make you feel like you won.

As a team, we're hoping to constantly bring you improvements to your BuildAModule experience. And if you get a chance at an upcoming Drupal event (like BADCamp 2013), definitely pull these guys aside to say hi.


Announcing the New "Drupal 8 Developer Prep" Collection and Teaser

In the coming weeks, we're going to begin releasing videos in our new upcoming collection, "Drupal 8 Developer Prep." 

View the Drupal 8 Developer Prep teaser to find out why you should be excited about Drupal 8!

September 24th, 2013

Upgraded Download Packages and 25% OFF EVERYTHING!!

All Download Packages Upgraded

All of our download packages have been upgraded with captions for the hard of hearing that open up automatically when viewing the videos in a media player (like VLC). They also boast a better meta data structure that makes it easy to organize files, even when you combine collections. This makes importing videos into iTunes easier than ever.

If you've downloaded a collection from us before in the past and were interested in these improvements, drop us a line and we'll upgrade your download package for free!

Get 25% Off Everything!!

To help celebrate the release of our shiny, upgraded download packages, we're giving you a coupon that's good for 25% off your entire purchase. Just use the code 25EVERYTHING to apply the discount.

If you're looking to grab a specific download package, just click on a link in the handy-dandy table below to jump straight to checkout with the discount already applied.

All 8 Collections
Drupal 7 Development Core Concepts
Build Your First Drupal 7 Web Site
Advanced Site Building in Drupal 7
PHP Programming Basics
Drupal 7 Theming Essentials
Change Management and Version Control
Drupal 6 Development and Tools
Working With Files and the File API
September 17th, 2013

Free Access during DrupalCon Prague Sprints

DrupalCon Prague is right around the corner and there's a marathon of sprints scheduled during the festivities so that we can all help make Drupal 8 more awesome! In the spirit of the community banding together, we're providing access to the entire BuildAModule library for use as a resource during the entire extended sprint period. That's over a week of free access!

From September 21 through September 29, just go to this page or click on the button below to claim a FREE 24-Hour Pass.


There are some seriously sweet locations set up for these sprints! For more information on how you can get involved and join the fun, check out the web pages for the Extended Drupal 8 Sprints and DrupalCon Sprint Day.


Free Training October 24 and 25 at BADCamp

BuildAModule is also happy to announce that we'll be back in the Bay Area this year for another round of Drupal Immersion with FREE Mentored Trainings on October 24 and 25.  Head on over to the BADCamp site for more information about the training and all the other awesome that will be happening that week. Hope to see you there!

September 10th, 2013

This week, we're releasing the final videos of the "Advanced Site Building in Drupal 7" collection. These final videos go over that backup plan we've been talking about, for those special cases where spam gets so out of control that we need a little extra help from a third party service. We'll close things out by reviewing how Mollom works and show you how to run it through a few tests.

"Advanced Site Building" has been one of our most popular series to date, and that's in large part to it being created as a direct response to some of the many questions you've sent our way. We couldn't have done this without you!

Every end is a new beginning, and there are some exciting things just around the corner for BuildAModule that we can't wait to share with you. If you have any guesses as to what they might be or suggestions for where you would like us to go from here, remember that we're always just an e-mail away. Until then, stay tuned for more information about our next video series!

5 NEW videos added in "Advanced Site Building in Drupal 7"

Backing up our work (Backup 17) - 0:28

If you're jumping into this series here, you can use the 14th backup in the backups folder of the resource back in order to bring it in line with the videos. You may also need to copy over some modules from the modules folder as well as image resources from the 'files' directory.

(FREE!) How Mollom works for spam protection, and installing the module - 1:59

Even though we can get some great protection from some simple Drupal modules, we're probably still going to end up with spam getting through. So in this video we talk about a third party service called Mollom that will help cinch things up a bit more.

How to configure Mollom - 4:42

In this video we talk through the various configuration options in Mollom and register our project with the central Mollom site.

How to configure Mollom to protect our comment form and running some spam tests - 4:16

Here we enable mollom for our comment form and run it through its paces.

A quick summary of the spam protection tools and techniques we used - 0:50

In this last section of "Advanced Site Building" we took a look at numerous spam protection tools, and in this video we do a quick summary of the ground we've covered.

September 3rd, 2013

Last week, we began implementing CAPTCHAs as our first measure of defense against unwanted comment posts. This week, we'll be taking that one step further by setting up reCAPTCHA, an extension that makes our spam deterrent a little easier on the eyes and performs a public service at the same time! We'll also be looking at Honeypot and Timegate, two transparent and non-intrusive methods to help prevent our sites from filling up with spam that will go unnoticed by our normal human users.

5 NEW videos added in "Advanced Site Building in Drupal 7"

What reCAPTCHA is and installing the module - 2:32

In this video we explain the awesome stuff accomplished by reCAPTCHA and how we, too, can convert what is typically an annoyance to our users into a public service.

How to configure reCAPTCHA with public and private keys, and setting a theme - 3:25

Here we complete the setup of reCAPTCHA and take a look at modifying the look and feel of the CAPTCHA form.

(FREE!) How the "honeypot" and "timegate" methods work for preventing bot-generated spam - 2:03

In this video we talk about a couple of other additional methods that will further protect our forms from undesirable bot spam. These are both easy to configure, are invisible to the end user, and are available in a single module.

How to install and configure the Honeypot module - 3:56

The Honeypot module is one among many that gives us the honeypot feature, but it does so in a minimalist, easy to configure way. In this video we install it and run through some minimal configuration.

How to disable the user registration form - 1:12

For our particular situation, we're not going to need to expose the registration form to our end users, so it makes sense to get rid of it all together. In this video we show you how.

August 26th, 2013

In the final chapter of "Advanced Site Building," we're taking a look at the different levels of security available for comments in order to develop a plan for how we're going to prepare for spam when we go live. Our first line of defense is to use existing modules to weed out bots, and we're going to start things off by installing a spam deterrent that most people should be familiar with. This week's videos take an in-depth look at how to set up the CAPTCHA module and some configuration options you might not be aware of!

5 NEW videos added in "Advanced Site Building in Drupal 7"

How to set up permissions to allow anonymous users to post comments and what's coming up - 2:29

In this video we adjust permissions a bit and take a gander on what's coming down the pikes next.

What a CAPTCHA is and how to install the CAPTCHA module - 2:04

Here we install an important spam deterrent, and talk about the basic concepts driving CAPTCHA.

How to configure the CAPTCHA module and enable it on multiple forms - 4:23

In this video we discuss the various options available in the CAPTCHA module and get it set up for our comment form and the user registration form.

(FREE!) How to configure an image CAPTCHA - 2:59

The default image CAPTCHA looks a little drab, so in this video we dive into the various options available for configuring the image to give it a little more of a distinctive look and potentially better protection.

How to allow authenticated users to bypass a CAPTCHA - 0:56

Here we adjust permissions to give our trusted users a break on solving CAPTCHAs.

August 19th, 2013

One of our most popular video series so far is being released as a download today! If you'd like to take "Advanced Site Building in Drupal 7" on the go, or watch it in crystal-clear HD, now you can! If you've been waiting for this (and we know there's a bunch of you out there), here are some quick links:

In "Advanced Site Building in Drupal 7", we cover some of the most powerful tools for site building and dive deep into them. Just some of the features of this 200+ video series:

  • How to use Panels to lay out content
  • How to use Views' more complicated and useful features
  • How to decide which methods to use for site layouts
  • How to build a sub-theme quick
  • How to import content with Feeds and Feeds Tamper
  • And lots, lots more!

If you're curious about our other purchasing options, take a look at our pricing page. Or, if you'd like to preview some of the first videos in Advanced Site Building for FREE, start here.

Upgraded Download Package

In addition to our new series release, we've also upgraded the download package to include captions for the hard of hearing. We also improved the meta data structure so you can import into iTunes more easily, do away with chapter folders without losing the order of videos, and easily import all your downloads and have them be perfectly organized.

We will be rolling this new package out for our other downloads as well in the near future, but it's available immediately for the "Advanced Site Building in Drupal 7" collection.

5 NEW videos added in "Advanced Site Building in Drupal 7"

Backing up our work (Backup 16) - 0:51

If you're jumping into this series here, you can use the 16th backup in the backups folder of the resource back in order to bring it in line with the videos. You may also need to copy over some modules from the modules folder as well as image resources from the 'files' directory.

Overview of additional slideshow-related modules - 4:04

Views Slideshow gives you a ton of tools and flexibility for building virtually any kind of slideshow you can think of. But, there are some other modules out there that expand on Views Slideshow or that offer an entirely different interface. In this video we do a quick overview of those.

(FREE!) The 3 levels of comment security - 3:23

In this final section of "Advanced Site Building", we're going to be looking at preparing a site for spam before you go live, and what you can do to switch strategies mid-stream. In this first video we talk about three general layers of tools available.

About spam protection on other forms, including the user registration form - 0:41

Even though we're focusing on a comment form for this example, there are usually a lot of forms in a Drupal installation, and one of the most vulnerable is the user registration form. Here we talk briefly about what to do with those other forms.

What questions to ask clients (or yourself) before setting up commenting - 2:51

Comments in Drupal have a lot of options, and the level of security you need depends in large part on project requirements. Do you want to open up anonymous posting? Will you require CAPTCHAs? What will you do if spam gets out of hand? In this video we outline the most important questions to ask before configuring your comment system.

August 13th, 2013

Over the past few weeks, we've seen how creating a slideshow with Views is a great way of pulling up dynamic displays of nodes that meet a certain criteria. But what about when the content you want to feature in your slideshow doesn't share any common traits? One approach is to use the Nodequeue module, which allows us to group together nodes in an arbitrary list that we can manually re-order in any way we want using a simple drag-and-drop interface. We'll also be leveraging our PHP skills to solve a tricky problem with Views attachments before we move on to the next chapter in Advanced Site Building: Working with Comments.

5 NEW videos added in "Advanced Site Building in Drupal 7"

Why the Nodequeue module is so useful, and installing it - 3:26

Sometimes you want a way to group a number of nodes together in a way that doesn't have anything to do with their obvious properties, like "Bob's favorites". Nodequeue is a centralized way of doing that, and the technique is often useful for slideshows.

How to create and modify a Nodequeue queue - 3:26

Here we create our first queue to demonstrate how easy it is to group arbitrary nodes together with Nodequeue.

How to use a Nodequeue queue in a view to filter nodes - 2:00

In this video we link up the Nodequeue queue that we built with our slideshow view to demonstrate one of the ways that Nodequeue comes in handy.

How we're going to hide the slideshow on every page but the first one - 1:28

Now that we've created our blog page with our slideshow as an attachment, we're seeing the slideshow on all pages of the blog. In this video we explain the technique we're going to use to get it to display on just the home page and mention how we're about to use the only line of PHP code we need in this entire series.

(FREE!) How to use a contextual filter to show a Views attachment display only on the first page - 4:10

We've talked about it, but now we're going to do it! In this video we show how that one aforementioned line of code is going to give us what we need to hide that pesky slideshow in places where it's just getting in the way.

Add to playlist

Add to , or

Add to new playlist:

Add to playlist
This is a member-only feature
But, it's easy to become a member

Add to cart:

Syndicate content

Contact us

Below are the supported keyboard shortcuts for our video player.

Start / stop video
Go to next video
Go to previous video
Increase or decrease player speed by 20%
Skip ahead or go back by 15 seconds
Jump to a percentage (2 is 20%, for example)
Toggle full screen
Videos Pricing More Search
BuildAModule Logo Icon BuildAModule Logo Icon
Become a member!
1 month
6 months
10% off
12 months
20% off
All memberships come with the following:
24 / 7 access to the entire 1800+ video library
An innovative video player with a rolling transcript
Extensive Drupal and cross-platform training
A thorough and thoughtful training style
Progress tracking
Take notes on specific video sections
Intuitive multi-user management
How many users?
Go solo with a single user, or give multiple team members access through one account and get discounts by bundling multiple users into a single membership.