01 / Problem & ownership
The product context and my responsibility.
- Product context
- Real-time customer communication, ticket routing, uploads, and operational request handling.
- Constraint
- Long threads had to stay smooth while public integrations and existing authentication continued to work.
- My ownership
- Widget architecture, public integration API, performance work, HMAC migration, uploads, and routing.
- Key decision
- Virtualize long threads and move authentication to HMAC without breaking existing integrations.
- Measured outcome
- 70% faster chat rendering; threads with more than 1,000 messages scroll smoothly.
02 / Implementation
How the workflow came together.
- Architecture
- Embeddable widget with a public integration API, Feature-Sliced Design, and domain-driven modules.
- Performance
- List virtualization reduced render work in operational threads of more than 1,000 messages.
- Integration safety
- HMAC authentication was introduced with backward compatibility for existing consumers.
- Operational scope
- Validated drag-and-drop upload for 15+ formats plus ticket categorization and routing by travel team.
03 / Result
70% faster rendering for conversations with more than 1,000 messages after list virtualization.
The performance result refers to rendering long conversations, not a general application-speed or business-impact measurement.
Technology used
- Preact
- TypeScript
- Vite
- Redux Toolkit
- WebSocket
- SCSS Modules
- OpenAPI
