Feedback Widget SDK
ProductionMulti-platform in-app feedback with screenshots, annotations, and offline support
Problem
Client apps need in-app feedback collection without building custom UI for each platform. Users should capture screenshots with annotations, optionally record sessions, and submit even when offline.
Solution
Two complementary SDKs: @sjforge/feedback-widget for web/Electron with full annotation and recording support, and @sjforge/feedback-widget-native for React Native with screenshot capture and offline queue. Both sync to the Client Feedback Portal.
Key Features
- Screenshot capture with 5 annotation tools (draw, arrow, text, highlight, blur)
- Session recording via rrweb with pixel-perfect replay
- Auto-captured context (browser, OS, viewport, errors, network)
- Offline queue with auto-sync and exponential backoff
- Privacy controls (mask selectors, auto-mask passwords)
- Floating button UI or programmatic API
- Electron adapter with preload helpers
- React Native components (FeedbackButton, FeedbackForm)
- CDN bundle for script tag integration
Tech Stack
Architecture
Two packages with shared design patterns. Web SDK is framework-agnostic vanilla TypeScript with platform adapters. React Native SDK built as React components with Expo compatibility. Both use transport layer for API communication, offline queue, and context collectors. Privacy settings applied at capture time.
Screenshots
Screenshots coming soon
Metrics
My Role
Sole developer. Designed the SDK architecture, implemented screenshot capture and annotation tools, built offline sync, and created adapters for three platforms.