Skip to main content Accessibility Feedback

Rock, Paper, Scissors

Play even when your friends aren’t around by making an interactive JavaScript game.

The book cover and project

You’ll learn about DOM injection, working with objects and arrays, web accessibility, and how to structure code.

Get hands-on learning with a real vanilla JavaScript project. You get starter templates, helpful tips and resources, and step-by-step tutorials.

🔥 New! Dive deep into vanilla JavaScript with fun new projects.

The Project

When this project is done, you’ll be able to pick rock, paper, or scissors, get randomly matched up against one of those options, and be shown a win/lose/tie message.

How it works

There are two ways you can approach this project:

  1. Try to build it on your own. I provide you with a template to get started, and some recommended articles and resources to help you along the way. When you're done, check out my completed project to see how you did.
  2. Build it along with me. I'll walk you through how I would approach this project, step-by-step. I'll code in real-time, and explain what I'm doing and why.

📱Read in DRM-free ebook format or watch streaming HD video 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

BONUS: Don't go it alone! Get exclusive Slack access.

You get exclusive access to my private Slack team, where you can chat with other students, get feedback on code, ask questions, and share the latest tips, tricks, and strategies for going vanilla JavaScript.

This is not available for sale at any price, and my students regularly tell me it's one of the most valuable things that comes with the projects.

Start learning now →

The cheat sheet and the ability to ask questions on Slack were worth the price of the book alone.- David Buchholz

Go from beginner to JavaScript expert

  • 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.
  • Get the support you need to work through challenges.
  • Work on real projects and build your portfolio.

Try it for free

Want to get a sense for what a project is like? Get a free copy of the Fortune Teller project guide in PDF format.

This isn't a sample chapter. It's the full guide. The paid version comes in more formats and includes the starter template and source code for the project.

Download the PDF

Your 100% Money-Back Guarantee 💰

Don’t put off learning vanilla JavaScript! If you’re not 100% satisfied with the project, let me know and I’ll give you a full refund.

About the Instructor

Chris Ferdinandi

Hi, I'm Chris Ferdinandi. I believe there’s a simpler, more resilient way to make things for the web.

I’ve taught developers at organizations like Chobani and the Boston Globe, and my JavaScript plugins have been used by organizations like Apple and Harvard Business School. My developer tips newsletter is read by over 7,500 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.

Ready to buy?

Get everything you need to build an interactive JavaScript game:

  • The Project Guide (in ebook format, streaming HD video, or both)
  • The Starter Template
  • The Step-by-Step Tutorial
  • Tips & Resources
  • Exclusive Slack Access
  • FREE Updates for Life

Preorder now and get instant access when it's available. This project is in development and will be completed soon.

Preorder the Ebook + the Videos - $74

Want to save 30%? Get this project as part of the Complete Set.

[One of the] absolute webdev blogging MVP's of 2018- Chris Coyier
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
God, you're amazing... I'm learning so much from you.- Mojtaba Seyedi, Front End Developer

Frequently Asked Questions

Does the project include new ES6 methods?
Yes. Where applicable, I use new ES6 functions and browser APIs. I also include polyfills when available to push browser support as far back as possible.
What happens if I buy a project and you release an update? Will I need to buy the new version, too?
No. You get free updates for life, sent to you by email whenever new content is available.
Do you offer team discounts?
Yes! I offer team licenses at a steep discount. Send me an email at to discuss your needs.
Do you offer a student discount?
Absolutely! This applies to anyone in any type of schooling, including evening classes and coding bootcamps. Learn more about student discounts.
I have a poor exchange rate in USD. There's no way I can afford this.
I totally get that in some countries salaries and cost of living are such that the projects are unaffordable. Send me an email at and I'll send you a discount to make it fair for where you live.
I'm not a student. Any other discounts?
Yep. I've had a lot of helping getting where I am, and I want to pay it forward. If you're a member of an under-represented group in tech, you can get special pricing. Learn more about discounts for under-represented groups in tech.
Do you have a return policy?
Absolutely! If you’re not 100% satisfied with the project, email me at and I’ll give you a full refund.
If I buy just one project and love it, can I upgrade to a bundle?
Absolutely. Just send me an email at for a special discount code for the difference between the two packages.
If I buy the ebook and decide I'd also like the video series, can I upgrade?
Absolutely. Just send me an email at for a special discount code for the difference between the two formats.
I lost or never received my download link. What do I do?
Visit and create an account with the email address you used to make your purchase to access your downloads at any time.
Are there any restrictions on the projects, templates, and source code?
Nope. I trust you to do the right thing. My content is 100% DRM free. If you'd like to share the project with others, please email me at for information about team pricing.
Do I need any special tools or equipment to complete the projects?
All you need to work with the starter template is a modern web browser and a text editor (I recommend VS Code). The project guide comes in PDF, EPUB, MOBI, and HTML formats, so you can read it on any device you own.
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, you might want to start with my pocket guides instead. If you have any specific questions, though, please email me at
Are there any rules or requirements around the Slack team?
Yes. You must be at least 18 years old, and read and agree to follow the Code of Conduct.
I have another question.
No problem! Send me an email at

Start learning now →

Clarity. Brevity. Unpretentious explanation. Care for best practices. Obvious attentiveness. Available to help "unstuck" students. You actually rock, Chris.- Kabolobari Benakole

Not ready yet? Get daily developer tips.

I send out a short email each weekday with code snippets, tools, techniques, and interesting stuff from around the web. Join 7,500+ daily subscribers.

If you have any questions about anything, feel free to send me an email at