Most people who practice on Duolingo do it in short sessions, often on a phone, so a lesson that is slow to respond can end the session. I have spent the last four years on a similar constraint: a ticket checkout where a laggy tap during an on-sale costs the fan their seat.
At Keystone Ticketing I rebuilt the seat-map checkout in React and TypeScript. Mobile p75 INP was 420ms during on-sale spikes; after moving expensive work off the main thread and virtualizing the seat grid, it is now 160ms. I also moved our event pages from jQuery to Next.js with server rendering, which brought p75 LCP from 3.9 seconds to 1.8.
Accessibility is part of how I build. When a venue client's audit found problems in checkout, I led the WCAG 2.2 AA fixes, 71 issues in all, including keyboard seat selection that had not existed before, and I now test new components with NVDA and VoiceOver before review. I also maintain our Storybook library of 46 components, which three product teams build on.
My portfolio at samiraziz.dev includes a short write-up of the INP work with the profiler traces. I would be glad to walk through it or pair on a problem from your web team whenever it is convenient.