Ludus
Ludus is a language platform built to be your second brain for learning. Manual flashcard creation wastes study hours, so Ludus comes pre-loaded with custom dictionaries. Save any word, and it automatically becomes part of your daily study deck. Ludus means both “play” and “school” in Latin. The Romans knew something we've forgotten: the best learning feels like play. We're bringing that back.

Illustration by Katelyn Oh
Design from zero
Claude Code and Codex represent a shift in what a solo designer can ship. With Ludus, that meant taking my Figma designs all the way to a polished, production-ready product. As head of design it was my responsibility to handle the design, animation, illustration, and all of the frontend implementation across the company.
The Lifecycle of a Ludus node
We spent a lot of time brainstorming how we wanted our curriculums page to make users feel. After countless iterations, we landed on an isometric-node system built out in Rive. The data binding capabilities Rive offered, allowed us to bring personality to what would have been a simple interaction. Rive's lightweight runtime also meant we could display multiple instances on one screen without any drop in performance. Below you can cycle between each phase of the node that users experience.
Stadiums
Popular ed-tech apps such as Duolingo, Brilliant, and Speak utilize a straight forward trail of guiding a user from their first step all the way to mastery. At Ludus, we embraced this model but layered in something more familiar to our audience: the gyms and badges from Pokémon. The result was a progression-based map where users complete activity nodes, collect badges, and advance through themed units we called Stadiums. Each one carries its own CEFR level and visual identity, brought to life through dynamic environment blocks that shift based on where the user is in their journey. This addition grounded the nodes on screen while reinforcing the world we were building around our app.
Bringing life in between the frame
Over the course of building out Ludus, I came to the realization that most of the magic that users experience happen in between the interactions. Small moments of delight follow taps, morphs, and transitions to promote engagement throughout our app. Details like these often serve multiple purposes such as buying load time, providing context, and guiding the user visually without explanation.
Closing
Ludus was my first experience building out a company from zero. After putting so much time and attention into every detail, I have a new-found appreciation for uncommon care in software. A large portion of my design process and intuition is heavily inspired by the goats: Benji Taylor, Jakub Krehel, Josh Puckett, and Emil Kowalski. I highly recommend anybody interested in creating beautiful software to study and learn from them.
If you have any questions about Ludus feel free to reach out @Mattiasmade or by email.