Course Policies

Last Updated: November 17th, 2025

This document outlines the policies and processes I use for my online courses, including CSS for JavaScript Developers (opens in new tab), The Joy of React (opens in new tab), and Whimsical Animations (opens in new tab).

By registering for a course, you agree to abide by the terms and policies outlined in this document, as well as in the Terms of Use, Privacy Policy, and Code of Conduct.

Account Sharing

When you sign up for one of my courses, you are purchasing a single non-transferable license to access the course materials. You are not allowed to share your account with anyone else. When you finish the course, it cannot be transferred to another person.

Some companies will try to register a single license under a shared “dev@company.com” email address, so that multiple team members can access the content. This is not allowed, and will result in your account being suspended until you purchase additional licenses for the team. You can learn more about Team Licenses below.

Similarly, if it becomes clear that you have sold, gifted, or shared your account with others, your access to the content will be revoked, without refund.

Regional Licenses

I recognize that in many parts of the world, the full cost of one of my courses is equivalent to weeks of a typical developer salary, which would put my courses out of reach for most.

If you reside in a country with significantly lower purchasing power compared to most western / EU countries, you may choose to purchase a “regional license”. Regional licenses include all of the same content as the standard global licenses, at a significantly lower price point.

But please note, regional licenses can only be accessed from within your home region. You won’t be able to access the content while traveling abroad. And if you wind up moving to a higher-cost-of-living area and wish to continue accessing the course, you'll need to convert your regional license to a global license.

There are some important things to know about regional licenses:

  • Regional licenses are available exclusively for individual, personal use. Businesses may not purchase regional licenses for their employees. If your company will be reimbursing you for the course, please purchase a standard global license. Otherwise, you may be required to convert to a global license in order to continue accessing the course.
  • At any point in time, you may convert your regional license to a global license. This price is calculated based on the price of the course at the time of the original purchase. For example, if the course cost $500 when you purchased it and you received a 75% discount (total paid: $125), the cost to convert to a global license would be $375 ($500 - $125), no matter what the current price of the course is.
  • To prevent abuse, VPNs and proxies cannot be used with regional licenses. If the system detects that your IP address is associated with a proxy/VPN, you will be temporarily blocked from accessing the content. If you live in a country where VPNs are required to access the content, we can make exceptions. Please contact us if you have any concerns about this.
  • If we detect that a regional license is being abused, we reserve the right to restrict your access until you convert to a global license, or to deactivate your account altogether.
  • Currently, regional licenses automatically convert to global licenses 1 year after the purchase date. This policy might change in the future, but as long as you make the purchase while this policy is in place, we can ensure that it applies for you.
  • The specific discount percentages for regional licenses are not static: I try to update them once or twice a year, as conditions change around the world. This means that it’s possible that the price in your region can change from one day to the next. If you’ve noticed that the price in your region just went up, feel free to reach out to support; we can extend the previous price for up to 30 days for you.

Packages

When registering for one of my courses, you can choose between several packages: Basic, Pro, and Ultimate.

The “Ultimate” package is the full course, including all content and bonuses. It is also the only package which provides a certificate of completion. I introduced the Basic/Pro tiers as an entry-level option for folks who can’t afford the full course, or who are only interested in the content near the start of the course.

Several people have asked whether it’s possible to purchase modules “à la carte”, but unfortunately, this isn’t something I offer. My courses are designed to be linear; later modules continue building on concepts taught in earlier modules.

Regional licenses are available exclusively for the full course, the “Ultimate” package. And similarly, team licenses can only be purchased for the “Ultimate” package.

Upgrading

If you purchase the “Basic” or “Pro” package, you can decide at any time to pay to upgrade to the “Ultimate” package. The cost to upgrade is calculated by subtracting the amount you already paid from the current full price of the “Ultimate” package. There are no additional fees or surcharges for upgrading, but there are some caveats to be aware of:

  • Sales don’t apply to upgrades. This means that the upgrade price is always based on the full price of the course at the time of upgrading. For example, suppose you purchase the “Basic” package for $200. A couple months later, a sale begins which drops the price of the “Ultimate” package from $600 to $450. The upgrade cost will be $400 (the full $600 minus the $200 you already paid). In other words, sales are ignored when calculating upgrade costs.
  • It is not possible to upgrade from “Basic” to “Pro”. No matter which package you purchased (“Basic” or “Pro”), the only upgrade option is the “Ultimate” package.

Paying with instalments

Unfortunately, it is generally not possible to pay in multiple instalments. Sometimes, PayPal might provide it as an option during checkout, but it doesn’t seem to be an option most of the time.

As a workaround, you can purchase either the “Basic” or “Pro” tier now, and purchase an upgrade to the “Ultimate” package at a later date, in effect splitting the cost into two payments.

Sales

My courses typically go on sale twice a year: once in November for “Black Friday”, and once in May for the spring. These sales generally run for about a week. None of this stuff is set in stone, however: each sale is unique, and the specifics will vary.

I also typically run a “launch sale” when new courses are released. Launch discounts tend to be the most significant discounts I offer for my courses, and the best way to find out when I launch new courses is to subscribe to my newsletter (opens in new tab).

Coupons and Discounts

If you’ve been given a coupon code for one of my courses, you can enter that coupon code on the second step of checkout, after entering your billing details. Look for the “Add Discount” button. After applying the coupon code, the price should be updated immediately.

