Gathering detailed insights and metrics for buildkit-ui
Gathering detailed insights and metrics for buildkit-ui
Gathering detailed insights and metrics for buildkit-ui
Gathering detailed insights and metrics for buildkit-ui
BuildKit UI is a Capacitor package that provides React UI components with comprehensive cross-platform tracking. It ensures every user interaction, error, and analytics event is captured with full platform context across Web, iOS, and Android by leveraging a powerful ecosystem of Capacitor packages.
npm install buildkit-ui
Typescript
Module System
Node Version
NPM Version
TypeScript (76.99%)
JavaScript (17.91%)
Java (2.13%)
Swift (1.49%)
CSS (0.66%)
HTML (0.45%)
Objective-C (0.21%)
Ruby (0.17%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
11 Commits
1 Branches
1 Contributors
Updated on Jul 10, 2025
Latest Version
0.0.5
Package Id
buildkit-ui@0.0.5
Unpacked Size
11.58 MB
Size
2.31 MB
File Count
226
NPM Version
11.4.2
Node Version
24.2.0
Published on
Jul 10, 2025
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
11
7
40
For complete documentation covering every feature in detail, see:
BuildKit UI is a Capacitor package that provides React UI components with comprehensive cross-platform tracking. It ensures every user interaction, error, and analytics event is captured with full platform context across Web, iOS, and Android by leveraging a powerful ecosystem of Capacitor packages.
com.aoneahsan.buildkit_ui
buildkit-ui
github.com/aoneahsan/buildkit-ui
create-buildkit-app
"Every Tap, Every Error, Every Platform" - BuildKit UI ensures no user interaction goes untracked across Web, iOS, and Android platforms.
Every BuildKit UI component is built with Capacitor at its core:
1// Example: Every component captures platform context 2<Button 3 label="Purchase" 4 onClick={async () => { 5 // Automatically captured with each interaction: 6 // - Platform (iOS/Android/Web) 7 // - Device ID, Model, OS Version 8 // - Network Status (WiFi/Cellular/Offline) 9 // - App Version & Build Number 10 // - Session ID & User Journey 11 // - Performance Metrics (render time, interaction delay) 12 // - Memory Usage & Battery Level 13 }} 14/>
Leveraging the power of capacitor-auth-manager, BuildKit UI provides:
1// Every auth attempt is tracked with platform context 2<LoginPage 3 // All authentication providers 4 providers={{ 5 google: true, 6 apple: true, 7 microsoft: true, 8 facebook: true, 9 github: true, 10 slack: true, 11 linkedin: true, 12 firebase: true, 13 emailMagicLink: true, 14 sms: true, 15 emailPassword: true, 16 phonePassword: true, 17 usernamePassword: true, 18 emailCode: true, 19 biometric: true // via capacitor-biometric-authentication 20 }} 21 22 // Each auth event tracked with: 23 // - Provider used 24 // - Platform (iOS/Android/Web) 25 // - Success/Failure reason 26 // - Time taken 27 // - Network conditions 28 // - Device fingerprint 29/>
Using capacitor-firebase-kit, every component automatically integrates Firebase services:
1// Analytics - Every interaction tracked 2<Button onClick={() => { 3 // Automatically logs to Firebase Analytics with: 4 // - Event name: 'button_click' 5 // - Component: 'Button' 6 // - Platform: Capacitor.getPlatform() 7 // - Device: await Device.getInfo() 8 // - Session: Current session ID 9 // - User properties: All set properties 10}} /> 11 12// Crashlytics - Every error captured 13<DataTable 14 onError={(error) => { 15 // Automatically logged to Crashlytics with: 16 // - Full stack trace 17 // - Platform context 18 // - User actions leading to error 19 // - Device state (memory, battery) 20 // - Network status 21 }} 22/> 23 24// Performance - Every render measured 25<ProductList 26 // Automatically tracks: 27 // - Component mount time 28 // - Data fetch duration 29 // - Render performance 30 // - User interaction delays 31 // - Memory usage 32/> 33 34// Remote Config - Dynamic UI updates 35<FeatureFlag 36 flag="new_checkout_flow" 37 // UI updates based on Remote Config 38 // No app update required 39/>
With capacitor-native-update integration:
1<UpdateManager 2 config={{ 3 checkOnLaunch: true, 4 checkInterval: 3600000, // 1 hour 5 showReleaseNotes: true, 6 allowSkip: true, // For non-mandatory updates 7 autoDownload: 'wifi-only' 8 }} 9 10 // Tracks update events: 11 // - Update available 12 // - Download progress 13 // - Install success/failure 14 // - User actions (skip/install) 15/>
Seamless biometric integration via capacitor-biometric-authentication:
1<SecureForm 2 requireBiometric={true} 3 onSubmit={async (data) => { 4 // Biometric verification before submission 5 // Tracks: 6 // - Biometric type used (Face/Fingerprint) 7 // - Success/Failure 8 // - Fallback method used 9 // - Time taken 10 }} 11/>
Every BuildKit UI component automatically tracks:
1interface AutoTrackedEvent { 2 // Event Details 3 eventName: string; 4 componentType: string; 5 componentProps: object; 6 timestamp: number; 7 8 // User Context 9 userId?: string; 10 sessionId: string; 11 userJourney: string[]; // Previous screens/actions 12 13 // Platform Context 14 platform: 'ios' | 'android' | 'web'; 15 platformVersion: string; 16 appVersion: string; 17 buildNumber: string; 18 19 // Device Context 20 deviceId: string; 21 deviceModel: string; 22 deviceManufacturer?: string; // Android only 23 isSimulator: boolean; 24 25 // Performance Context 26 renderTime: number; 27 interactionDelay: number; 28 memoryUsage?: number; 29 batteryLevel?: number; 30 31 // Network Context 32 isOnline: boolean; 33 connectionType?: string; 34 downloadSpeed?: number; 35 36 // Location Context (if permitted) 37 country?: string; 38 region?: string; 39 city?: string; 40 41 // Error Context (if applicable) 42 errorMessage?: string; 43 errorStack?: string; 44 errorCode?: string; 45}
Complete page templates with built-in tracking:
1// Authentication Pages 2<LoginPage 3 onEvent={(event) => { 4 // Tracks: login_attempt, login_success, login_failure 5 // With: method used, time taken, error reason 6 }} 7/> 8 9<RegisterPage 10 onEvent={(event) => { 11 // Tracks: registration_start, field_completed, registration_success 12 // With: completion time, validation errors, drop-off points 13 }} 14/> 15 16<BiometricSetupPage 17 onEvent={(event) => { 18 // Tracks: biometric_enrollment, setup_success, setup_skipped 19 // With: biometric type, device capability, user choice 20 }} 21/> 22 23// User Journey Pages 24<OnboardingFlow 25 onEvent={(event) => { 26 // Tracks: onboarding_start, step_completed, onboarding_finished 27 // With: time per step, skip actions, completion rate 28 }} 29/> 30 31<ProfilePage 32 onEvent={(event) => { 33 // Tracks: profile_view, edit_start, photo_changed, save_success 34 // With: fields edited, photo source, save duration 35 }} 36/> 37 38// Utility Pages with Tracking 39<OfflinePage 40 onEvent={(event) => { 41 // Tracks: offline_detected, retry_attempt, connection_restored 42 // With: offline duration, retry count, connection type 43 }} 44/> 45 46<UpdateRequiredPage 47 onEvent={(event) => { 48 // Tracks: update_prompted, update_started, update_completed 49 // With: current version, new version, user action 50 }} 51/>
buildkit-ui/
├── src/
│ ├── definitions.ts # Capacitor plugin definitions
│ ├── index.ts # Main plugin export
│ ├── web.ts # Web implementation
│ │
│ ├── components/ # React components with native bridges
│ │ ├── Button/
│ │ │ ├── Button.tsx # React component
│ │ │ ├── Button.native.ts # Native communication
│ │ │ ├── Button.tracking.ts # Tracking logic
│ │ │ └── Button.types.ts # TypeScript types
│ │ └── [other components...]
│ │
│ ├── native/ # Native feature integrations
│ │ ├── auth/ # capacitor-auth-manager bridge
│ │ ├── firebase/ # capacitor-firebase-kit bridge
│ │ ├── biometric/ # capacitor-biometric bridge
│ │ └── updates/ # capacitor-native-update bridge
│ │
│ ├── tracking/ # Cross-platform tracking system
│ │ ├── analytics.ts # Analytics orchestration
│ │ ├── errors.ts # Error tracking
│ │ ├── performance.ts # Performance monitoring
│ │ └── platform.ts # Platform detection
│ │
│ └── utils/ # Utilities
│ ├── device.ts # Device information
│ ├── network.ts # Network status
│ └── storage.ts # Offline queue
│
├── ios/ # iOS native code
│ ├── Plugin/
│ │ ├── BuildKitPlugin.swift
│ │ ├── BuildKitPlugin.m
│ │ └── Tracking/
│ │ ├── EventTracker.swift
│ │ └── ErrorHandler.swift
│ └── Podfile
│
├── android/ # Android native code
│ ├── src/main/java/com/aoneahsan/buildkit_ui/
│ │ ├── BuildKitPlugin.java
│ │ ├── tracking/
│ │ │ ├── EventTracker.kt
│ │ │ └── ErrorHandler.kt
│ │ └── AndroidManifest.xml
│ └── build.gradle
│
├── package.json
└── capacitor.config.json
1{ 2 "name": "buildkit-ui", 3 "version": "1.0.0", 4 "description": "Capacitor package for React with comprehensive cross-platform tracking", 5 "main": "dist/plugin.cjs.js", 6 "module": "dist/esm/index.js", 7 "types": "dist/esm/index.d.ts", 8 "unpkg": "dist/plugin.js", 9 "author": { 10 "name": "Ahsan Mahmood", 11 "email": "aoneahsan@gmail.com", 12 "url": "https://aoneahsan.com" 13 }, 14 "repository": { 15 "type": "git", 16 "url": "https://github.com/aoneahsan/buildkit-ui" 17 }, 18 "homepage": "https://github.com/aoneahsan/buildkit-ui", 19 "bugs": { 20 "url": "https://github.com/aoneahsan/buildkit-ui/issues" 21 }, 22 "keywords": [ 23 "capacitor", 24 "plugin", 25 "react", 26 "ui", 27 "components", 28 "tracking", 29 "analytics", 30 "cross-platform", 31 "mobile", 32 "ios", 33 "android", 34 "web" 35 ], 36 "capacitor": { 37 "ios": { 38 "src": "ios" 39 }, 40 "android": { 41 "src": "android" 42 } 43 }, 44 "dependencies": { 45 "@capacitor/core": "^5.0.0", 46 "capacitor-auth-manager": "^latest", 47 "capacitor-firebase-kit": "^latest", 48 "capacitor-biometric-authentication": "^latest", 49 "capacitor-native-update": "^latest", 50 "primereact": "^10.x", 51 "react": "^18.x" 52 }, 53 "peerDependencies": { 54 "@capacitor/app": "^5.0.0", 55 "@capacitor/device": "^5.0.0", 56 "@capacitor/network": "^5.0.0", 57 "@capacitor/preferences": "^5.0.0" 58 }, 59 "devDependencies": { 60 "@capacitor/ios": "^5.0.0", 61 "@capacitor/android": "^5.0.0" 62 }, 63 "license": "MIT" 64}
1# Install BuildKit UI 2npm install buildkit-ui 3 4# Install peer dependencies 5npm install @capacitor/app @capacitor/device @capacitor/network @capacitor/preferences 6 7# Sync Capacitor 8npx cap sync
1# Initialize BuildKit UI in your Capacitor project 2npx buildkit-ui init 3 4# This will: 5# ✅ Configure all required packages 6# ✅ Set up Firebase services 7# ✅ Configure native projects 8# ✅ Add tracking to all platforms 9# ✅ Set up offline queuing
1// 1. Configure Capacitor 2import { BuildKitPlugin } from 'buildkit-ui'; 3 4// capacitor.config.ts 5const config: CapacitorConfig = { 6 appId: 'com.aoneahsan.buildkit_ui', 7 appName: 'My App', 8 plugins: { 9 BuildKit: { 10 enableTracking: true, 11 platforms: ['ios', 'android', 'web'], 12 firebase: { 13 analytics: true, 14 crashlytics: true, 15 performance: true, 16 remoteConfig: true 17 } 18 } 19 } 20}; 21 22// 2. Initialize in your app 23import { BuildKitProvider, BuildKitConfig } from 'buildkit-ui'; 24 25const config: BuildKitConfig = { 26 // Tracking Configuration 27 tracking: { 28 autoTrack: true, 29 trackUserJourney: true, 30 trackPerformance: true, 31 trackErrors: true, 32 trackNetwork: true, 33 sessionTimeout: 1800000, // 30 minutes 34 35 // Platform-specific tracking 36 platforms: { 37 ios: { 38 trackDeviceInfo: true, 39 trackAppStore: true, 40 trackPermissions: true 41 }, 42 android: { 43 trackDeviceInfo: true, 44 trackPlayStore: true, 45 trackPermissions: true 46 }, 47 web: { 48 trackBrowser: true, 49 trackPWA: true, 50 trackViewport: true 51 } 52 } 53 }, 54 55 // Firebase Configuration (via capacitor-firebase-kit) 56 firebase: { 57 apiKey: "your-api-key", 58 authDomain: "your-auth-domain", 59 projectId: "your-project-id", 60 storageBucket: "your-storage-bucket", 61 messagingSenderId: "your-sender-id", 62 appId: "your-app-id", 63 measurementId: "your-measurement-id" 64 }, 65 66 // Auth Configuration (via capacitor-auth-manager) 67 auth: { 68 providers: { 69 google: { clientId: 'your-google-client-id' }, 70 apple: { clientId: 'your-apple-client-id' }, 71 biometric: { 72 required: false, 73 fallbackToPasscode: true 74 } 75 } 76 }, 77 78 // Update Configuration (via capacitor-native-update) 79 updates: { 80 enabled: true, 81 checkOnLaunch: true, 82 mandatoryUpdates: true 83 }, 84 85 // Offline Configuration 86 offline: { 87 queueSize: 1000, 88 syncInterval: 60000, // 1 minute 89 persistQueue: true 90 } 91}; 92 93// 3. Wrap your app 94function App() { 95 return ( 96 <BuildKitProvider config={config}> 97 <YourApp /> 98 </BuildKitProvider> 99 ); 100}
1import { Button, Form, DataTable } from 'buildkit-ui'; 2 3function MyComponent() { 4 return ( 5 <> 6 {/* Every interaction is tracked */} 7 <Button 8 label="Add to Cart" 9 onClick={() => { 10 // Automatically tracks: 11 // - button_click event 12 // - Platform context 13 // - User session 14 // - Performance metrics 15 // - Network status 16 }} 17 /> 18 19 {/* Form tracking */} 20 <Form 21 onFieldChange={(field, value) => { 22 // Tracks field interactions 23 // Identifies drop-off points 24 }} 25 onSubmit={(data) => { 26 // Tracks submission success/failure 27 // Includes time to complete 28 }} 29 /> 30 31 {/* Data tracking */} 32 <DataTable 33 onSort={(column, direction) => { 34 // Tracks user preferences 35 }} 36 onFilter={(filters) => { 37 // Tracks search patterns 38 }} 39 onError={(error) => { 40 // Full error context to Crashlytics 41 }} 42 /> 43 </> 44 ); 45}
1import { useAuth, LoginPage } from 'buildkit-ui'; 2 3function AuthExample() { 4 const { signIn, signOut, user } = useAuth(); 5 6 return ( 7 <LoginPage 8 onAuthAttempt={(provider) => { 9 // Tracks: auth_attempt_started 10 // With: provider, platform, device 11 }} 12 13 onAuthSuccess={(user, provider, duration) => { 14 // Tracks: auth_success 15 // With: provider, time_taken, platform 16 }} 17 18 onAuthFailure={(error, provider) => { 19 // Tracks: auth_failure 20 // With: error_code, provider, platform 21 // Sends to Crashlytics 22 }} 23 24 onBiometricUsed={(type, success) => { 25 // Tracks: biometric_used 26 // With: type (face/fingerprint), success 27 }} 28 /> 29 ); 30}
1import { ScreenView, usePerformance } from 'buildkit-ui'; 2 3function PerformanceExample() { 4 const { startTrace, stopTrace } = usePerformance(); 5 6 const loadProducts = async () => { 7 // Start performance trace 8 const traceId = await startTrace('product_load'); 9 10 try { 11 const products = await api.getProducts(); 12 13 // Add metrics 14 await addMetric(traceId, 'product_count', products.length); 15 16 return products; 17 } finally { 18 // Stop trace (includes duration) 19 await stopTrace(traceId); 20 } 21 }; 22 23 return ( 24 <ScreenView name="ProductList"> 25 {/* Automatically tracks: 26 - Screen render time 27 - Time to interactive 28 - Component tree depth 29 - Memory usage 30 */} 31 </ScreenView> 32 ); 33}
1import { useOfflineQueue } from 'buildkit-ui'; 2 3function OfflineExample() { 4 const { isOnline, queueSize, syncQueue } = useOfflineQueue(); 5 6 const submitData = async (data) => { 7 try { 8 await api.submit(data); 9 10 // Track online submission 11 track('data_submitted', { 12 online: true, 13 platform: getPlatform() 14 }); 15 } catch (error) { 16 if (!isOnline) { 17 // Automatically queued for later 18 // Tracks: data_queued_offline 19 } 20 } 21 }; 22 23 return ( 24 <div> 25 {!isOnline && ( 26 <Banner> 27 Offline - {queueSize} items pending sync 28 <Button onClick={syncQueue}>Sync Now</Button> 29 </Banner> 30 )} 31 </div> 32 ); 33}
1import { Camera, FileUpload, BiometricPrompt } from 'buildkit-ui'; 2 3function NativeFeatures() { 4 return ( 5 <> 6 <Camera 7 onPhoto={(photo, metadata) => { 8 // Tracks: photo_taken 9 // With: source (camera/gallery), size, duration 10 }} 11 onPermissionDenied={() => { 12 // Tracks: camera_permission_denied 13 // With: platform, prompt_count 14 }} 15 /> 16 17 <FileUpload 18 onUploadProgress={(progress) => { 19 // Tracks: upload_progress 20 // With: percentage, network_type, speed 21 }} 22 onUploadComplete={(file, duration) => { 23 // Tracks: upload_complete 24 // With: file_size, duration, network_type 25 }} 26 /> 27 28 <BiometricPrompt 29 reason="Confirm payment" 30 onSuccess={(biometricType) => { 31 // Tracks: biometric_success 32 // With: type, device_capability 33 }} 34 onFallback={(method) => { 35 // Tracks: biometric_fallback 36 // With: fallback_method, reason 37 }} 38 /> 39 </> 40 ); 41}
1# Create new Capacitor app with BuildKit UI 2npx create-buildkit-app my-app 3 4# Initialize in existing project 5npx buildkit-ui init 6 7# Configure platforms 8npx buildkit-ui configure ios 9npx buildkit-ui configure android 10npx buildkit-ui configure web 11 12# Generate tracked component 13npx buildkit-ui generate component MyComponent --with-tracking 14 15# Check tracking implementation 16npx buildkit-ui audit tracking 17 18# Test offline queue 19npx buildkit-ui test offline 20 21# View tracking dashboard 22npx buildkit-ui dashboard
All contributions are welcome! Please read the contributing guidelines before submitting PRs.
MIT License - Open source and free for commercial use
MIT License
Copyright (c) 2024 Ahsan Mahmood
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Ahsan Mahmood
BuildKit UI is an open-source Capacitor package developed by Ahsan Mahmood for the community. It provides React components with unprecedented tracking capabilities across all platforms. By leveraging a powerful ecosystem of Capacitor packages, it ensures:
This is not just a UI library - it's a complete platform tracking solution built as a Capacitor plugin with React components, designed to give developers unprecedented insight into their applications across Web, iOS, and Android platforms.
No vulnerabilities found.
No security vulnerabilities found.