JavaScript projects
JavaScript projects for learning by building
Build JavaScript projects for beginners and intermediate learners, including counters, calculators, todo lists, form validators, API apps, storage projects, async tools, modules, classes, and regex utilities.
JavaScript project ideas by skill
Beginner
Counter app
Build a small counter with increment, decrement, reset, and limit logic to practice variables and operators.
Build checklist
- A visible count
- Increment and decrement buttons
- A reset action
- JavaScript variables
- state updates
- button events
Beginner
Tip calculator
Create a calculator that reads bill amount, tip percent, and people count to produce a per-person total.
Build checklist
- Input validation
- A total calculation
- A formatted result
- JavaScript functions
- number conversion
- return values
Beginner
Todo list
Build a list where users can add tasks, toggle completion, filter items, and remove finished work.
Build checklist
- Add task flow
- Completed state
- Filter controls
- JavaScript arrays
- array methods
- DOM rendering
Beginner
Profile card builder
Model user data with objects and render a profile card with optional fields, tags, and editable values.
Build checklist
- A user object model
- Rendered profile fields
- Safe missing-field behavior
- JavaScript objects
- destructuring
- optional chaining
Intermediate
Interactive page editor
Let users update headings, theme classes, and content blocks directly in the browser.
Build checklist
- Editable text
- Theme toggles
- Dynamic element creation
- JavaScript DOM
- querySelector
- classList
Intermediate
Delegated menu
Create a menu or toolbar that handles many buttons with one shared event listener.
Build checklist
- One parent event listener
- Multiple button actions
- Dynamic menu items
- event delegation
- DOM events
- data attributes
Intermediate
Weather search interface
Build an API-backed search page with loading states, response handling, and useful errors.
Build checklist
- Search input
- Loading and error states
- Rendered API results
- JavaScript fetch
- async requests
- error handling
Intermediate
JSON settings importer
Parse JSON settings, validate expected fields, and render a preview before applying changes.
Build checklist
- JSON input
- Validation messages
- Preview and apply actions
- JSON parse
- JSON stringify
- data validation
Intermediate
Persistent notes app
Save notes in browser storage so a learner can reload the page and keep their work.
Build checklist
- Create and delete notes
- Persistent storage
- Empty-state UI
- localStorage
- browser storage
- serialization
Intermediate
Form validator
Validate a signup form with inline messages, submit handling, and progressive checks.
Build checklist
- Required-field checks
- Submit handling
- Inline validation messages
- form submit
- input validation
- DOM events
Intermediate
Regex text cleaner
Use regular expressions to normalize whitespace, extract numbers, and validate simple text patterns.
Build checklist
- Whitespace cleaner
- Pattern tester
- Extracted matches
- JavaScript regex
- string replacement
- pattern validation
Intermediate
Class-based shopping cart
Use classes to model products, cart items, totals, discounts, and reusable behavior.
Build checklist
- Product and cart classes
- Add/remove item behavior
- Computed totals
- JavaScript classes
- methods
- encapsulation
Intermediate
Modular utility library
Split reusable formatting, validation, and data helpers into ES modules with explicit imports and exports.
Build checklist
- Named exports
- A shared utility module
- A page that imports only what it needs
- JavaScript modules
- import export
- utility functions
Intermediate
Async dashboard
Combine multiple asynchronous data sources and render the dashboard only after the required data is ready.
Build checklist
- Parallel async loading
- Combined result rendering
- Failure handling
- async await
- Promise.all
- loading states