Write JavaScript that passes the tests you cannot see.
45 practical exercises, from arrays and strings to dates, data shaping and async. Write a function in your browser, run it, and see exactly which tests pass.

Read the task, write the function, run the tests.
- 01See the examplesEvery exercise gives you the function name, its signature and calls with the results they should return.
- 02Write JavaScriptType in the editor and press Run. Your function runs in a sandboxed worker with a 3 second limit, and console.log output is shown.
- 03Pass the hidden testsSyntax errors with the line, runtime errors, wrong names, the first failing example with expected and actual values, and edge cases you did not think of.
Five levels, from your first reduce to a concurrency limit.
| 01 | Basics | Sums, filter and map, includes, reversing words, capitalizing, counting vowels, clamp and range. |
| 02 | Arrays and objects | groupBy, countBy, uniqueBy, chunk, zip, flattening one level, pick, stable multi-key sorting and merging settings. |
| 03 | Strings and dates | Slugs, truncating with an ellipsis, money with Intl, query strings, aligned text tables, UTC date math and durations. |
| 04 | Data shaping | CSV text to objects, totals per customer, pivots, top N with ties, running totals, deep get by path, deep equality and left joins. |
| 05 | Async and functions | sleep, retry, Promise.all with a concurrency limit, debounce on a fake clock, memoize, once, pipe, timeouts and running tasks in sequence. |
Timed mode for real speed.Each exercise gets a clock. Hints and solutions stay locked until time is up, and your best times are kept.
Start free. Pay once you are hooked.
Free
- The first 5 exercises
- Example and hidden tests on every run
- Hints, reference solutions and timed mode
Pro
- Objects, dates, data shaping and async patterns
- Reference solutions with explanations
- Progress and best times saved to your account
Payments open soon. The free exercises work now.
Questions
Who is this for?
Working developers who want everyday JavaScript to come out right the first time, and learners who know the syntax and want practice that looks like real work: shaping data, handling strings and dates, and getting async code to behave.
Do I need to install anything?
No. Your code runs in your own browser, in a separate worker with no network access, so it starts instantly and nothing you type is executed on a server.
How is my code checked?
Your function runs against the examples you can see and a set of hidden tests with edge cases: empty input, unicode text, negative numbers, ties and large inputs. Results are compared with a deep equality that understands arrays, objects, Dates and NaN, with a small tolerance for floating point where it applies. You see which tests pass after every run. After two tries, the first failing hidden case is shown.
What happens with an infinite loop?
Each run is stopped after 3 seconds and you are told the code timed out. Async exercises run on a fake clock, so a sleep of 10 seconds is checked instantly and exactly.
Is this puzzle practice?
No. There are no brain teasers or trick questions. The tasks are the small functions you actually write: grouping records, parsing query strings, formatting money and durations, retrying a failing request.
Do I need an account?
No. The first five exercises work without one and save progress in your browser. A free account saves progress across devices, and Pro unlocks the rest.
How do I cancel the monthly plan?
Open Account and choose Cancel subscription. That is the whole process: you keep Pro until the end of the period you paid for and are not charged again. If Pro is not for you, you get a full refund within 14 days of paying.
What if my answer is right but marked wrong?
Answers are checked on the result they produce, not on how they are written, so any correct answer passes. If a check still gets it wrong, use the report link under the result. Reports are reviewed, and a check that is wrong gets fixed.