Hello, checkiomates🐱👤!
Don't just set a great goal for 2026—guarantee it! Commit to mastering Python and TypeScript this year with CheckIO and secure an immediate 30% discount on your full 2026 annual subscription. This exclusive offer grants you 12 months of unlimited access to thousands of real-world missions and expert solutions for both languages, ensuring you move from coder to master developer. This massive 30% savings disappears permanently on December 31st, 2025. Secure your 2026 skill upgrade now before the opportunity is gone!
This week, we look at new development tools, starting with the JS/TS Modernizer preview from Microsoft for updating legacy code. We then dive into the fun and challenge of implementing 2D physics using only JavaScript, and explore the latest and greatest features with the CSS Wrapped 2025 recap. Our mission challenges your string manipulation skills by asking you to count the vowels in a given text, case-insensitively.
💡TIP
On Easy difficulty, each of the few starting stations is dedicated to a distinct data type. If you want to discover all CheckiO features, visit our tutorial. It's a longread, but it's worth it!
🏁MISSION
Count Vowels by freeman_lex -
This function should take a string as an input and return the count of vowels (a, e, i, o, u) in the string. The function should be case-insensitive.
assert.strictEqual(countVowels("hello"), 2);
assert.strictEqual(countVowels("openai"), 4);
assert.strictEqual(countVowels("typescript"), 2);
📖ARTICLES
Announcing the JavaScript/TypeScript Modernizer for VS Code -
Microsoft has unveiled a tool that analyzes a project and suggests an upgrade plan for both syntax and dependencies.
Golfing a 2D physics engine in JS -
A lovely, and rather old-school style post about building a simple physics engine from scratch in JavaScript then golfing it down to just 2KB of source
Chrome team's CSS Wrapped 2025 -
The Chrome DevRel team will guide you through 22 CSS and UI features that landed on the Web Platform, fresh from the kiln.
👩💻CODE SHOT
What do you think the following code does?
function checkio(arr: string[]): string {
return arr.reduce(
(a, b) => {
let c = 0;
while (c < a.length && c < b.length && a[c] == b[c]) ++c;
return a.slice(0, c);
}
);
}
🙌 Thanks for your attention! Hope to meet you at CheckiO, as well as at our Instagram and Twitter! We are really interested in your thoughts! Please, leave a comment below! ⤵
