Woven City — aerial view

Woven by Toyota · 2023 – Present

Weaving the future
of a city

Woven City is an experimental smart city in Susono, Shizuoka, built by Toyota as a real-world environment for testing what the future feels like.

Details

Toyota — Woven by Toyota company
UX / UI Designer, Cross-platform role
End-to-end UX, design systems, multi-role access, accessibility, payments scope

0 years

to build a city

0

initial residents

0

planned residents

The product is driven by a cross-functional team of product managers, engineers, designers, researchers, and writers. This collaboration influenced key aspects of our design process.

End-to-end UX

UX across the entire product lifecycle — problem framing, research, flows, prototyping, validation, and developer handoff. Focused on clarity and measurable outcomes.

Design system

Designing within (and actively improving) a large-scale design system — refining components, interaction patterns, and documentation to keep the product consistent and scalable.

Kaizen culture

Finding friction points and turning them into incremental, measurable improvements. Prioritizing step-by-step iteration over big rewrites, so quality compounds over time.

Multi-platform

Cohesive experiences across web, mobile, enterprise platforms, and connected devices (React, Flutter, ServiceNow) — including AI and Slack-integrated workflows.

Since 2023 I have been working at Woven City on many complex product initiatives. Some of my responsibilities have included:

01Define product behavior, not only UI

02Cover edge cases, error states and empty states

03Contribute to PRDs and point out missing logic

04Help product managers compare product options

05Discuss limitations and implementation options directly with engineers

06Protect important UX decisions when simplification would damage the experience

07Find missing product logic

08Check technical feasibility early

09Balance UX, cost, and implementation effort

10Turn complex permissions into clear flows

11Create realistic working prototypes

12Prototype before development

13Use code to test interaction ideas

14Build reusable patterns and components

15Define design-system states and exceptions

16Work across web and mobile

17Prepare prototypes for user research

18Help researchers define what to test

19Turn findings into product changes

20Design bilingual product experiences

21Check accessibility behavior

22Design CRM and enterprise workflows

23Learn and reuse technical libraries

24And more

Woven City App

One app, one city, designed for the people who live, work, and create together.

Send messages Make payments Read news Check balance Onboard Woven City mobile experience

Woven City App — the official city platform, connecting residents and inventors to events, projects, and each other.

App features Everyday city essentials

Access to latest information. Stay up-to-date with real-time news and notifications from around the city.

Connect through events & projects. Discover a space where weavers and inventors meet — online and in person — to build the future of the city together.

Everyday life in one place. One app for payments, household services, and support from the city team.

Challenges Core product gaps

The app lacked several core product foundations: a complete in-city payment flow, effective resident-to-team communication, a dedicated account experience, consistent accessibility across key journeys, and efficient workflows for higher-frequency use.

Result Measurable gains

We filled these gaps across the core product experience, improving payment completion from 75% to nearly 90%, reducing payment-related support requests by roughly one third, establishing a more consistent accessibility experience, and growing Chat into one of the app’s most successful and actively used features.

Some examples of my design flows

Feature

Payment & Transfer

Challenge: Designing a high-trust money transfer flow under strict security, system, and real-world constraints.

What was my role

Redesigned how payments are structured and used, improving card, balance, and transaction history views while introducing new send and top-up flows. Defined the end-to-end experience, including system states, edge cases, and error handling, in close collaboration with engineering and payments teams.

Initiation

Send flow

Authentication

Biometric confirmation

System feedback

Push notifications

Post-transaction visibility

Payment details

In finance-related flows, small interaction details have a big impact on how confident people feel.

I focused on a few simple principles that make it easier to see what’s happening, recover from mistakes, and trust that every change to the balance is intentional.

Transparency

Explicitly surfaced who you’re sending to, from which balance, and the exact amount in a single, high-contrast summary screen.

Predictable Errors

Defined UX for insufficient balance, network timeouts, duplicated taps, and server-side validation errors.

Post-action Trust Building

After a successful transfer, both sender and receiver see a consistent pattern: updated balance, a confirmation state, and a history entry so they can verify what happened later.

Progressive Disclosure

Users first pick the recipient and amount, then see a clear “final check” state before committing.

Edge-case Support

Worked with engineers to keep failure messages specific and actionable: “Your balance is now X; you need at least Y” instead of “Something went wrong.”

Immediate Feedback

Real-time balance updates help users connect their action with the exact change, reducing uncertainty about whether the transaction went through.

