This story was originally published on The Smart Coder.
Let’s be honest right from the start. No matter how many books about programming you read, videos you watch, or podcasts you listen to, if you want to become a better developer, you have to practice continuously.
In the front-end space, a lot of frameworks exist: React, Angular, Vue, just to name a few. Every single one of them is awesome and without them, front-end development wouldn’t be in its current state. But what those frameworks, besides all their differences, have in common is that they are all based on JavaScript. Yep, good ol’ JS!
JavaScript is what runs the web today, no doubt. And for every front end developer, no matter if already experienced or at the start of their careers, it’s mandatory to know the basics of JavaScript, HTML, and CSS.
Frameworks come and go, but JavaScript will stay! But what's the best way to practice JavaScript? The best answer I can give you is to build projects!
JavaScript Projects
JavaScript projects are guided tutorials or javascript project ideas that help you sharpen your skills by building real applications, websites, games, components, etc. Sometimes you will find project ideas that just contain a title and a few sentences of what you should build.
Example: Build a counter with JavaScript that counts down the hours till the end of the year.
This format is good if you already have some experience and are just looking for some input.
JavaScript Projects for Beginners
However, if you are new to web development, it's often better if you look for JavaScript project examples with source code or specific JavaScript projects for beginners. These often contain a running demo application, a GitHub repository with the source code, and a step-by-step guide on how to build the project.
JavaScript Practice Projects
So for you to gain practice, I have listed nine awesome javascript project ideas that you can do to refresh your skills, learn new things about JS, and stay relevant in the future. All of them are based on pure JavaScript, some HTML, and some CSS. You can add them to your portfolio, show them to recruiters or potential employers, or keep them in your GitHub as references for future work. To be clear: This is not meant to teach you everything about JavaScript. There are perfect courses for you covering JS from A-Z. This is for building things. Getting your hands dirty. Working on your muscle memory.
JavaScript Projects Overview
- Build a Meditation App JavaScript Project
- Build a Virtual Keyboard JavaScript Project
- Build an eCommerce Shopping Cart JavaScript Project
- Build a Weather App JavaScript Project
- Build an Issue Tracker JavaScript Project
- Build a PIN Pad JavaScript Project
- Build a Landing Page JavaScript Project
- Build a Rock Paper Scissors Game JavaScript Project
- Build a Tic Tac Toe Game JavaScript Project
- Bonus: Build 9-in-1 Mini JavaScript Projects
- Bonus: JavaScript Beginner Project Ideas
- Bonus: JavaScript Intermediate Project Ideas
- Bonus: JavaScript Advanced Project Ideas
To give you a headstart, I have rated those tutorial projects for you. But that’s only my opinion, so I highly recommend that you try them out for yourself because you know how to learn best and on what level you currently are.
1. Build a Meditation App JavaScript Project
What you will build
You are going to build an application that provides ambient sound for meditation. Users can choose between different timers and sounds.
Rating
This tutorial makes use of Vanilla JavaScript, precisely what we’re aiming for. The instructor’s voice, as well as his instructions, are clear and good to understand. Furthermore, you will learn how to manipulate sound and video with JS. This is a fun javascript project that I really enjoy.
5/5 Stars
2. Build a Virtual Keyboard JavaScript Project
What you will build
You are going to build a virtual keyboard from scratch with Vanilla JS, HTML, and CSS that can be used in the browser and will be responsive and touch-ready!
Rating
I like the originality of this project, it's a great javascript project idea. I haven’t created a virtual keyboard before so doing this with just JavaScript, HTML, and CSS was really a great experience for me. The instructor's voice is clear and he explains things pretty well.
5/5 Stars
3. Build an eCommerce Shopping Cart JavaScript Project
What you will build
You are going to build a shopping cart that can be used on online shops and eCommerce sites with Vanilla JS, HTML, and CSS. The instructor makes use of Contentful, which is a headless CMS for storing product information. Learning how to deal with Contentful or a headless CMS, in general, is not the primary focus of this piece, but it’s a great service, so you won’t regret seeing it in action.
Rating
The recording of this tutorial is really long. On the one hand, that’s impressive but on the other hand also a bit laborious. The voice of the instructor is clear and good to understand. It’s sometimes a bit hard to follow him, but that’s probably because of the complexity of this project. So this is rather an intermediate js project.
4/5 Stars
4. Build a Weather App JavaScript Project
What you will build
This project is going to teach you how to build a weather application with Vanilla JS, HTML, and CSS. The instructor uses the Dark Sky API for fetching weather information, which is a great opportunity for you to learn how to interact with APIs, another great thing you can do with javascript.
Rating
This might be a good fit for your portfolio. If you already did project 1., you already know the instructor, and I can tell you he delivers high quality again. It seems like he really knows how to teach in an understandable and entertaining way.
5/5 Stars
5. Build an Issue Tracker JavaScript Project
What you will build
In this tutorial, you’re going to build an issue tracker that can be used on any website for creating issues (for example with software products) with Vanilla JS, HTML, and CSS. This can also be a good addition to your portfolio and an excellent javascript project for beginners!
Rating
The instructor has a clear concept of what he wants to build with you. His voice is clear and good to understand, and this project is a javascript beginner project.
4/5 Stars
6. Build a PIN Pad JavaScript Project
What you will build
In this javascript project, you are going to build a PIN Pad that runs in the browser and has the functionality to check PIN codes for their correctness. The instructor uses only Vanilla JS, HTML, and CSS for this tutorial. This is really an awesome javascript project idea for beginners so you definitely want to check it out!
Rating
I find it a very creative tutorial project to show you what Vanilla JavaScript is capable of. The instructor does a good job of explaining everything clearly and in an easy-to-follow way. This is a cool javascript project and I had a lot of fun doing it.
4/5 Stars
7. Build a Landing Page JavaScript Project
What you will build
Brad is going to show you how to build an interactive landing page that shows the time and the user’s name. The application uses local storage to store the name, so it’s nice for you to observe this.
Rating
Brad is well known for his complete and outstanding tutorials. This one is rather short and I would say simplistic but uses just JavaScript, HTML, and CSS and therefore is an excellent javascript practice project for beginners.
4/5 Stars
8. Build a Rock Paper Scissors Game JavaScript Project
What you will build
Building games can be a fun way to learn new things. JavaScript offers great possibilities to create browser-based games. In this tutorial project, you’re going to make the classic rock paper scissors game with JavaScript.
Rating
Like in Project 1., the instructor does a good job with this tutorial. He’s entertaining and one can follow him well. And again, this project is based on Vanilla JavaScript and a good javascript project for beginners!
4/5 Stars
9. Build a Tic Tac Toe Game JavaScript Project
What you will build
In this project, you’re going to build a tic tac toe game which is a fun, but also complex, exercise because it uses basic AI and algorithms. But apart from that, everything is made with just Vanilla JS, HTML, and CSS.
Rating
This project has a good size, a clear structure, and is fun to build. The instructor’s voice is clear and it’s easy to follow him. The explanations are really good, and you should feel pretty good in the end.
5/5 Stars
Bonus: Build 9-in-1 Mini JavaScript Projects
What you will build
This is a little bonus I wanted to present to you: one single recording that contains nine small, independent javascript projects for you to practice your JavaScript, HTML, and CSS skills on. Maybe you can use some of those snippets for your own site?
Rating
I like the idea of having multiple small snippets in one recording. The instructor’s voice could be more clear, and sometimes it’s a bit hard to follow him.
3/5 Stars
More JavaScript Project Ideas
These are without a doubt some great projects to follow along with. If you want to create something on your own without following a step-by-step tutorial, I have some more ideas for javascript projects that you can build:
JavaScript Beginner Projects
Database App with JavaScript
Task: Create a simple app that uses the IndexedDB of modern browsers for storing data.JSON to CSV Converter with JavaScript
Task: Build a simple app where users can either paste a JSON string or upload a JSON file. The app should convert the input into CSV and display it to the user.Countdown Timer with JavaScript
Task: Build a simple feature where users can enter a number of seconds and the feature starts a countdown.Quiz App with JavaScript
Task: Build a simple quiz app where users can checkboxes for the right solutions.Stopwatch App with JavaScript
Task: Build a simple stopwatch feature where users can start and stop a timer.Notes App with JavaScript
Task: Create an app where users can take and manage notes.Dollars to Cents Converter with JavaScript
Task: Users should be able to enter a number of dollars and the app presents them with the value in cents.Pomodoro Clock with JavaScript
Task: Build an app where users can create work timers (25min), break timers (5min), and features to start/stop/reset these timers.Recipe App with JavaScript
Task: Create an app where users can find recipes for different categories. Bonus: Integrate a recipe API.Lorem Ipsum Generator with JavaScript
Task: Create an app or component that generates Lorem Ipsum text according to the length the user wants.
JavaScript Intermediate Projects
Currency Converter with JavaScript
Task: Build an app to convert one currency into another.Drawing App with JavaScript
Task: Users should be able to draw simple forms and paintings in their browser window.Emoji App with JavaScript
Task: Build an app where users can search for emojis and copy them into the clipboard.Meme Generator with JavaScript
Task: Build an app where users can upload images, add text to them, and save & download them.Password Generator with JavaScript
Task: Users should be able to create random passwords with different rule sets like length, difficulty, characters, etc.Image Scanner with JavaScript
Task: Build an app that reads and visualizes metadata of uploaded images.To-Do App with JavaScript
Task: Create an app for managing to-dos.Voting App with JavaScript
Task: Create an app where users can create polls for others to vote on.Flashcards App with JavaScript
Task: Build an app where users can create flashcards for others to learn new things.Book Finder App with JavaScript
Task: Create an app where users can search for books with different criteria like the author, year, content, recommendations, etc. Bonus: Integrate a books API.
JavaScript Advanced Projects
Movie App with JavaScript
Task: Users should be able to browse movies, see ratings, find actors, get recommendations. Bonus: Integrate a movie API.Survey App with JavaScript
Task: Users should be able to create surveys for others that can then take them.Chat App with JavaScript
Task: User should be able to chat with each other in real-time.Instagram Clone with JavaScript
Task: Users should be able to experience similar features that Instagram has. For example Image upload, tagging, likes, etc.Twitter Clone with JavaScript
Task: Users should be able to experience similar features that Twitter has. For example Image upload, tagging, likes, etc.Pinterest Clone with JavaScript
Task: Users should be able to experience similar features that Pinterest has. For example Image upload, collections, likes, etc.Stock-Trading App with JavaScript
Task: Users should be able to watch charts and buy stocks (can be simulated of course). Bonus: Integrate a stock API.Analytics App with JavaScript
Task: Create an app to track user behavior on a website, such as visits, bounce rate, etc.Video App with JavaScript
Task: Create an app where users can upload and watch videos.File Sharing App with JavaScript
Task: The user should be able to upload files with or without registration.
A good idea would be that you document it when you build a project and share that with the community!
Alright, that’s it for now. And I am pretty sure you cannot wait to get started with those great tutorials. But let me tell you one more thing. Watching the videos and coding along is a good way to learn things and get practice. However, you’ll get the most out of them if you add your own flavors to the projects — enhance them, change them, combine them, improve them. Or even better: Make your own project and document the making. You’ll learn a lot and others will be thankful for it!
Also, don't forget to follow me here and on Twitter for more upcoming posts!
Top comments (22)
Thank you for sharing, I will bookmark it to practise in my own time.
Thanks, Andy!
Thank you.
Sure thing buddy!
Your content is excellent but I think the codeexampler website javascript tutorial is also the best javascript tutorial
Nice projects. I've already kicked off!
This is awesome, thanks for sharing.
I am afraid not, have a look at Zenva Academy, for example, I recall them having what you are looking for
What's about XSS? I just looked into the issuetracker video and the whole html is concatenated as a string into innerhtml. I have also seen this technic in some other video too...
Most of js frameworks solves this problem.
This is so cool! thanks!
Thanks for this post. This looks amazing... dang...
It was soo needed for me since I just completed learning JS, can't wait to get my hands dirty, thanks for the awesome resources.