Tim Likes to Teach

I built a membership site with Wordpress to publish courses on design and frontend development.


  • UX Design
  • UI Design
  • Frontend Development
  • WordPress Development

In 2013, I built a site called Tim Likes to Teach. The pur­pose of this per­sonal pro­ject was to teach de­sign and fron­tend de­vel­op­ment in a down-to-earth way.

I loved the idea, but there were a few ma­jor prob­lems:

  1. Courses needed to have a one to many re­la­tion­ship with videos
  2. Parts of the site needed to be dif­fer­ent de­pend­ing on whether a per­son was logged in and had a mem­ber­ship
  3. It all had to work whether the per­son logged in had a mem­ber­ship or only pur­chased a sin­gle course

I made this all with WordPress and I learned sev­eral things along the way.

↓ Below: My goal with the home­page was to in­tro­duce my­self and the courses in a friendly man­ner.

Tim Likes to Teach Homepage

Publishing Courses #

As I look back on this pro­ject, this is the part I over­com­pli­cated the most. I knew courses needed to have a one to many re­la­tion­ship with videos. In other words, one course would have as­signed to it many in­di­vid­ual videos. Doing this in a non-hack way is­n’t the eas­i­est. If I were to do it again, I’d have a sep­a­rate cat­e­gory for each course, and then as­sign each video to that cat­e­gory.

With the sat­u­rated mar­ket of web apps and tu­to­ri­als out there, it’s so con­ve­nient to just sit back and watch a web pro­fes­sional work and talk about their fa­vorite tools and why they rely on them.

Karl NoelleCustomer

In prac­tice, I cre­ated a cus­tom post type for courses and course videos. Then, us­ing the Posts 2 Posts plu­gin, I con­nected videos to their cor­rect course. I then dis­played all the in­di­vid­ual videos con­nected to the course when a user was logged in and had pur­chased it. If the per­son was­n’t logged in, the page dis­played mar­ket­ing in­for­ma­tion to get peo­ple to pur­chase.

I used the Advanced Custom Fields plu­gin to add other im­por­tant in­for­ma­tion to both courses and videos. Information like the dif­fi­culty level, course length, and price were all easy to add and helped po­ten­tial cus­tomers de­cide whether the course was right for them.

Tim Likes to Teach Course View

↑ Above: The course page.

Membership #

When I orig­i­nally launched Tim Likes to Teach, I sold the first course in­di­vid­u­ally. I sold it for $8 which I learned later was too cheap. Even with that pric­ing, I made more than $200 in the first few weeks. When I pub­lished the sec­ond course, I launched a sub­scrip­tion so peo­ple would have ac­cess to all the courses.

I chose to use Memberful for the en­tire mem­ber­ship sys­tem. Memberful is a great web app that is se­cure and of­fers a WordPress plu­gin. Together with this plu­gin, I could eas­ily show or hide con­tent based on sub­scrip­tion sta­tus. Like this:

$product_name = get_field('integration_slug');
if ( has_memberful_subscription ( '27-tim-likes-to-teach-subscription' ) || has_memberful_product ( $product_name ) ) : ?>

The Memberful plu­gin took care of cre­at­ing WordPress ac­counts for each per­son who pur­chased as well as all the pay­ment in­for­ma­tion. It truly was an ideal setup.

Conclusion #

I had so much fun cre­at­ing this. It taught me some valu­able lessons about data re­la­tion­ships, and de­sign­ing for a few dif­fer­ent sce­nar­ios. I also had the priv­i­lege of help­ing peo­ple learn more about de­vel­op­ment.

You can look at all the code I wrote for this pro­ject on GitHub. If you’d like to see some of my more re­cent videos, you can find them on my YouTube chan­nel.