One keyboard, two languages: building Tipito
Tipito is a typing game for teenagers and young adults in Luxembourg. You learn to touch type, and the words you type are French and Luxembourgish, so vocabulary comes along for free.
The layout is not the language
My first build assumed that French words meant a French keyboard. Then I watched people play. In Luxembourg most keyboards use the Swiss layout, QWERTZ, even when people write in French.

Lessons describe fingers, not keys
So a lesson no longer lists letters. It lists rows and fingers, and the player’s layout decides which characters those are.
const layouts = {
'fr-CH': { top: 'qwertzuiop', home: 'asdfghjkl' },
'fr-FR': { top: 'azertyuiop', home: 'qsdfghjklm' },
};
function lessonKeys(lesson, layout) {
const rows = layouts[layout];
return lesson.rows.flatMap((row) => [...rows[row]]);
}What playtesting changed
- Accents get their own lessons; nobody types é by accident.
- Luxembourgish words appear only once the home row is solid.
- Mistakes slow the game down instead of ending it.
The best feedback came from watching hands, not reading scores.
Tipito is still in build. The next step is a short playtest with a school class, in both languages.
Building something and need a designer who can also ship it? Get in touch →