Add a live typing test to any website with one line of HTML.
Configure your preferred settings using the controls above, then click Copy embed code. Paste the iframe code into any HTML page — the typing test will run fully inside the iframe without any additional setup.
When a user completes a test inside the embedded widget, a message event fires on the parent window:
window.addEventListener('message', function(e) {
if (e.data && e.data.type === 'tt_result') {
console.log(e.data.wpm); // net WPM
console.log(e.data.accuracy); // accuracy %
console.log(e.data.mode); // "words" | "time" | "quote"
}
});
theme — any theme name: dark, light, monokai, solarized, etc.mode — words | time | quotecount — word count (words mode) or seconds (time mode): 10, 25, 50, 100modifiers — comma-separated: punctuation, numbersThe widget footer includes a "Powered by TypingTest.now" link. This is a lightweight backlink that helps the site stay free — please leave it in place.
Configure the widget above, click Copy embed code, and paste the iframe snippet into your page's HTML. The typing test loads and runs entirely inside the iframe — no scripts, accounts, or API keys needed. It works in any CMS that accepts raw HTML, including WordPress, Ghost, and most site builders.
Yes. When a visitor finishes a test, the widget posts a message event to the parent page containing the net WPM, accuracy percentage, and test mode. Add a window message listener that checks for the tt_result type and you can store scores, build custom leaderboards, or trigger your own UI.
Yes. The widget is free for any website, personal or commercial, with no usage caps and no registration. The only condition is keeping the small Powered by TypingTest.now link in the widget footer, which credits the service that hosts the test engine and keeps it free for everyone.