Groom - AI-powered in-app onboarding SDK for SaaS
The problem
New users land in a SaaS product with no guide and quietly leave. Existing onboarding tools need engineers to hand-build tours for every flow, and those tours break the moment the UI changes. We set out to build a layer that drops into any web app with one script tag, understands the live page, and walks users through multi-step tasks on demand.
What I built
Zero-dependency SDK, 23 KB gzipped. Injected with a single script tag and running inside customer apps we don't control. Ships as one IIFE via S3 and CloudFront with beta and stable channels.
Live DOM perception. A budgeted depth-first walk that descends into shadow roots and same-origin iframes, measures geometry against each element's own frame, hit-tests for occlusion, and degrades gracefully under a 180 KB payload budget.
Resilient element targeting. A five-tier selector resolution chain, re-resolution on re-render, delegated capture-phase listeners that survive React reconciliation, and a token system that cancels superseded async steps.
Cross-page guided flows. A state machine persisted across full page loads with a split plan/progress store, 30-minute TTL, resume-at-destination detection, and cross-page back navigation.
Constrained AI design. The LLM only resolves which element matches the user's intent; the step sequence is built deterministically by BFS over recorded navigation edges and verified before display. Accurate and cheap.
Full product dashboard. 24-route Next.js app with analytics across 14 aggregated metrics, an onboarding wizard, integrations, AI settings, and subscriptions, with single-flight token refresh and persisted auth state.
Scale
Around 44,000 lines of TypeScript across three repos, 66 API endpoints, 23 data models, 900+ commits over roughly eight months. Shipped to production infrastructure and accepted into the NVIDIA Inception program.
Running code inside someone else's app teaches you that the DOM you measured a second ago no longer exists. Most of the engineering value in Groom is in the recovery paths, not the happy path.
Groom - AI-powered in-app onboarding SDK for SaaS
The problem
New users land in a SaaS product with no guide and quietly leave. Existing onboarding tools n...