Open-source JavaScript challenges v1.0

100+ JavaScript Projects, Challenges, and Patterns

Learn by building. Explore a curated set of real-world mini-projects and patterns crafted to sharpen your fundamentals and modern JS skills — from DOM to async, canvas, and more.

User 1 User 2 User 3 User 4

Join developers learning by building. Fork, star, contribute.

fizzbuzz.js
// Classic: FizzBuzz
const fizzbuzz = (n = 100) => {
  return Array.from({ length: n }, (_, i) => {
    const k = i + 1
    return k % 15 === 0 ? 'FizzBuzz'
      : k % 3 === 0 ? 'Fizz'
      : k % 5 === 0 ? 'Buzz'
      : k
  })
}

// Debounce helper
const debounce = (fn, delay = 200) => {
  let t
  return (...args) => {
    clearTimeout(t)
    t = setTimeout(() => fn(...args), delay)
  }
}

// DOM example
const el = document.querySelector('#output')
fizzbuzz(30).forEach(v => {
  const li = document.createElement('li')
  li.textContent = v
  el.appendChild(li)
})
  • 1
  • 2
  • Fizz
  • 4
  • Buzz
  • Fizz

Real projects

Small, focused builds that mirror real-world problems and patterns.

From basics to advanced

DOM, async, algorithms, canvas, storage, patterns, and more.

No frameworks needed

Pure JavaScript with minimal setup so you focus on learning.

Open & community-driven

Contribute new ideas, fixes, and examples. MIT licensed.

Explore by category

Pick a track and start shipping tiny, meaningful projects.

Sample projects

A taste of what you’ll build inside the repo.

Get started in minutes

Clone, pick a project, and follow the README instructions.

1. Clone

Fork or clone the repository locally.

git clone https://github.com/pradipchaudhary/100plusjs
cd 100plusjs

2. Pick a project

Open a folder and read its README for steps.

cd projects/01-fizzbuzz
open README.md

3. Build & learn

Implement, iterate, and compare with the reference.

node index.js
# or open index.html

Level up your JavaScript with hands-on practice

Star the repo to stay updated and contribute your own challenges.

Frequently asked

Who is this for?

Beginners and intermediates who want to strengthen core JS by building many small, focused projects.

Do I need any tools?

A browser and a code editor. Some projects can be run directly by opening an HTML file; others may require Node installed.

Can I contribute?

Yes! Open an issue or PR with a new project, improvement, or fix. Please follow the contribution guidelines in the repo.

License

MIT — free to use, modify, and share.