Role
UX/UI Designer
Duration
2 months
Tools
Figma Design, Xcode & Cursor
Type
Mobile app
Lilo on two phones: splash screen and native-language picker
Scroll

A language
behaviour app

International students often stop using their native language in daily life — it becomes reactive instead of proactive. Lilo reframes fluency as something you live through: food, events, games, and people who share your culture.

Lilo product mockup on two phones against a lilac field

Context

Overview

International students who move somewhere their native language is not widely spoken may gradually lose fluency, and with it a sense of closeness to home. Lilo is a social platform that puts that language back into everyday life through cultural events, community, and play — not classroom drills.

My Role

I wrote the PRD, shaped the visual identity, iterated in Figma, then built a working prototype in Cursor and Xcode from the wireframes and product requirements.

Timeline

About two months, from a paper sketch and first wireframes through Figma Make experiments, a third Figma Design pass (American and Indonesian builds), and a Cursor-to-Xcode prototype on an iPhone simulator.

Project brief

The ask

How might we help international students maintain fluency in their native language so they can stay connected to their culture?

Interviews with students from Indonesia, Japan, and Korea kept circling the same gap: few people on campus spoke their language, slang slipped, and thinking shifted into the host language first.

The challenge

Fluency becomes reactive instead of proactive — used with family, then left at the door.

On campus

“Only one person in my school speaks Japanese.” “If I lose it, I lose a form of communication with my parents.”

Design

How Lilo changes behaviour

The product is built to make speaking feel social and easy to reach for — events you would actually attend, games you would actually play, motifs that feel like home.

  • Social motivation — events and community bring the language back into real life instead of extra homework.
  • Environmental restructuring — spaces and rituals built around using your language, not translating someone else’s.
  • Habit formation — recurring, low-friction chances to speak and play.
  • Reduced friction — fun, welcoming flows. The logo moved from a crowded circle to a speech bubble so the mark itself feels like a conversation.

Each language build can carry its own motif. For Indonesian, that meant Batik florals on the events screens — a cultural texture, not a generic skin.

American build, Indonesian events with Batik florals, logo, and notification widgets.

Process

Working past a utilitarian first pass

Early Figma Make files had too many filters for a one-language product, and the layouts felt impersonal. I kept the messages format, then went back to Figma Design to draw a warmer home — saved suggestions, nearby events, and what’s coming up first.

Creating a motif for each language

The Indonesian version uses flowers you’d find in Batik. The idea is that every language build gets its own cultural graphics, so the app doesn’t look like one English product with a translate toggle.

Result

A working prototype

After the third Figma pass I brought the wireframes and PRD into Cursor, then previewed the app in Xcode on an iPhone simulator. The build in the demo is Indonesian, with cultural games; background motifs were dropped in that pass because they kept casting a shadow.

[TODO: add result metrics for Lilo]

Takeaways

What I’ll carry forward

Curation needs constraints

The app only felt like Lilo once it stopped trying to be every language at once. Filters and generic AI layouts fought that.

Wireframe before you generate

Figma first kept the home screen from becoming a standard utilitarian template. Cursor was faster once the picture was clear.

Tools are part of the craft

Moving between Figma, Cursor agents, and Xcode was the job — including learning when a motif had to wait so the prototype could stand.

Final Lilo screens from the Cursor and Xcode prototype
Next project Eleara