GadgetChai — Feature Review & Recommendations
Date: July 7, 2026
Scope: Full codebase review, competitive research, and product/UI/UX recommendations
Product: Device-as-a-Service (DaaS) rental platform for Bangladesh — laptops, phones, cameras, consoles on monthly terms with bKash billing and AI e-KYC.
Executive Summary
Tech Stack
Existing Features Inventory
Known Gaps & Incomplete Features
Per-Feature Improvements
New Feature Proposals
UI/UX Recommendations
Competitive Landscape
Regulatory & Compliance Notes
Prioritized Roadmap
Research Sources
GadgetChai is a feature-rich MVP with a polished Material 3 Expressive Flutter UI, a complete checkout → KYC → bKash → rental lifecycle pipeline, and an admin operations dashboard. The product is well-positioned as Bangladesh's first consumer-focused DaaS app (local competitors like MrRentBD, Renthobe, and F22R focus on B2B/event rentals with manual ordering and no app-based subscription billing).
Strengths today:
End-to-end rental flow from catalog to recurring billing
AI e-KYC with NID OCR + face match (Bangla/English)
bKash tokenized checkout integration
Admin fulfillment kanban with OTP delivery verification
Strong design system (M3 Expressive, adaptive layouts, dark mode)
Highest-impact gaps:
Cart checkout only processes the first item; Care Plus and delivery fees not reflected in payment
Several UI affordances are present but not wired (referrals, favorites, address persistence)
Admin KYC approval does not sync profile status/trust score
Production payment resilience (bKash IPN, query payment API) not implemented
KYC dev workflow depends on ngrok for local ML worker
Layer
Technology
Location
Mobile / Web client
Flutter 3.22+ (Dart ^3.12.2)
app/
State management
Riverpod
app/lib/
Routing
go_router (auth + admin guards)
app/lib/core/router.dart
Backend
Supabase (Postgres, Auth, Storage, Edge Functions)
supabase/
Payments
bKash Tokenized Checkout (sandbox; production path documented)
supabase/functions/bkash-webhook/
Recurring billing
pg_cron → charge-rentals edge function
supabase/migrations/
KYC gateway
FastAPI JWT proxy on Vercel
kyc_service/api/gateway.py
KYC ML engine
EasyOCR + DeepFace (VGG-Face), OpenCV
kyc_service/main.py
Automation
Node.js scripts
scripts/, package.json
UI kit
Material 3 Expressive + m3e_collection
app/lib/core/design/
Typography
Plus Jakarta Sans (google_fonts)
app/lib/core/design/tokens/
Charts (admin)
fl_chart
app/lib/features/admin/
Existing Features Inventory
1. Onboarding & Navigation
Feature
Status
Details
Splash screen
✅ Complete
Animated brand intro; routes based on SharedPreferences
3-page onboarding
✅ Complete
Rent tech, flexible plans, secure e-KYC; skippable
4-tab shell
✅ Complete
Home, Explore, Cart, Account (My Tech)
Adaptive navigation
✅ Complete
Bottom nav on phone; NavigationRailM3E on tablet/desktop (≥840px)
Auth guards
✅ Complete
Guest browsing; protected routes require login
Admin route guard
✅ Complete
/admin requires profiles.role = 'admin'
Feature
Status
Details
Hero section
✅ Complete
Value proposition + search entry
Quick actions
✅ Complete
Flexible plans, Fast delivery, Care Plus → Explore
Promo carousel
✅ Complete
DB-driven from promos table
Featured devices
✅ Complete
Horizontal scroll (is_featured)
Category grid
✅ Complete
From categories table
Referral banner
⚠️ UI only
"Invite friends, earn ৳500" — button not wired
Pull-to-refresh
✅ Complete
Reloads promos, categories, featured
Search entry
⚠️ Partial
Opens Explore tab but does not pre-fill query
Feature
Status
Details
Device catalog
✅ Complete
Supabase devices table
Filters
✅ Complete
Category, brand, monthly budget slider (৳2k–15k), text search
Mobile filter sheet
✅ Complete
Expressive app bar + bottom sheet
Desktop filter panel
✅ Complete
Sidebar filters
Device detail page
✅ Complete
Image, brand, description, specs, "inside the box"
Subscription terms
✅ Complete
1 / 3 / 6 / 12 months with tiered pricing
Color picker
⚠️ Cosmetic
UI only — not stored on rental
Add to cart
✅ Complete
Snackbar + navigate to Cart tab
Share button
❌ Not wired
Empty onPressed handler
Favorite button
❌ Not wired
Empty onPressed handler
Feature
Status
Details
In-memory cart
✅ Complete
Riverpod StateNotifier
Per-item options
✅ Complete
Color, plan term, Care Plus toggle (৳450/mo)
Charge breakdown
✅ Complete
Monthly rent, Care Plus, delivery (৳200)
Remove item
✅ Complete
Per-item removal
Cart persistence
❌ Missing
Lost on app restart
Multi-item checkout
❌ Missing
Only cartList.first is checked out
Feature
Status
Details
Email/password sign-in
✅ Complete
Supabase Auth, PKCE
Email sign-up
✅ Complete
With confirmation flow
Resend confirmation
✅ Complete
Forgot password
✅ Complete
Password recovery deep link
✅ Complete
Profile auto-creation
✅ Complete
DB trigger + ProfileRepository.ensureProfile
Guest browsing
✅ Complete
Feature
Status
Details
4-step checkout wizard
✅ Complete
NID front → NID back → Selfie → Payment
Camera capture
✅ Complete
Dedicated KYC camera screen
e-KYC verification
✅ Complete
Multipart POST to /verify_kyc
Blur detection
✅ Complete
Laplacian variance in ML worker
NID OCR
✅ Complete
EasyOCR (Bengali + English)
Face match
✅ Complete
DeepFace VGG-Face similarity score
Security deposit logic
✅ Complete
Approved ৳0 / Pending ৳2,500 / Rejected ৳5,000
Rental creation
✅ Complete
status: pending_kyc
bKash agreement
✅ Complete
Mode 0000 via edge function
Mock KYC mode
✅ Complete
KYC_ALLOW_MOCK=true for UI testing
Feature
Status
Details
Agreement WebView
✅ Complete
In-app bKash sandbox/production redirect
Return URL interception
✅ Complete
→ /checkout/status
Checkout status screen
✅ Complete
Success/failure with navigation
Initial payment
✅ Complete
Mode 0001 after agreement
Payment retry
✅ Complete
create-initial-payment for expired URLs
Agreement cancel
✅ Complete
cancel-agreement endpoint
bKash IPN/webhook backup
❌ Missing
Redirect-only callbacks
Query Payment API fallback
❌ Missing
For pending payment status
Feature
Status
Details
Guest state
✅ Complete
Sign up / log in CTAs + appearance settings
Profile overview
✅ Complete
Name, phone, KYC badge, trust score ring
bKash wallet edit
✅ Complete
Saved to profiles.phone
Fulfillment fields
⚠️ Partial
Address & emergency contact — hardcoded defaults, not saved
Trust score boost
⚠️ Mock
LinkedIn/Facebook buttons (+10 locally, no OAuth)
Active rentals
✅ Complete
Device card, timeline, next bill date
Schedule return
⚠️ Basic
Immediately sets returned; no pickup scheduling
Report damage
✅ Complete
→ damage report flow
Payment history
✅ Complete
Last 10 transactions
Theme toggle
✅ Complete
System / Light / Dark
Log out
✅ Complete
Feature
Status
Details
Photo upload
✅ Complete
Gallery picker
Description field
✅ Complete
Storage upload
✅ Complete
damage-reports bucket
DB insert
✅ Complete
status: submitted
Admin review UI
❌ Missing
No admin interface for damage reports
Feature
Status
Details
Analytics tab
⚠️ Partial
Live MRR + utilization; chart/alerts are demo data
Hardware ledger
✅ Complete
device_items with grade, cost, revenue, profitability
Lifecycle history
❌ Not wired
Button exists, no implementation
KYC review queue
⚠️ Partial
Approve/reject updates kyc_reviews only, not profiles
KYC image preview
⚠️ Partial
Raw storage paths; signed URLs not used
Fulfillment kanban
✅ Complete
Dispatch → OTP → activate rental
In-app admin entry
❌ Missing
No nav link; must open /admin manually
11. Backend & Infrastructure
Feature
Status
Details
Postgres schema
✅ Complete
profiles, devices, device_items, rentals, transactions, kyc_reviews, promos, categories, damage_reports, app_settings
Row Level Security
✅ Complete
User-scoped + admin policies
Auth trigger
✅ Complete
Auto-create profile on signup
Storage buckets
✅ Complete
kyc-documents, damage-reports (private)
bkash-webhook edge fn
✅ Complete
Agreement + initial payment + cancel
charge-rentals edge fn
✅ Complete
Cron-protected recurring billing
Billing retry logic
✅ Complete
3 failures → defaulted
Auto-complete rentals
✅ Complete
Past end_date
pg_cron daily job
✅ Complete
Via app_settings table
Seed data
✅ Complete
6 devices, promos, categories, sample rentals
Production wiring scripts
✅ Complete
wire-production, sync-ngrok, health-check
12. Rental Lifecycle States
pending_kyc → awaiting_dispatch → in_transit → active → returned
↘ defaulted
Known Gaps & Incomplete Features
Critical (blocks production readiness)
#
Gap
Impact
1
Base schema CREATE TABLE not in migrations
Assumes pre-provisioned Supabase project
2
Single-item checkout only
Multi-item cart UI is misleading
3
Care Plus + delivery fees not in bKash charge
Revenue leakage / incorrect billing
4
Admin KYC approval doesn't sync profiles.kyc_status
User sees stale KYC status
5
No bKash IPN / Query Payment fallback
Lost payments on redirect failure
6
KYC dev requires ngrok tunnel
Fragile local dev workflow
Medium (degrades user experience)
#
Gap
Impact
7
Fulfillment address not persisted
Ops cannot dispatch without manual contact
8
Social trust linking is mock
Trust score gamification is fake
9
Referral program UI only
Missed growth channel
10
Share / favorite / lifecycle history empty
Dead UI affordances
11
Home search doesn't pre-fill Explore
Broken search expectation
12
Color selection not stored
Order details incomplete
13
Schedule return is instant
No pickup workflow
14
No admin damage report review
Submitted reports go nowhere
15
No in-app admin entry
Admins can't discover dashboard
16
Admin analytics partly demo
Misleading ops data
17
Rentals link to device_id not device_item_id
No specific unit tracking at checkout
#
Gap
Impact
18
Cart not persisted
Lost on restart
19
Web KYC falls back to image picker
Poor web experience
20
Minimal tests
Only default widget_test.dart
21
iOS not emphasized
Android-only docs
Current
Improvement
Rationale
Static 3-page onboarding
Personalized onboarding quiz — ask what device type, budget, rental duration
One-question-at-a-time flows increase completion rates (Airbridge 2026)
Referral banner (unwired)
Wire referral system — unique codes, ৳500 credit on first rental
Grover uses app-exclusive discounts; referrals are standard growth lever
Search opens Explore only
Pass search query to Explore tab and auto-filter
Users expect search to work immediately
Featured devices only
Add "Recently viewed" and "Trending in Dhaka" sections
Personalization increases engagement
No push notifications
Add FCM for billing reminders, delivery updates, promo alerts
Subscription apps need lifecycle notifications
UI/UX suggestions:
Add a progressive onboarding option: skip for returning users, show value props for first-timers only
Use LoadingIndicatorM3E morphing polygons during home data fetch instead of generic spinner
Promo carousel: add auto-play with pause on touch and haptic feedback on swipe
Category grid: show device count per category (e.g., "Laptops · 12 devices")
Current
Improvement
Rationale
Basic text search
Semantic search — search by use case ("gaming", "video editing", "student")
Reduces friction for non-technical users
Budget slider only
Add "Compare devices" side-by-side view
Standard e-commerce pattern for high-consideration purchases
No sort options
Sort by: price, popularity, newest, rating
Essential catalog feature
Favorite (unwired)
Wishlist with persistence — save to profiles or local + sync
Enables retargeting and price-drop alerts
Share (unwired)
Deep link sharing — gadgetchai://device/{id} with OG preview
Viral growth for specific devices
Color picker cosmetic
Store selected variant on cart item and rental record
Order accuracy
No availability indicator
Show "X available" or "Only 2 left" from device_items count
Urgency + transparency (Grover pattern)
No reviews/ratings
Post-rental reviews — star rating + text after return
Social proof critical for rental trust
UI/UX suggestions:
Device cards: add "from ৳X/mo" prominently with term badge (e.g., "12-mo best value")
Filter sheet: use GcChipSelector for multi-select brands instead of single dropdown
Device detail: add sticky "Rent from ৳X/mo" CTA that follows scroll (already partially done — ensure thumb-zone placement on mobile)
Specs section: use expandable accordion with icons per spec category (Display, Performance, Camera)
Add AR/device size comparison — show device dimensions relative to hand/phone (differentiator)
Current
Improvement
Rationale
Single-item checkout
Multi-item checkout — bundle pricing, combined delivery fee
Cart UI already supports multiple items
In-memory cart
Persist cart to SharedPreferences or Supabase cart_items table
79% mobile abandonment partly from lost state (Stripe 2025)
4-step KYC every time
KYC once, rent many — skip KYC if profiles.kyc_status = approved
Reduces repeat-checkout friction dramatically
External bKash redirect
Minimize redirect disruption — pre-validate wallet, show PIN-only summary
Redirects cause major drop-off (FunnelFox)
No order summary on payment step
Sticky order summary always visible during checkout
Stripe: always show total within one tap
Security deposit unclear
Explain deposit policy with tooltip — when refunded, how trust score affects it
Trust signals reduce checkout anxiety
No guest checkout path
Allow browse → cart → login at checkout (partially exists)
Ensure seamless handoff without cart loss
UI/UX suggestions:
Checkout wizard: add step progress with estimated time ("~3 min to complete")
KYC camera: add live overlay guides for NID positioning (BFIU e-KYC guidelines recommend guided capture)
KYC retry: implement attempt counter (max 10/session, 2 sessions/day per BFIU circular)
KYC fallback: offer manual review path with clear messaging when auto-verification fails
Payment step: use bKash brand pink (AppColors.bkashPink) consistently — already defined, extend to trust badges
Post-checkout: celebration animation (confetti/haptic) on success before status screen
Show "Secure checkout · bKash protected" lock icon — subscription trust signal (Solidgate)
Current
Improvement
Rationale
Hardcoded address
Persist delivery address to profiles or user_addresses table
Required for fulfillment
Mock social linking
Real OAuth (Facebook Login, LinkedIn) or remove UI
Fake features erode trust
Instant return
Schedule pickup — date/time slot, generate return OTP
Grover-style return workflow
No upgrade/swap
Device swap/upgrade — mid-rental plan change with prorated billing
Core DaaS feature (Grover, INKI)
No buy-out option
Rent-to-own — purchase device at depreciated price after N months
Grover's "buy" option is popular
Payment history (10 items)
Full history with filters — by date, status, rental
Financial transparency
Trust score (opaque)
Trust score breakdown — show what contributes (+KYC, +payments, +tenure)
Gamification with clarity
No notifications prefs
Notification settings — billing alerts, promos, delivery updates
User control
UI/UX suggestions:
Active rental card: add circular progress ring for rental term (e.g., "Month 3 of 12")
Next bill date: show countdown ("Due in 5 days") with color coding
Trust score ring: make tappable → explainer bottom sheet
Account tab: add quick actions row — Pay now, Report issue, Extend rental
Use summary cards pattern (GLIL Easy Life insurance app case study) for subscription overview
Current
Improvement
Rationale
Basic photo + description
Guided damage assessment — select damage type (screen, body, water), severity, multiple photos
Faster claims processing
No status tracking
Damage report status — submitted → under review → resolved → charged/refunded
User visibility
No admin review
Admin damage queue — review photos, estimate repair cost, apply Care Plus coverage
INKI/Grover Care model
No Care Plus integration
Auto-apply Care Plus coverage — show deductible, covered amount
90% coverage is Grover's selling point
UI/UX suggestions:
Use camera with annotation — circle/highlight damage area on photo
Show Care Plus coverage summary before submission ("You're covered for up to 90%")
Status timeline similar to rental timeline in My Tech
Current
Improvement
Rationale
Demo analytics chart
Real MRR trend from transactions aggregation
Ops decisions need real data
Static default alerts
Live default alerts from rentals.status = 'defaulted'
Risk management (Datacultr DaaS)
KYC approve doesn't sync profile
Atomic approve — update kyc_reviews + profiles.kyc_status + trust_score
Data consistency
Raw storage paths for KYC images
Signed URL preview — use existing helper
Admin can actually review documents
No damage report tab
Add Damage Reports tab — review, approve, charge
Close the damage loop
No admin nav link
Show admin FAB/menu for role = admin users in Account tab
Discoverability
No device assignment at dispatch
Assign device_item_id during dispatch from available inventory
Unit-level tracking
No bulk actions
Bulk dispatch, bulk grade update on ledger
Scale operations
UI/UX suggestions:
Analytics: add date range picker and export to CSV
Kanban: add drag-and-drop between columns (or swipe actions on mobile)
KYC queue: show similarity score gauge with color coding (green >0.6, red <0.4)
Ledger: add search by serial/IMEI and filter by status/grade
Use SplitButtonM3E for dispatch actions (dispatch + print label)
Current
Improvement
Rationale
Redirect-only bKash callbacks
Implement IPN listener + Query Payment API for pending states
bKash docs recommend query fallback
Mode 0001 server-side charges
Evaluate bKash Subscriptions product for proper recurring dashboard
Dedicated subscriptions API (bkash-rs)
No payment failure notifications
Push/email on failed charge with retry CTA
Reduces involuntary churn (Solidgate layer 3)
No idempotency keys
Idempotent payment creation — prevent double charges
Production safety
ngrok for local KYC
Deploy ML worker to VPS (documented in PHASE_C)
Production requirement
No audit log
Admin action audit trail — who approved KYC, dispatched, etc.
Compliance + accountability
Current
Improvement
Rationale
EasyOCR + DeepFace local
NID server verification — query Election Commission NID database
BFIU 2026 mandate for fintech e-KYC
Fixed thresholds (0.4/0.6)
Configurable thresholds via env vars or admin settings
Tune for Bangladesh demographics
No liveness detection
Add passive liveness — detect photo-of-photo attacks
Security hardening
Mock mode only for dev
Staging environment with anonymized test NIDs
QA without production data
No retry limits
Enforce BFIU limits — 10 tries/session, 2/day, 3 total sessions
Regulatory compliance
Tier 1 — High Impact (revenue & retention)
Feature
Description
Inspiration
Rent-to-Own (Buyout)
After 50%+ of rental term, offer purchase at depreciated price
Grover buy option
Device Swap/Upgrade
Mid-rental upgrade to newer model with prorated difference
Grover swap, INKI flexibility
Care Plus claims flow
End-to-end damage claim with coverage calculation and deductible
Grover Care (90% coverage)
Referral program
Unique codes, ৳500 credit for referrer + referee on first rental
Grover APP10 promo
Push notifications
Billing reminders, delivery updates, promo alerts, payment failures
Standard subscription retention
Order tracking
Real-time delivery status with OTP, courier info, estimated arrival
Renthobe/F22R delivery tracking
Extend rental
One-tap extend at same or better monthly rate before term ends
Grover extend anytime
Tier 2 — Growth & Engagement
Feature
Description
Inspiration
Wishlist / Favorites
Save devices, price-drop alerts, back-in-stock notifications
Standard e-commerce
Device comparison
Side-by-side specs, pricing, availability for 2–3 devices
High-consideration purchase aid
Reviews & ratings
Post-return reviews with photos; aggregate on device page
Social proof
BNPL / Pay later
Integrate SSLCommerz or similar for card-based alternative to bKash
Payment diversity (Solidgate: localize methods)
Student / corporate plans
Verified student discount; B2B fleet management portal
INKI B2B, MrRentBD training
Sustainability tracker
Show CO₂ saved vs buying; circular economy badge
Grover circular economy messaging
In-app chat support
Live chat or WhatsApp Business integration
Bangladesh prefers messaging support
Tier 3 — Differentiation & Scale
Feature
Description
Inspiration
B2B fleet portal
Separate admin for companies: bulk rent, employee assignment, MDM
RemoAsset, INKI, Lendis DaaS
Device health monitoring
Partner with MDM for remote diagnostics, warranty tracking
Check Point DaaS, Everphone
Remote lock on default
Device-level control when payments fail (Android Enterprise)
Datacultr risk management
Insurance integration
Partner with GLIL/Easy Life for device insurance add-on
Bangladesh insurance digital onboarding
Nagad integration
Second MFS payment option alongside bKash
Bangladesh MFS market (70M+ bKash, growing Nagad)
Affiliate program
Tech reviewers, universities earn commission on referrals
Growth channel
Subscription pause
Pause rental for 1–2 months (fee applies) instead of cancel
Reduces churn vs hard cancel
Pre-configured devices
Software pre-install option (Office, Adobe, dev tools)
MrRentBD, RemoAsset provisioning
Design System Enhancements
GadgetChai already uses a strong M3 Expressive foundation. Research shows M3 Expressive designs are preferred up to 87% among 18–24 year-olds and help users spot key UI elements up to 4× faster (Google I/O 2025).
Area
Current
Recommendation
Touch targets
Generally good
Enforce 48dp minimum everywhere; audit cramped areas (Google M3 Expressive 2025)
Typography
Plus Jakarta Sans
Use emphasized text styles more aggressively for price, CTAs, status badges
Motion
AppMotion / GcMotion fades
Add shared element transitions between catalog → detail → cart
Loading states
Generic CircularProgressIndicator
Replace with LoadingIndicatorM3E morphing polygons
Empty states
GcEmptyState exists
Customize per context (empty cart, no rentals, no search results) with illustrations
Dark mode
Implemented
Audit image overlays and promo banners for contrast in dark mode
Dynamic color
Static warm palette
Consider Material You dynamic color on Android 12+ while keeping brand primary
Haptics
Not used
Add haptic feedback on: add to cart, step completion, payment success
Accessibility
Basic
Add Semantics labels for screen readers; test with TalkBack
Screen-Specific UX Improvements
Hero CTA hierarchy : Primary = "Browse devices", Secondary = "How it works" (short video/animation)
Promo banners : Tappable with deep link to filtered catalog or specific device
Skeleton loading : Shimmer placeholders for carousel and device tiles during fetch
Grid/List toggle on tablet/desktop
Sticky filter chips showing active filters above results
Infinite scroll with pagination instead of loading all devices
"No results" state with suggested alternatives or broader filters
Image gallery with pinch-to-zoom (multiple device images)
FAQ accordion — "What happens if I damage it?", "Can I cancel early?", "How does delivery work?"
Social proof strip — "127 people rented this month" (if data available)
Plan comparison table — side-by-side monthly cost for 1/3/6/12 months
Minimize steps for returning users — approved KYC → skip to payment (2 steps instead of 4)
Inline validation with specific error messages near fields (Stripe mobile checkout)
Save progress — resume checkout if app closed mid-flow
bKash wallet pre-validation — verify number format before redirect
Dashboard layout — summary cards at top (active rentals, next payment, trust score)
Rental detail page — full timeline, documents, support contact
Swipe actions on rental cards — quick return, report damage
Responsive admin — works on tablet for warehouse staff
Keyboard shortcuts on desktop — A approve KYC, D dispatch
Real-time updates — Supabase Realtime for kanban column changes
Bangladesh-Specific UX Considerations
Based on usability research on Bangladesh MFS apps (Springer 2023) and Nobopay case study:
Consideration
Recommendation
Low-end devices
Keep app lightweight; lazy-load images; test on 2GB RAM devices
Intermittent connectivity
Offline cart persistence; retry queues for KYC upload; optimistic UI
Bengali language
Add Bangla localization (bn locale) — NID OCR already supports Bangla
BDT formatting
Always show ৳ symbol, comma separators (৳2,500 not 2500)
Trust signals
Show bKash logo, "BFIU compliant e-KYC", physical address, support phone
WhatsApp support
Floating WhatsApp button — preferred support channel in Bangladesh
Data usage awareness
Compress images; warn before large uploads on mobile data
Checkout Conversion Optimization
Mobile checkout abandonment is ~79% globally (Stripe, May 2025). Apply these patterns:
Show total price early — on device detail, not just at payment step
Reduce steps — KYC once, pre-fill known data, skip unnecessary fields
Progress indicator — visible step counter in checkout wizard
Trust badges — "Secure · bKash · Encrypted" near pay button
Error recovery — friendly inline errors, not generic "Invalid input"
Confirmation screen — explicit success with order ID, next steps, estimated delivery
Avoid external redirects where possible — minimize bKash redirect disruption
Global (DaaS / Tech Rental)
Competitor
Market
Key Features
GadgetChai Gap
Grover
EU, US
5000+ products, Grover Care (90% damage), buy/swap/extend, app discounts, circular economy
Buyout, swap, Care claims, scale of catalog
INKI
EU (B2B)
2-year rentals, all-inclusive repairs, €90 damage deductible, credit scoring
B2B portal, all-risk insurance
Lendis
Germany (B2B)
MDM integration, zero-touch deployment, certified data erasure
MDM, enterprise lifecycle
Everphone
Germany (B2B)
End-to-end MDM, multichannel helpdesk, telecom expense management
Enterprise support model
Competitor
Focus
Model
GadgetChai Advantage
MrRentBD
B2B events, training
Manual quote, daily/weekly/monthly
Consumer app, automated billing, KYC
Renthobe
Events, equipment
On-demand, wide equipment range
Focused tech catalog, subscription model
F22R
Laptops (Dhaka)
Daily/weekly/monthly, free delivery
App-based, bKash, AI KYC, Care Plus
RemoAsset
B2B fleet (distributed teams)
Procurement, MDM, retrieval, DPA compliance
Consumer market, lower barrier to entry
GadgetChai's unique positioning: First consumer-facing DaaS app in Bangladesh with integrated e-KYC, bKash subscription billing, and AI-powered verification — bridging the gap between manual local rental shops and global players like Grover.
Regulatory & Compliance Notes
BFIU e-KYC Guidelines (2026)
Bangladesh Financial Intelligence Unit updated e-KYC guidelines with December 31, 2026 implementation deadline for non-bank entities:
Requirement
GadgetChai Status
Action Needed
NID verification via Election Commission database
⚠️ OCR only, no server verification
Integrate NID server API (Joinble, etc.)
Face-match against official NID photo
✅ DeepFace implementation
Tune thresholds for Bangladesh demographics
Max 10 tries per session
❌ Not enforced
Add attempt counter in KYC flow
Max 2 sessions per day
❌ Not enforced
Track sessions per user per day
Max 3 total sessions
❌ Not enforced
Track total sessions per user
Fallback to fingerprint/paper KYC
❌ Not offered
Add manual review fallback path
HTTPS only
✅ Vercel gateway + Supabase
Maintain in production
JWT/bearer auth on APIs
✅ Gateway validates Supabase JWT
Maintain
bKash Merchant Requirements
Requirement
Status
Action
Tokenized checkout (agreement + payment)
✅ Implemented
Production merchant onboarding
Subscriptions product for recurring
⚠️ Using mode 0001
Evaluate dedicated Subscriptions API
Query Payment for pending status
❌ Missing
Implement as fallback
IPN/webhook for async notifications
❌ Missing
Implement for production resilience
Phase 1 — Production Readiness (4–6 weeks)
Priority
Item
Effort
P0
Fix multi-item checkout + include Care Plus/delivery in charge
Medium
P0
Admin KYC approve → sync profiles.kyc_status + trust_score
Small
P0
Persist delivery address to database
Small
P0
bKash Query Payment API + IPN fallback
Medium
P0
Deploy ML worker to VPS (remove ngrok dependency)
Medium
P1
Wire referral banner to basic referral code system
Medium
P1
Admin nav link for admin users
Small
P1
Signed URLs for KYC images in admin
Small
P1
Cart persistence (SharedPreferences)
Small
P1
KYC retry limits per BFIU guidelines
Small
Phase 2 — Revenue & Retention (6–8 weeks)
Priority
Item
Effort
P1
Skip KYC for approved users on repeat checkout
Medium
P1
Extend rental flow
Medium
P1
Schedule return with pickup date
Medium
P1
Damage report admin review + Care Plus integration
Large
P1
Push notifications (FCM) for billing/delivery
Medium
P2
Rent-to-own (buyout) pricing engine
Large
P2
Device swap/upgrade mid-rental
Large
P2
Wishlist / favorites with persistence
Medium
P2
Real admin analytics (MRR trend, live defaults)
Medium
Phase 3 — Growth & Differentiation (8–12 weeks)
Priority
Item
Effort
P2
Bangla localization
Large
P2
Reviews & ratings post-return
Medium
P2
Device comparison view
Medium
P2
B2B fleet portal (separate app section)
Large
P2
Nagad payment integration
Large
P3
NID server verification (BFIU compliance)
Large
P3
Student/corporate discount programs
Medium
P3
In-app chat / WhatsApp support
Medium
P3
Sustainability / circular economy tracker
Small
Usability (Bangladesh Context)
This document was generated from a full codebase review of GadgetChai and online research conducted on July 7, 2026. Recommendations should be validated against business priorities and technical capacity before implementation.