In terms of restrictions, it can vary based on the coupon code, but here are some common restrictions:

  • Most coupons can only be applied to the “Ultimate” package (the full course), not the Basic/Pro packages.
  • Coupons cannot be used for team licenses.
  • Coupons can be used in combination with regional licenses.
  • Only a single coupon code can be applied at a time.
  • If you forget to apply a coupon code during checkout, you can contact us within 30 days of purchase and we can issue a partial refund, to apply the coupon retroactively.

Student Discounts

If you are registered as a full-time or part-time student, we can provide a coupon code which will reduce the price of any of my courses by 20%.

You qualify for the student discount if you’re currently enrolled in college, university, high school, a trade school, or a coding bootcamp. Self-paced online courses don’t qualify. The lines can sometimes get a bit blurry, so the threshold we’ve been using is that the program must involve at least 50 hours of synchronous class time.

To receive a coupon, please send proof of enrolment to support@joshwcomeau.com. If you have a school domain, emailing us from that domain qualifies as proof. Otherwise, you can send a photo of a valid student ID card, or any sort of recent registration paperwork.

If we accept your proof of enrolment, we’ll generate a unique coupon code for you. This coupon code will stay valid for at least 1 year, and can be used multiple times. So, if you finish one of my courses and decide you’d like to keep learning from me, you can reuse the same code.

Student discounts cannot be combined with any other coupon codes or used for team licenses, but they can be applied to regional licenses and can generally be used during sales.

Non-Profit Discounts

If you work for a registered charity or non-profit organization, we can provide a discount of 30% on the “Ultimate” package of any of my courses.

To qualify, your organization must be registered as a non-profit entity (eg. a 501(c)(3) in the United States). Please send proof of registration to support@joshwcomeau.com.

We can also remove any applicable sales taxes from the purchase if you provide a tax-exempt certificate.

Hardship Discounts

Several people have reached out to ask if I offer a discount for folks who were recently laid off, or who are otherwise experiencing financial hardship. Unfortunately, this isn’t something I currently offer.

Team Licenses

If you wish to train several members of your team, you can register for team licenses. The following discounts apply for team licenses:

  • 16+ licenses: 20% discount
  • 8-15 licenses: 15% discount
  • 4-7 licenses: 10% discount

During sales, this bulk discount pricing structure is generally replaced by a single flat discount, regardless of quantity. The two discounts cannot be combined.

Team licenses can be purchased automatically using the following links:

Alternatively, we can generate a payable invoice for you if your procurement process requires an invoice upfront. Just please note that payment must be received before the course can be accessed.

If you wish to purchase licenses for multiple courses, please contact us with the number of seats per course, and we’ll generate a custom invoice for you, using the same discount structure described above.

If your organization is a registered charity or non-profit, we can provide a deeper discount on the team license price (between 30% and 50%, depending on quantity). To qualify, your organization must be registered as a non-profit entity (eg. a 501(c)(3) in the United States). Please send proof of registration to support@joshwcomeau.com, along with a tax-exempt certificate if applicable.

Please note: team licenses generally cannot be reassigned. We can make an exception if the license was assigned recently and/or the license-holder has only completed a small percentage of the course. Please contact us for more information.

Refund Policy

All courses come with an unconditional 30-day refund policy. If you’re not satisfied with the course, you can contact us and request a refund. We’ll issue a full refund, transaction fees and sales taxes included, usually in 24 hours or less (though it can take up to 5-10 days for the refund to be reflected on your end).

There is a limit of 2 refunds per course per person, and the total duration of ownership has to be less than 30 days. For example, if you request a refund on day 20, and then later decide to re-purchase the same course, you’ll only have 10 days remaining before the refund policy expires. And if you purchase it a third time, there is no possibility for a refund, no matter how many days have passed.

This refund policy does not apply to team licenses. Team licenses generally cannot be refunded or transferred, though we can make exceptions on a case-by-case basis.

Course Access

My courses are distributed exclusively through my custom course platform. This platform allows me to embed interactive content, making it a very different experience compared to the courses you’d find on marketplaces like Udemy!

Unfortunately, this also means that my course can only be accessed while connected to the internet. There is no way to download the course materials to access them offline.

When you register for one of my courses, you receive a license to access the content. This is not a subscription. Your license does not expire, and you will be able to access the content for as long as my course platform exists. If I choose to shut down the course platform at some point in the future, I’ll do my best to provide adequate notice (6+ months) so that you can download your notes, saved code snippets, and anything else you may wish to preserve.

Livestreaming and Learning in Public

A few people have reached out to ask if they’re allowed to stream their progress with my courses on platforms like YouTube/Twitch. I think that learning in public is a great way to keep yourself accountable, and it’s something I fully support!

But here’s the rule: you’re allowed to stream your progress with my courses as long as the focus is on you and your learning.

This means that you should be on screen the entire time, and you should be actively working through the material. You can play the videos in the course in full as long as you pause occasionally to paraphrase what you’ve learned from the video, and to share your own thoughts and experiences. You should be actively engaging with the material.

Terms of Use and Other Documents

In addition to these course policies, there are other documents that you should review before purchasing a course. All of these documents together form the agreement between us when you purchase a course.

  1. Terms of Use
  2. Privacy Policy
  3. Code of Conduct

Contact

You can send us a message through the “contact” page. Or, if you’d like to send images or other attachments, you can send an email to support@joshwcomeau.com.