Send money

I focused on making the send money flow clear and focused, removing unnecessary distractions from the task. The recipient’s profile helps users confirm they are sending money to the right person, while the available balance provides context as they enter the amount. Before sending, users can review the details and confirm the transaction with confidence.

Searching for a recipient
Search recipient
Selecting an amount to send
Select amount
Confirming the recipient and amount before sending
Confirming
Authenticating before the money is sent
Authenticating

Top-up flow

I designed the top-up experience to feel simple and effortless, while keeping users informed throughout the process. Predefined amounts make it easy to choose a common value without entering it manually, while clear feedback and carefully considered error states help users understand what is happening at each step. The result is a flow that requires minimal effort while still giving users a sense of control.

Setting the top-up amount and payment method
Amount & method
Processing the top-up
Processing
Successful top-up
Success
Top-up error
Error

Microinteractions can make financial flows feel more empathetic.

By animating the numbers changing, we gave clear visual confirmation of the action. It reduces stress by removing doubt and showing right away that the money was added, making the app feel more responsive and humane.

Balance updating after a payment

Results

After the redesign, we saw top-up completion rise from about 75% to just under 90%, and the typical time to finish a top-up dropped from a little under 40 seconds to around 25 seconds. Payment-related support tickets about top-ups went down by roughly a third, which matched what we heard in feedback sessions: people described the new flow as “safer,” “more predictable,” and said it was easier to see exactly what was happening to their balance at each step.

System

Roles and Profiles

Woven City App roles and profiles screens

Challenge

One app, one city — but very different people need to see and do different things.

The Woven City App needed to support different ways of participating in the city, like visitors, residents and inventors. This role structure influenced what people could access, how they interacted with others, and how information was presented across the app.

As the experience evolved, Profile became another layer connected to this role model — giving users a way to introduce themselves and be represented within the community.

What was my role?

I worked across the role and profile experience, translating product requirements and operational rules into a clear interaction model and a consistent UI experience.

Role & access model

I defined how different user roles affected visibility, communication, notifications, and available actions across shared product surfaces such as the feed, projects, events, and chats.

The goal was to create a consistent model that could work across the wider app, while accounting for the different ways people participate in the Woven City.

Profile experience

Building on this structure, I designed the Profile experience for roles where a personal profile was relevant. The profile allowed users to introduce themselves through photos, interests, hobbies, and other personal information.

I designed the journey from introduction and onboarding through creation and editing, including empty, incomplete, and completed states. Profile visibility and states were also considered in the context of how people interact with each other across the app.

Completion & editing

I designed the experience to make profile completion clear without making the process feel like a form to fill out. Users could see how complete their profile was and what information was still missing, while inline editing and bottom sheets allowed them to make changes without leaving the page.

I also worked through input validation and edge cases, including character limits, invalid inputs, incomplete information, and other error states, keeping feedback clear and actionable throughout the flow.

Autosave & feedback

I worked closely with engineers to introduce auto-save, removing the need for users to manually save each individual change. Together, we defined the interaction states around saving, successful saves, and failed saves, so users could understand what was happening without interrupting the editing flow.

Collaboration & implementation

Throughout the process, I worked closely with product, engineering, research, and city teams, translating requirements into UI behavior and refining the experience through implementation and UAT.

I also contributed to bilingual UX copy and worked through details with the team as the design moved from concept to the implemented product.

Results

The role model became a shared foundation for city communication, with visibility, chats, and targeted notifications relying on consistent access patterns.

Profile built on this foundation, giving people a more expressive way to represent themselves. Over half of users completed 5+ profile fields, showing that people went beyond the minimum requirements to share their interests, background, and preferences.

Feature

Chats

Chat list with recent conversations
Chats
Composing a message in a one-to-one chat
Composing message
Group chat with an error when images cannot be uploaded
Upload error
Confirmation before leaving a chat and losing access to its history
Leave confirmation

Challenge: Creating a reliable chat experience in the Woven City App that seamlessly integrates private conversations with Official Account interactions.

The goal was to ensure users could easily grasp their current context, compose and send messages, navigate various conversation types, and recover smoothly when things didn’t go as planned.

What was my role

Contributed to the zero-to-one design and refinement of mobile chat in close collaboration with Product, Engineering, UX Research, and QA.

I worked across conversation structure, Official Account chat, message composition, sending feedback, loading behavior, error recovery, and conversation continuity.

Conversation initiation

