Monthly
A focused month of practice when your interview is close. This plan renews until you cancel it.
- Complete premium library
- Cancel before the next renewal
Billed $19 each month. Tax included.
Solve real UI tasks in the browser, run the tests, and then study the solution. Practice the same problem in React, Vue, Angular, or vanilla JavaScript.
Four ways to join
Every paid plan includes the same question library, framework variants, test runner, and solutions. Only the billing schedule changes.
Subscriptions
A focused month of practice when your interview is close. This plan renews until you cancel it.
Billed $19 each month. Tax included.
A year of access for a longer job search or regular interview practice. It renews once a year.
$4.92/month
Billed $59 once a year. Tax included.
Pay once
Twelve months of Premium with one payment. Access ends after a year and never renews.
One payment of $69. Tax included.
Pay once and keep access to the library, including premium questions added later.
One payment of $179. Tax included.
How practice works
Write the code, check the tests, switch frameworks, and review the parts you missed. Each example below shows that part of the workflow.
Step 1 / Write and test
The prompt, editor, and test results stay in one workspace. Start from the provided files and see which case still fails before you submit.
Write the answer and run the tests.
Write and test
function debounce(fn, wait) { let timer; return function (...args) { clearTimeout(timer); timer = setTimeout(() => { fn.apply(this, args); }, wait); };}Step 2 / Switch frameworks
Practice the same component in React, Vue, Angular, or plain JavaScript. Each variant has starter code written for that framework.
Change frameworks without changing the question.
Switch frameworks
const [open, setOpen] = useState(false);
// Build the same behavior
toggleAccordion();Live preview
Gives the page structure and meaning.
Step 3 / Review the solution
Compare your code with the worked answer. The notes point to the failing case, the fix, and the reasoning you can explain in an interview.
See why your first answer missed an edge case.
Review the solution
function submit(value) {
if (submitting) return;
send(value);
}4 tests passed
The missed case
A fast second click starts another request.
The fix
Disable the action while the first request is pending.
Why it works
One guard prevents duplicate submissions.
The free questions include the browser workspace. Premium adds the complete catalogue, every framework variant, and the worked solutions.