Skip to main content Accessibility Feedback

JavaScript projects for beginners.

15 self-paced projects with short lessons, starting templates, and source code. Complete them on your own, or code along with me.

Get the JavaScript Projects Bundle for FREE

Join over 2,750 other people, and get instant access to all of the projects, lessons, templates, and source code.

How It Works

Each project includes a few short lessons and a template to get you started. Depending on your comfort level, you can...

  1. Do It Yourself (DIY). You can try to complete the project on your own, then come back and watch me explain my approach.
  2. Code Along. If you'd prefer, you can code along with me as I walk through my solution.

Each project builds on the next. You'll apply the skills you learn on one project in the one you build after it.

What You’ll Learn

You’ll learn how to…

  • Get elements in the DOM
  • Listen for user events
  • Get and set text and HTML
  • Loop over arrays and elements
  • Climb up and down the DOM tree
  • Transform and manipulate arrays
  • Combine, modify, and split up strings
  • Transform text case
  • Find and replace text inside a string
  • Schedule code to run in the future
  • Interact with forms using JavaScript
  • Save and load app data in the browser
  • Create HTML-only accordions
  • Write code that can be easily reused
  • Build accessible apps and UI

🧠 Multiple formats for different learning styles. All tutorials are available in streaming HD videos with captions and as written lessons. Watch or read on any device.

Wanting to learn JavaScript from scratch, make the transition from jQuery or some other library? Already pretty competent and just want to get better?

Chris Ferdinandi has got your back and his learning platform is a *tremendously good value*.- Jonathan Schofield

Work on Fun Projects

Fortune Teller

Build an app that tells users their fortune.

Table of Contents

Dynamically add a table of contents to a site based on page headings.

Randomize

Build an app that helps you randomly choose from a list of options.

GitHub API

Use the GitHub API to dynamically render a list of your repositories and profile details.

Join today for free!

Get the JavaScript Projects Bundle for FREE

Join over 2,750 other people, and get instant access to all of the projects, lessons, templates, and source code.

Go from beginner to confident coder

  • Learn modern best practices and code patterns.
  • Spend less time Googling and more time working on cool stuff.
  • Get the skills and confidence to really understand JavaScript.
  • Follow a structured learning path to grow your skills more quickly.
  • Work on real projects and build your portfolio.

A Sample Lesson

How to detect events in the browser with the Element.addEventListener() method.

Hi, I'm Chris Ferdinandi. 👋

Chris Ferdinandi

I help people learn vanilla JavaScript, and I believe there’s a simpler, more resilient way to make things for the web.

I’ve taught developers at organizations like Salesforce and the Boston Globe, and my JavaScript libraries have been used by organizations like Apple and Harvard Business School. My developer tips newsletter is read by over 14k developers each weekday.

I want to help you master vanilla JavaScript, without all of the painful false starts and roadblocks I encountered when I was learning.

Join today for free!

Get the JavaScript Projects Bundle for FREE

Join over 2,750 other people, and get instant access to all of the projects, lessons, templates, and source code.

I thank you from the bottom of my heart. If it had not been for you, I would not be able to learn JavaScript.- Patricia Parker
I recommend Chris Ferdinandi to all JavaScript learners :)- Alex Muraro
Clarity. Brevity. Unpretentious explanation. Care for best practices. Obvious attentiveness. Available to help "unstuck" students. You actually rock, Chris.- Kabolobari Benakole
As a front-ender I always found JS difficult and made the mistake "solving" my lack of knowledge with the use of jQuery and a lot of plugins.

When I stumbled over your site and watched the video I had the feeling that for the first time I had an insight how JS works and how to learn it.- Ruud van Zuidam
Very cool! Vanilla JS guru Chris Ferdinandi put together a free self-paced JS educational program with a boatload of super clear resources. Bravo!- Jonathan Stark

Frequently Asked Questions

Do the projects use new ES6 methods?

Yes. Where applicable, I cover new ES6 functions and browser APIs.

How do I access my projects?

Visit the Student Portal and create an account with the email address you used to make your purchase.

You can download the projects any time, and stream your videos or read the tutorials from any device. You can also download the videos for offline viewing.

Do I need any special tools or equipment?

All you need to work with the source code and projects is a modern web browser and a text editor (I recommend VS Code).

Do I need any prior knowledge or experience to learn vanilla JavaScript?

Ideally you're comfortable working with HTML and CSS already. Experience with another library or framework (like jQuery, React, and so on) is helpful but not required. If you're brand new to JavaScript, the projects are a great resource! If you have any specific questions, though, please email me at chris@gomakethings.com.

I have another question.

No problem! Send me an email at chris@gomakethings.com.

God, you're amazing... I'm learning so much from you.- Mojtaba Seyedi, Front End Developer

Not ready yet? Get daily developer tips.

Hate the complexity of modern front‑end web development? I send out a short email each weekday on how to build a simpler, more resilient web. Join over 14k others.

If you have any questions about anything, feel free to send me an email at chris@gomakethings.com.