Two years ago, an InsurTech startup approached us with a problem that sounded deceptively simple: "We need an app for field agents to inspect damaged vehicles and file insurance claims." Simple, right? Wrong. By the time we shipped ClaimsMitra, we had built 114 REST API endpoints, implemented offline-first data sync, and solved edge cases we never knew existed in the insurance industry.
This is the story of how we built ClaimsMitra — a comprehensive insurance inspection app that handles vehicle damage assessment, photo documentation, and real-time claim processing. More importantly, it's the story of why building apps for field operations is 3x harder than anyone expects.
The Problem: Insurance Inspections in the Real World
Our client ran into the same problem every insurance company faces: paper-based inspection workflows. Field agents would drive to accident sites, fill out forms by hand, take photos with personal phones, then return to office to manually enter everything into their system. The process took 3-4 days minimum, and data accuracy was terrible.
But here's what they didn't initially tell us (and what most clients don't realize): field agents often work in areas with poor or no internet connectivity. Accident sites are frequently on highways, remote locations, or underground parking garages. Any app we built had to work offline-first, then sync when connectivity returned.
The real kicker? Multiple agents sometimes inspect the same claim (initial assessment + specialist review), creating potential data conflicts that needed automatic resolution. We learned this during week 3 of development when the client casually mentioned, "Oh, and sometimes two agents edit the same claim simultaneously."
"We underestimated offline-first complexity by 3x. If your app works in areas with poor connectivity, budget 40% more dev time than you think." — Our lesson from ClaimsMitra
Our Technical Approach: Why We Chose React Native
The tech stack decision came down to three requirements: cross-platform deployment (iOS + Android), offline-first architecture, and camera integration with high-quality image compression. After evaluating react native — Xenotix Labs" class="auto-link">Flutter vs React Native, we chose React Native for specific reasons:
React Native won because of native module ecosystem. We needed custom camera controls, background sync, and offline storage — React Native's mature ecosystem had production-ready solutions. Flutter's camera plugins in 2024 were still buggy for our use case (we tested both).
Backend architecture was Node.js + PostgreSQL + AWS S3 for image storage. PostgreSQL handled our complex relational data (claims, inspections, agents, vehicles, damage categories) better than MongoDB. We needed ACID transactions for claim state management — you can't have half-processed claims in production.
The 114-API Architecture
By the end of development, ClaimsMitra had 114 REST API endpoints. Here's why that number got so high:
- Granular permissions: Different agent types (assessor, surveyor, manager) needed different data access. We built role-based endpoints instead of one massive "get everything" API.
- Offline sync complexity: We needed separate endpoints for bulk uploads, conflict resolution, and partial data updates.
- Insurance workflow states: Claims move through 12+ different states (submitted, assigned, in-progress, reviewed, approved, etc.). Each state transition needed its own validation logic.
- Integration requirements: The client's legacy system required specific data formats for different claim types (motor, health, property). We built adapter endpoints for each.
Building Something Similar?
We've solved this exact problem on multiple projects. Get a free estimate in 24 hours — we'll tell you the real cost, timeline, and tech stack based on our experience.
The Real Challenge: Offline-First Data Sync
Building offline-first isn't just about storing data locally — it's about handling conflicts when multiple sources modify the same data. Here's how we solved it:
1. Local SQLite with Sync Queue
Every action in ClaimsMitra gets stored locally first in SQLite, then queued for server sync. We implemented a priority-based sync queue where critical actions (claim submission) sync before non-critical ones (agent profile updates).
The tricky part: handling partial failures. If an agent uploads 20 photos and the connection drops after photo 15, we needed to resume from photo 16, not restart from photo 1. We built chunk-based uploads with resumable sessions.
2. Conflict Resolution Strategy
When two agents edit the same claim offline then sync, whose version wins? We implemented a "last-write-wins-with-merge" strategy:
- Field-level timestamps: Each form field has its own "last_modified" timestamp.
- Automatic merge: If Agent A updates damage photos and Agent B updates repair cost estimates, both changes are preserved.
- Manual resolution: If both agents modify the same field, the app flags it for manual review by a manager.
This conflict resolution logic alone took 4 weeks to build and test. We had to simulate every possible conflict scenario in our test environment.
3. Photo Management Nightmare
Insurance claims generate massive amounts of photo data. A single vehicle inspection might include 50+ high-resolution photos (damage angles, VIN numbers, interior/exterior shots). Our challenges:
- Storage: Raw photos were 4-8MB each. We implemented on-device compression to 800KB while preserving quality for insurance requirements.
- Upload strategy: Uploading 50 photos on 3G takes forever. We built progressive upload with thumbnail previews — agents see immediate feedback while full-resolution photos sync in background.
- Bandwidth optimization: We detect connection quality and adjust upload quality accordingly. On slow connections, we upload compressed versions first, then high-res versions when bandwidth improves.
Technical Implementation Deep Dive
Camera Integration and Image Processing
Standard React Native camera libraries weren't sufficient for insurance requirements. We needed:
- Metadata preservation: GPS coordinates, timestamp, device info embedded in EXIF data
- Quality control: Blur detection to ensure photos are usable for damage assessment
- Consistent lighting: Auto-exposure adjustment for indoor/outdoor transitions
We ended up writing custom native modules for both iOS and Android. The blur detection algorithm runs on-device using computer vision — if a photo is too blurry, the app prompts the agent to retake it immediately.
Real-Time Sync Status
Field agents needed to know exactly what data was synced vs pending. We built a real-time sync status system:
- Visual indicators: Green checkmarks for synced data, orange clock for pending, red X for failed
- Progress tracking: "Uploading photo 15 of 23" with percentage progress
- Failure recovery: When sync fails, agents can see exactly what failed and retry individual items
The sync status UI sounds simple but required complex state management. We used Redux for global state and implemented optimistic updates — the UI shows success immediately, then rolls back if server sync fails.
Performance Optimization
Insurance apps run on older Android devices (agents don't get flagship phones). Performance optimization was critical:
- Lazy loading: Claim lists load 20 items at a time with infinite scroll
- Image caching: Thumbnails cache locally to prevent re-downloading
- Background processing: Photo compression and uploads happen in background threads
- Memory management: We clear photo cache when device storage drops below 500MB
Memory leaks were our biggest enemy. Photo-heavy apps crash quickly if you don't properly dispose of image objects. We spent 2 weeks hunting memory leaks using React Native's performance profiler.
Results and Impact
ClaimsMitra launched after 6 months of development. The results exceeded our client's expectations:
Efficiency Gains
- Inspection time: Reduced from 4-6 hours to 90 minutes average
- Data accuracy: 95% reduction in data entry errors (validated through audit)
- Processing speed: Claims now process in 24-48 hours vs 3-4 days previously
- Agent productivity: Field agents complete 3x more inspections per day
Technical Performance
- Offline reliability: 99.2% success rate for offline→online sync
- Photo upload success: 97.8% first-attempt success rate
- App crash rate: <0.1% (industry average is 2-3%)
- User adoption: 94% of field agents actively use the app daily
Business Impact
Six months post-launch, our client reported:
- Cost savings: ₹2.3 crore annually from reduced processing time
- Customer satisfaction: 40% improvement in claim settlement time ratings
- Fraud detection: 60% better fraud detection through GPS/timestamp validation
- Scale: The app now processes 1,200+ claims monthly across 3 states
What We'd Do Differently
Every project teaches lessons. Here's what we learned from ClaimsMitra:
1. Budget More Time for Edge Cases
Insurance workflows have edge cases we never anticipated. "What happens if an agent starts an inspection but gets reassigned to a different claim?" These scenarios aren't in the initial requirements but emerge during real-world usage. Budget 30% more development time than your initial estimate.
2. Test on Real Devices Earlier
Simulators lie. Photo compression that works perfectly on iPhone simulator crashes on actual Android devices with 2GB RAM. We should have bought 5-6 budget Android phones for testing from day one.
3. Start with Conflict Resolution Architecture
We built conflict resolution as an afterthought. It should have been part of the core data architecture from day one. Retrofitting conflict resolution into existing APIs is painful.
4. Over-Engineer Photo Management
Photo-heavy apps need industrial-strength image handling. Build for the worst case scenario: agent takes 100 photos on a device with 8GB storage and intermittent connectivity. The extra complexity is worth it.
Let's Build This Together.
33+ products shipped. Real production experience. No agency fluff. Talk to our engineering team directly or get your project estimate.
Key Takeaways for Insurance App Development
If you're building an insurance or field operations app, here are our key recommendations:
1. Offline-First is Non-Negotiable
Field agents work in areas with poor connectivity. Build offline-first from day one, not as an afterthought. Your sync strategy will be more complex than you expect.
2. Role-Based Permissions Matter
Insurance involves multiple stakeholders (agents, managers, customers, adjusters) with different data access needs. Design your API permissions carefully — retrofitting security is expensive.
3. Photo Management is Hard
Budget significant time for photo capture, compression, storage, and upload. Insurance photos have legal implications — you can't afford to lose them or compromise quality.
4. Test Real-World Scenarios
Insurance workflows are complex with many edge cases. Test with actual insurance agents in real environments, not just your development team in the office.
5. Plan for Scale
Successful insurance apps grow quickly. ClaimsMitra went from 50 inspections/month to 1,200+ inspections/month in 6 months. Build your architecture to handle 10x your initial estimate.
The Technology Stack That Delivered
For teams building similar apps, here's our proven tech stack:
- Frontend: React Native (better native module ecosystem than Flutter for our use case)
- Backend: Node.js + Express (fast API development, great for real-time features)
- Database: PostgreSQL (ACID compliance critical for financial data)
- File Storage: AWS S3 (reliable, scalable image storage)
- Local Storage: SQLite + React Native MMKV (fast offline data)
- Real-time: Socket.io (real-time sync status updates)
- Image Processing: Sharp.js backend + native mobile compression
- Authentication: JWT with refresh tokens (works offline)
This stack delivered 99.2% uptime across 6 months of production usage.
Beyond ClaimsMitra: Lessons for B2B App Development
ClaimsMitra taught us that B2B apps are fundamentally different from consumer apps. The stakes are higher (business operations depend on your app), the users are less forgiving (agents can't switch to competitors), and the requirements are more complex (regulatory compliance, integration needs).
In our experience building 33+ products, insurance and field operations apps are among the most challenging. But they're also the most rewarding when done right — our client's agents tell us ClaimsMitra "changed how they work."
The key is understanding that you're not just building an app — you're digitizing a complex business process. Every form field, every photo upload, every sync operation needs to work flawlessly because real businesses depend on it.
Whether you're building insurance software, field service apps, or any B2B solution with offline requirements, the lessons from ClaimsMitra apply. Start with the hard problems (offline sync, conflict resolution, photo management), test with real users early, and budget more time than you think you need.
Want to see how we approach complex B2B app development? Check out our other case studies on mobile app development or talk to our team about your specific requirements. We've solved these problems before — we can help you avoid the pitfalls we learned the hard way.