Opening a chat and understanding the conversation context, including the distinction between private conversations and Official Account chats.

Message composition

Entering text and preparing messages within the chat experience.

Sending and system feedback

Defining clear feedback for sending, loading, failed actions, and retry behavior.

Conversation continuity

Keeping rooms and message history understandable when users returned to a conversation or when content was still loading.

In chat experiences, small interaction details have a major impact on whether communication feels reliable.

I focused on making it clear which conversation the user was in, what action had taken place, and what they could do next.

Clear conversation context

Helped distinguish private conversations from Official Account chats, giving each type a clearer place within the overall chat experience.

Predictable interaction states

Defined behavior for loading, sending, failed actions, delayed responses, repeated taps, and unavailable services.

Official chats

Supported a dedicated conversation experience for Official Accounts, allowing users to interact with organizations or services through the same familiar chat environment while maintaining a clear distinction from private conversations.

Conversation continuity

Refined room and message behavior so users could return to ongoing conversations without losing context, especially when content was loading or the system was recovering from an issue.

Consistent interaction patterns

Created reusable patterns for composing, sending, receiving feedback, and recovering from errors across different chat contexts.

Edge-case support

Worked with engineers to identify less common scenarios, including interrupted requests, duplicate actions, delayed responses, and messages that could not be sent.

Results

Chat was one of the most successful features of the Woven App. It had high adoption and continued to grow throughout the year, with users not only viewing conversations but coming back regularly and actively participating. This made Chat an important part of everyday communication in the Woven City community and gave us a strong signal that there was demand for more community-oriented ways of communicating. We introduced more consistent patterns for conversation context, message composition, sending feedback, loading, and failure recovery. The resulting experience made chat easier to understand while providing a foundation that could support additional conversation types and future product development.

System

Accessibility

VoiceOver accessibility audit detail

Challenge

As the product grew, accessibility decisions were made incrementally across different features. Over time, this led to unclear labels, uneven reading order, and interactions that did not always behave predictably for screen reader users. Core flows worked visually, but for VoiceOver users they could feel noisy, repetitive, or hard to navigate.

What was my role

I contributed to the UX side of an accessibility pass, working closely with accessibility specialists and engineers. Together, we reviewed a 40-issue audit, aligned priorities around real user impact, and translated the findings into concrete design decisions.

Naming and labels

Clarified controls and actions through consistent, intent-based language.

Reading order

Reworked screen structure so content follows a logical sequence.

Screen reader flows

Simplified interactions and removed repetitive, low-value announcements.

Visual access

Applied targeted contrast, focus, and hit-target improvements.

Approach

Real user feedback exposed recurring problems: missing labels, repetitive navigation, disrupted reading flow, and poorly described critical actions. Reviewing ARIA usage alongside industry data shifted our approach toward simpler, more dependable foundations.

Simplify, don’t patch

Use less ARIA and more native semantics.

Structure over narration

Use clear grouping, logical order, and meaningful headings.

Clarity at the source

Create intent-based labels and remove redundant announcements.

Targeted visual fixes

Improve contrast, focus visibility, and hit-target sizes where needed.

Results

The accessibility work improved how the Woven App is experienced with VoiceOver, making navigation, labeling, grouping, and image descriptions more consistent across Home Feed, Account, and Profile. I refined the reading order and grouping of elements, improved button and image labels, removed unnecessary announcements, and addressed a range of interaction and input issues across these screens. The work also helped establish a more consistent approach to accessibility across different types of content, while documenting areas that require further exploration, such as meaningful image descriptions and user-generated content.

Beyond the app

Over the past years I've also been designing other core products beyond the resident app — tools that enable city operations at scale.

Due to NDA restrictions I'm unable to share detailed project information, screenshots, or design artifacts. But recent work has included:

01B2B / enterprise SaaS design

02ServiceNow product & interaction design

03AI conversational interfaces

04Custom illustrations & visual storytelling

05Working with large design systems

06UI guidelines & standards

07Information architecture

08Cross-functional workshop facilitation

Research

At Woven by Toyota, research plays a huge role — most features go through some form of validation before they ship.

As a designer, I worked closely with researchers throughout the process—helping define research goals, preparing studies, and participating in interviews and usability sessions where appropriate. Together, we combined insights from those sessions with product data to better understand both user behavior and intent.

01Usability testing

02UI evaluation

03Scenario testing

04In-depth interviews

05Accessibility testing

Back to Projects