tap
- role
- Product designer, Engineer
- team
- Solo
overview
I wanted to build an AI experience that could notice something worth your attention, give you a small update, and open the tools to act when you asked. I called those updates “taps.”
I designed and built Tap end to end in React and TypeScript, with an Express backend. To test it, I built a world simulator with customer histories and events, plus a separate control room for firing scenarios into the customer-facing app. I could change the circumstances and watch the model generate a different response.
a reason to interrupt
A merchant has payroll coming up, a supplier to pay, and money still on its way in. I used scenarios like these to explore which events deserved a tap, how urgent it should feel, and when suggesting another financial product would be the wrong move.
The model generates the title, body, and priority inside a consistent card. Opening one gives it room to build a fuller response.
what generation can touch
Opening a tap is a second generation: a streamed interface, checked against a protocol, allowed actions, and Ghost tokens before it hits the screen. I compute those actions from the scenario and the customer. One follow-up can create a Square team member in sandbox; another can speak a voice note. If the model asks for something I didn’t grant, it reports the gap.
next
Tap is a self-initiated proof of concept with simulated scenarios, mocked capabilities, and selected Square sandbox connections. I haven’t tested whether its interruptions earn their place in someone’s day.