Project 003
Kokomata.
Location discovery app
A quiet, location-based journal for Japan. Leave a few words at a place in about ten seconds; the moments you keep stay in your journal, on a map you uncover as you go.

- Year
- 2026
- Place
- Japan · Kyoto, Nara
- Role
- Design + build
- Type
- iOS + Android app
- 2
- Languages, JA + EN
- 10s
- To leave a note
- 2
- Platforms, one codebase
- Offline
- Journal stays readable
The idea
Most map apps tell you what is nearby and ask nothing of you. Kokomata is the opposite. It is a calm place to leave a few words at somewhere real and keep them, and its whole promise fits in a sentence the app itself makes: anywhere, in about ten seconds, you can leave one line; what comes back to you is only whether it was received, or not; and the words you keep stay in your journal for good.
What we built
A bilingual mobile app, in Japanese and English. You uncover the map as you move, keep the places and moments worth remembering in a journal, and write a note short enough to finish while you are still standing there. Every screen was designed for Japanese first, set in Noto Sans and Noto Serif JP, rather than translated after the fact.
How it is engineered
- One codebase, two stores. Built with Expo and React Native, the same code ships to iOS and Android through EAS, with over-the-air updates for fixes that should not wait on a review queue.
- A native map. MapLibre renders the map on-device and is themeable, so it matches the app's light and dark moods instead of fighting them.
- Location with consent. Location is asked for explicitly, and only when a feature needs it. If it is off, the app says so plainly and points to Settings rather than nagging.
- Offline-tolerant. Your own journal stays readable without a connection, and a saved note tells you clearly whether it has reached the server yet.
- Quiet by default. Motion respects the system's reduced-motion setting, and there is no infinite feed to fall into.
The fine print
Built with Expo and React Native (expo-router) and released to both stores through EAS with over-the-air updates. The map is MapLibre rendered natively; data and auth run on Supabase; interface text is handled with i18next across Japanese and English; and motion uses Reanimated. Type is set in Noto Sans JP and Noto Serif JP, with crash and error reporting through Sentry.
- Expo
- React Native
- expo-router
- MapLibre
- Supabase
- i18next · JA/EN
- expo-location
- Reanimated
- Noto Sans JP
- Sentry
Want something
like this?
Thirty minutes, no slides, no obligation. Tell us what you are trying to build and we will tell you honestly what it would take.