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

Fahd Adebayo

Fahd Adebayo

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.
Like this project

Posted Aug 22, 2026

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