Coffee with my mom and our family overseas
I built Finjan for calls with my mom, and to give her another way to spend time with our family overseas.
We open it alongside a phone call, choose our coffee, and join the same 3D table. We can see each other’s cups, take a sip, make a wish, and read the grounds together.
- Role
- Design and development
- Made with
- Three.js · Supabase · Claude
- Status
- Live prototype
- When
- 2026

From order to reading
Tap the phone to go through it yourself.
TL;DR
A 3D coffee ritual for my mom and me.
- Opened beside a phone call, so our conversations have a shared table.
- Joining is a link: no account, large text, and four choices.
- The ritual, step by step: pour, sip, wish and flip, cool, read the grounds.
- Together mode: we see each other sip and flip.
- Talk cards: either of us draws, and the same prompt shows on both phones.
- Three settings, in English and Syrian Arabic.
Why I made it
I wanted our calls to feel more like a visit.
I wanted something my mom and I could do together while we talked on the phone.
Coffee gave me a familiar place to start: choosing a cup, pouring, sipping, and taking our time together.
I also wanted her to be able to share it with our family overseas.
Finjan stays open beside the call. We use the phone for the conversation and Finjan for the table.

Getting started
Open a link. Choose a cup. Join the table.
I wanted inviting my mom to be as simple as sending her a link. She can join without creating an account.
The setup asks for a name, coffee style, cup, and sweetness. I used large text and kept the choices short so we could get to the table without much explanation.
The coffee choices include Syrian coffee with cardamom and Turkish coffee. Each person chooses their own cup, so we can recognize whose is whose once we’re sitting together.

The coffee
We follow the ritual at our own pace.
The steps come from the coffee ritual itself.
Choose the coffee and sweetness. Pour and sip. Make a wish, flip the cup, let it cool, then read the grounds.
I kept those actions separate so we could take our time. We can leave Finjan open while the conversation carries on, then return to the coffee when we want to.
- Order

- Pour

- Sip

- Wish

- Flip

- Wait

- Read

Sitting together
I can see when she takes a sip.
In together mode, we each have a seat and a cup at the same table. When someone sips or flips their cup, the others can see it happen.
That gives us something to respond to during the call. We can follow each other through the ritual, compare our cups, and look at the readings together.
Empty seats let someone else join, including family calling from another country.

Talk cards
A question for when we’ve run out of updates.
I added talk cards after using Finjan on our calls. Sometimes we’ve caught up on the week but want to keep talking.
Either person can draw a card. It appears on both screens with the name of whoever drew it.
I wrote prompts about family, memory, and home in English and Syrian Arabic. The deck has three levels: Warm up, Opening up, and From the heart. We can choose how much we feel like sharing.
The cards are optional. We can draw another, stay with one question, or ignore them and talk.
- Nisa

- Mom

The setting
Somewhere we’d like to sit.
I made three places to have coffee: a Damascus courtyard, a coffeehouse, and a table above the city at night.
We can change the setting without starting the coffee again. Cups, flowers, water, and optional music help give each place its own feel.
For the interface, I drew from Damascene Ajami interiors: gilt arches, painted borders, and Arabic calligraphy. I wanted those details to feel familiar to my family, and each place to be worth looking around.

Courtyard
أرض الديار
Morning
Limestone and jasmine white with dark ink and a deeper gold, and fountain turquoise for small accents. Calm and bright.

Coffeehouse
قهوة شامية عتيقة
Late afternoon
Amber and lantern light, honey-brown walnut, cream text and pale gold. The warmest of the three.

City at night
سهرة عالبحر
Evening
Lapis blue taken from the night sky rather than black, with moon-gold and cream. The calmest and coolest.
Language
It should sound like us.
Finjan works in English and Syrian Arabic. The Arabic interface reads from right to left.
I paid attention to the smaller pieces of language too: how we’re welcomed, how we choose our coffee, and what the instructions ask us to do. Those words are part of the visit.
I’m continuing to refine the wording as I use it.
- English

- العربية

Designing and building
I worked through the design in the browser.
I designed and built Finjan with Claude as a coding partner, using Three.js for the 3D scenes and Supabase to keep the shared experience in sync.
Working in code let me try the coffee actions, camera positions, and interface together. I could pour a cup, use the controls on my phone, notice what felt awkward, and change it.
I made the decisions about the scenes, cups, language, and order of the ritual. Having my mom in mind helped me judge the details: could she read this, would she know what to tap, and would it interrupt our conversation?
Before
Now
Where it is now
Live, with more to work through.
Finjan is a working prototype. The coffee readings are drafts, and I want someone who knows the tradition to review the symbol meanings before I call them finished.
I’m still refining the language and shared experience. I also want to learn which talk cards we return to and how it works for my mom when she uses it with our family overseas.


On Nisa’s phone, with Mom at the table
01 / 09Reflection
The person I was designing for was never abstract.
I knew who would open the link, which language she might choose, and whose company she wanted to share.
That made the decisions specific. An account would be another step before joining. Small text would be harder to read. Too many instructions would take attention away from the call.
I started with the idea of having coffee with my mom. Building it gave me a way to think about how she could share the same visit with family farther away.
Next independent project
Tend
The energy, carbon, and water behind your AI coding.