The Forge
Hands-on coding practice, real code, real tests, graded in your browser. Solve a challenge, see exactly which assertion failed and why, and jump straight to the lesson behind it.
Live Progress Tracker
Practice Progress & Track Mastery
100% grounded in your actual sandbox test passes. Solve challenges in The Forge to build verified coding competency.
Ready to Begin
Overall Completion0 / 133 Solved (0%)
0
Challenges Solved
133
Remaining
7
Active Tracks
Track-by-Track Completion
Click any track to jump belowStart here
Track:
Difficulty:··
core
Free
Implement debounce
15 min
core
Free
Implement curry
20 min
core
Pro
Implement throttle
15 min
stretch
Pro
Implement Promise.all from scratch
25 min
core
Pro
Implement a deep clone
20 min
core
Pro
Implement an event emitter
20 min
core
Pro
Implement memoize
15 min
stretch
Pro
Implement async retry with exponential backoff
25 min
Array
warmup
Free
Implement myMap (Array.prototype.map)
10 min
warmup
Free
Implement myFilter (Array.prototype.filter)
10 min
warmup
Free
Implement myForEach (Array.prototype.forEach)
8 min
core
Pro
Implement myReduce (with and without an initial value)
15 min
core
Pro
Implement myFind (Array.prototype.find)
10 min
core
Pro
Implement mySome (Array.prototype.some)
8 min
core
Pro
Implement myEvery (Array.prototype.every)
8 min
stretch
Pro
Implement myFlat (Array.prototype.flat)
18 min
stretch
Pro
Implement myFlatMap (Array.prototype.flatMap)
15 min
Function
Promise
Object
warmup
Free
Implement myObjectAssign (Object.assign)
10 min
warmup
Free
Implement myEntries (Object.entries)
8 min
warmup
Free
Implement myFromEntries (Object.fromEntries)
8 min
core
Pro
Implement deepFreeze
12 min
core
Pro
Implement myInstanceof
12 min
stretch
Pro
Implement myNew (the new operator)
15 min
core
Pro
Implement getType (precise type detection)
10 min
Collection
warmup
Free
Implement keyBy(arr, keyFn)
8 min
warmup
Free
Implement countBy(arr, keyFn)
8 min
warmup
Free
Implement chunk(arr, size)
8 min
warmup
Free
Implement pick(obj, keys)
8 min
warmup
Free
Implement omit(obj, keys)
8 min
warmup
Free
Implement invert(obj)
8 min
warmup
Free
Implement range(start, end, step)
10 min
core
Pro
Implement groupBy(arr, keyFn)
10 min
core
Pro
Implement partition(arr, predicate)
10 min
core
Pro
Implement uniqueBy(arr, keyFn)
10 min
core
Pro
Implement mapValues(obj, fn)
8 min
core
Pro
Implement zip(...arrays)
10 min
core
Pro
Implement unzip(arr)
10 min