Inspiration
Every outing can begin with the same question: who can give me a ride?
Mukauyo started with an older adult who had to call family members, relatives, and friends one by one to find someone available. When nobody could help, figuring out bus routes and timetables added another hurdle. Sometimes, that meant giving up on an outing or a chance to see friends.
We wanted to make asking a trusted circle for a pickup easier. Mukauyo means “I'm on my way” in Japanese—the answer someone is hoping to hear.
What it does
Mukauyo is an iPhone app for immediate pickup requests within a small, trusted group.
- Choose a saved destination and tap the pickup button.
- The app captures the pickup location once and sends a generic notification to eligible helpers.
- A helper reviews the pickup location and destination, then chooses a 10-, 20-, 30-, or 60-minute arrival estimate to accept.
- The requester sees who is coming and their estimated arrival time. The helper marks arrival to finish the request.
The first valid acceptance wins, so the group has one assigned helper. An administrator sets up destinations, invitations, and roles, keeping the requester's everyday screen focused on asking for a pickup.
The interface supports Japanese and English. Users can switch languages on the Welcome or Account screen, and their choice is saved on the device for future launches. The app is for adults aged 18 and over and requires iOS 18 or later.
How we built it
The app uses native SwiftUI, Swift Concurrency, MapKit, Sign in with Apple, and Apple Push Notification service. A TypeScript API built with Hono runs on Cloudflare Workers, with Cloudflare D1 for persistence and an OpenAPI contract shared across the project.
The server owns request state, role permissions, and helper limits. Conditional database updates ensure that two helpers cannot both accept the same pickup.
RevenueCat powers Family Monthly. The free plan supports three enabled helpers; Family expands that to ten. The upgrade appears when the administrator tries to assign a fourth helper, connecting the purchase to a concrete need. Purchase restoration and server-side entitlement checks are part of the implementation.
Challenges we ran into
The smallest interaction needed the clearest rules behind it. We separated group administration from pickup roles, handled simultaneous acceptance, and made cancellation, withdrawal, and expiry explicit.
Location also required careful boundaries. Mukauyo takes one pickup-location snapshot instead of continuously tracking someone. Lock-screen notifications omit names and locations. The service removes the active pickup location when a request completes, is canceled, or expires; recovery-backup retention is explained in the privacy policy.
Another challenge was keeping the interface simple without making important states ambiguous. Large actions, native text styles, and explicit waiting and assigned states help communicate what to do next.
Supporting Japanese and English meant carrying the language choice through app screens, error messages, and accessibility labels while preserving the current pickup flow. The language preference stays on the device rather than becoming another piece of account data.
Accomplishments that we're proud of
- A focused request flow: choose a destination, then ask for a pickup.
- One assigned helper with an arrival estimate, backed by server-side coordination.
- A subscription tied to expanding a trusted support circle.
- A native Japanese and English interface with an in-app language switch, a saved language preference, and Dynamic Type and VoiceOver support built into the design.
What we learned
Reducing the number of steps on screen requires precise decisions behind the screen: who can see a location, when an invitation becomes useful, what happens when two people respond, and what a family keeps when a subscription ends.
We also learned to distinguish implementation checks from real-device evidence. Automated tests can exercise permissions and request races, while push delivery, Apple sign-in, and purchases need separate device validation.
What's next for Mukauyo
The next priority is to learn from real pickup coordination. Can requesters ask comfortably? Can helpers respond clearly? Can administrators complete setup without assistance? These observations will guide improvements to onboarding and everyday usability.
The current app focuses on immediate requests to trusted people. It does not book transport, provide live tracking, or offer emergency assistance.
Built With
- apns
- cloudflare-d1
- cloudflare-workers
- hono
- ios
- mapkit
- revenuecat
- sign-in-with-apple
- sqlite
- swift
- swiftui
- typescript
Log in or sign up for Devpost to join the conversation.