The Instabug alternative.
Bring support and product together. Connect customer questions, bug reports and feature requests in Gleap. Give your team the context to answer, investigate and build the changes customers need.
Bring support and product together. Connect customer questions, bug reports and feature requests in Gleap. Give your team the context to answer, investigate and build the changes customers need.
sendSurveyPush returns early without a contact email. Delivery only needs the session's subscription.
Answer customers. Investigate issues. Build what comes next. Kai is available on every plan; Resolve, Code and PM are included in Pro and Enterprise. AI usage is billed separately.
Answers customers
Answers from your knowledge base and connected sources. Brings your team in when needed.
Investigates hard tickets
Reads session evidence, logs and code. Returns findings and creates coding tasks for confirmed bugs.
Builds the fix
Plans the change, writes and tests code, and opens a pull request. Your engineers review and merge.
Prioritizes requests
Triages feedback, finds duplicates and scores requests. You decide what belongs on the roadmap.
sendSurveyPush returns early without a contact email. Delivery only needs the session's subscription.
@@ -42,7 +42,15 @@ NotificationsDrawer const { items } = useNotifications();− useEffect(() => { if (open) refetch(); });+ const socket = useNotificationSocket();+ useEffect(() => {+ if (!open) return;+ return socket.on('notification:new',+ (n) => setItems((p) => [n, ...p]));+ }, [open, socket]); return <Drawer open={open}>
@@ -8,6 +8,18 @@ useNotificationSocket const socket = useSocket();+ const on = useCallback((evt, fn) => {+ socket.on(evt, fn);+ return () => socket.off(evt, fn);+ }, [socket]);− return socket;+ return { on };
@@ -0,0 +1,4 @@+ it('appends a pushed notification',+ async () => {+ render(<NotificationsDrawer open />);+ socket.emit('notification:new', n);+ expect(await findByText(n.title))+ .toBeVisible();