Integration guides from our own builds
10guides to the third-party services apps depend on, each written from production code we built and checked against the vendor's documentation: the steps we followed, the numbers and limits that matter, and the bugs we hit on the way. Every guide links the case study it came from.
Updated October 2026
Maps and location
- Google Maps Directions API
Integrating Google's Directions API in a delivery app takes a server-side proxy with a cache, a rule for when a drawn route is actually wrong, and a log line for every call that reaches Google. On Pakka the apps re-requested the route every ten seconds while the driver moved, about 151 billable calls on a 25-minute delivery, and we cut that to one per leg with a refetch only when the driver strays more than 150 m. A new project has to start on the Routes API instead, because Google stopped letting new Cloud projects enable the legacy Directions API in October 2026.
Built in Pakka
Realtime
- Socket.IO
Integrating Socket.IO takes authenticated handshakes, a personal room for every user so each screen and device hears its events, a Redis adapter before you run a second process, and a plan for what a phone misses while it is disconnected. We built it into three apps: chat with presence and typing in Trainr and LetSlic, and live driver location in Pakka. Most of our bugs were not in Socket.IO itself but in rooms nobody had joined, listeners removed by mistake and reconnects nobody handled.
Built in Trainr, LetSlic, Pakka
Push and messaging
- Firebase Cloud Messaging
Integrating FCM takes a server-side sender built on the Firebase Admin SDK, a token table that knows which account and which app each phone belongs to, Android notification channels and the Android 13 permission set up before the first release, and clean-up of dead tokens. Sending is free; the work is in delivery. In Pakka the first send would have failed outright on firebase-admin 14 even though every push test passed, and a missing permission would have dropped every notification in the customer app.
Built in Pakka, LeafRanger, LetSlic
Cloud storage and access
- AWS S3 uploads
An S3 upload integration comes down to two decisions: whether files go straight from the browser or phone to S3 on a presigned URL or through your server, and how private files are read back. We use both: Storafleet presigns single PUTs and multipart parts straight to the customer's bucket, while Pakka, LeafRanger and BogarInfra take photos through the server with their metadata stripped and hand back signed URLs. The failures we hit were rarely in the upload itself, but in a bucket policy that made private card photos public, a key check a crafted path slipped past and a region default that broke every bucket outside us-east-1.
Built in Storafleet, BogarInfra, LeafRanger, Pakka - AWS IAM role assumption with ExternalId
Keyless AWS onboarding takes a CloudFormation template the customer runs in their own account, a role in it that trusts one role of yours only when it presents an ExternalId your server minted for that connection, and server code that assumes the role through STS and refreshes one-hour credentials. Storafleet does this with 37 S3 permissions on a single bucket and two STS probes that must pass before anything is saved. As of 29 September 2026 the first hop of the chain is proven from production; the second still needs a run against a real customer-style stack, and no customer connection uses the role method yet.
Built in Storafleet
AI APIs
- AI Vision API
Integrating an AI vision model takes one wrapper that meters every call's tokens, a strict reply format your own code checks, and a test on images like yours before you pick the model. In LeafRanger a plant scan costs about $0.004, forty times our first estimate, because the small model it uses counts a photo as roughly 25,800 tokens. For BogarInfra we tested four models on 29 visiting cards and shipped a mid-size one, which turned 21 of them into usable contacts at $0.00139 a card.
Built in LeafRanger, BogarInfra
Payments and payouts
- Razorpay Subscriptions
Integrating Razorpay Subscriptions takes plans created from code, a server-side checkout that authorises a mandate, a webhook handler that is signed, stored and safe to replay, and a reconcile job that pulls the truth from Razorpay when a webhook goes missing. We built it for countrydevs.com's paid tool tiers and for Storafleet's INR and USD plans, and most of our fixes were not at checkout but in plan changes on UPI mandates, lost webhooks and cancellations that never reached Razorpay.
Built in countrydevs.com tool tiers, Storafleet, Proton Fitness Academy - Stripe payments, refunds and payouts
A Stripe integration for a UAE marketplace takes PaymentIntents created on the server in dirhams, a single webhook consumer that verifies signatures against the raw request body, refunds sent back against the payments the money came from, and a ledger that knows what each provider is owed before anyone is paid. For Trainr we built live card payments for packages, classes, upgrades and add-ons, refunds for downgrades and cancelled classes, and an approval queue for trainer payouts released by bank transfer, with a Stripe Connect transfer path ready for when trainers connect their accounts.
Built in Trainr - RevenueCat in-app subscriptions
A RevenueCat integration takes store products set up in Play Console and App Store Connect, an entitlement and offering in RevenueCat that your code names exactly, the SDK logged in with your own user ID, and a webhook your server authenticates, stores once and maps to its own plan state. We built it for LetSlic's Premium on Google Play and for Temphera's Plus and Pro tiers, and the fixes we made were on the server, where store events become plans, trial dates and ledger rows.
Built in LetSlic (Slic Solutions Private Limited), Temphera - One Razorpay account for several apps
One Razorpay account can serve several apps, but every app's webhook endpoint receives the other apps' events, so each app has to tag what it creates with its own name, check that tag on the way in, and confirm ownership by finding the payment in its own database. countrydevs.com and Storafleet share one account in production; our fixes were tagging the plans, subscriptions and orders each app creates, dropping foreign events before they become records, stopping a sibling app's chargebacks from paging the wrong team, and labelling settlements as the whole account's.
Built in countrydevs.com tool tiers, Storafleet
About these guides
Are these integration guides based on real projects?
Yes. Each guide is written from code in a product we built (Pakka, Trainr, LetSlic, LeafRanger, Storafleet and others) and checked against the vendor's own documentation, with the date each fact was checked.
Why do the guides list what went wrong?
Because the mistakes are the useful part. Vendor docs explain the happy path; the guides add the bugs we hit in production code and how each one was fixed.
Can you build one of these integrations into an existing app?
Yes. If another team built the app, we start with a code audit so both sides know what the integration has to fit into.