Groom - AI-Powered In-App Onboarding SDK for SaaS by Fahd AdebayoGroom - AI-Powered In-App Onboarding SDK for SaaS by Fahd Adebayo

Groom - AI-Powered In-App Onboarding SDK for SaaS

View completed workwww.usegroom.com

Groom

In-app onboarding SDK powered by AI 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 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.

How it works

Peek into a client dashboard, showing how Groom works.
A client dahsbord that has the groom SDK

What I built

A zero-dependency embeddable SDK (23 KB gzipped) injected via a single <script> tag, running safely inside customer apps I don't control. Ships as a single IIFE via S3 + CloudFront with beta and stable channels.
Live DOM perception: a budgeted depth-first walk that descends into open 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 so the backend never hard-rejects a snapshot.
Resilient element targeting: a five-tier selector resolution chain plus re-resolution on re-render, delegated capture-phase listeners that survive React reconciliation, and a token system that cancels superseded async steps. Every guard exists because a real customer app broke the naive version.
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. This keeps guidance accurate and cheap.
Full product surface: 24-route Next.js dashboard (analytics with 14 aggregated metrics, onboarding wizard, integrations, AI settings, subscriptions) with single-flight token refresh and persisted auth state.
Scale of the work ~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.
Groom Landing page
What I learned 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.

0 likes · 2 views · Aug 22, 2026

Developed an AI-powered in-app onboarding SDK for SaaS applications.