LinnoEdge

LinnoEdge
MOBILE APP DEVELOPMENT · HO CHI MINH CITY

The app shipped.
Then nobody was
left to maintain it.

At one startup I worked with, the app went live on schedule. React Native, reasonably clean code, both stores approved. Six months later, the vendor had moved on, a minor OS update had broken the notification layer, and there was no one left who knew the codebase well enough to fix it without a full rewrite.

That's not unusual. Most mobile development contracts are written around delivery — App Store approval, that's the finish line. What happens after go-live is rarely in the scope, and even more rarely in the team's actual plan.

The lab model was built for that gap. iOS, Android, or React Native — a dedicated team that's still in the room six months after launch. Not as a support contract. As the team that built it.

30% ↓
development cost
vs. a Tokyo engagement
6mo+
same team
still running post-launch
3–6mo
typical v1
to App Store submission
If Any of These Sound Familiar

Three situations we see
most often before teams reach out

The platform and the industry are always different. The underlying structure of the problem usually isn't.

A
The app idea exists. The team doesn't.

The product is clear in your head — or in a product spec document. You know whether it's iOS-first or cross-platform. You know what the core flow looks like. What's missing is a team that can actually build it, without the overhead of hiring in-house engineers who won't be busy enough to justify full-time headcount once the build phase is done.

Hiring is slow and expensive for a two-year project. A freelancer team is fast to start but hard to coordinate. What most founders at this stage actually need is a small, dedicated team that can move from spec to App Store without needing to be managed at the task level.

What naturally comes next
A Discovery call to decide platform (React Native vs native) and define what "done" looks like for v1 — before a single engineer is assigned. Platform decisions made without that conversation tend to be expensive to reverse by sprint four.
B
The first build worked. The second build is where it broke.

Version 1 is live. The vendor who built it has moved on, and now you need to add features — or fix something the users started reporting. The people who know the codebase are gone. The new team is rereading someone else's code, and every estimate they give you feels like it's accounting for the risk of what they haven't found yet.

I've seen this pattern more often than the original build failing. v1 succeeded precisely because it was scoped tightly. v2 reveals that nothing was built for continuity — no documentation, no architecture notes, no test coverage that tells the next team what behavior to preserve.

What naturally comes next
A codebase audit before any new work starts. Two to three weeks to understand what's actually there, write the documentation that should have existed, and define what the architecture for v2 needs to look like before the sprint plan is written.
We can also take over an existing codebase entirely. Roughly 30% of the mobile engagements we've started were continuations of work another team had begun. The original vendor relationship doesn't need to be formally ended before we start reading.
C
The app is live — and now it needs to keep running.

App Store and Google Play have it. Users are active. OS updates happen twice a year and break something both times. New features need to ship, but the vendor relationship was a project contract — it ended at launch. You're either paying for one-off fixes with no context, or you're looking for a team that will actually stay.

The realistic options are re-hiring in-house, finding a new vendor and re-explaining the codebase from scratch, or building a relationship with a team that was designed to stay. Most maintenance contracts are written to avoid accountability. That's the part we do differently.

What naturally comes next
A dedicated team in Ho Chi Minh City — engineers who've shipped React Native, iOS Swift, and Android Kotlin to both stores — available from month one of go-live, not after a handover period. Development costs run roughly 30% of an equivalent Tokyo engagement. The team that built it is the team that maintains it. That's not a policy. That's how the contract is written.
The Difference

What separates a dedicated lab team
from a project-based mobile vendor

Most mobile development contracts are built around a delivery milestone — App Store approval. The lab model is built around what comes after.

Project-Based Mobile Development
Optimized for delivery
  • Team assembled for the project — disperses after App Store approval
  • Knowledge in developers' heads, not in documented architecture
  • Scope changes trigger renegotiation and delays
  • Post-launch support is a separate contract, different team
  • No continuity when OS updates break existing behavior
ACCOUNTABILITY WINDOW → launch
VS
Linnoedge Lab Model
Optimized for continuity
  • Same team from first sprint through ongoing maintenance
  • Architecture documented sprint by sprint — survives team changes
  • Scope changes handled in sprint reviews, not contract amendments
  • Available from month one of go-live — no handover gap
  • OS update response by the team that wrote the original code
ACCOUNTABILITY WINDOW month 1+
Why Linnoedge

Three things that are different
about how this team builds apps

Platform decision before team assembly. Every mobile project starts with the same question: React Native or native? Most vendors answer it in the first sales call, based on their team's existing skills. We answer it in the Discovery phase, based on your product's actual requirements — expected device range, offline behavior, animation complexity, existing codebase dependencies. At one engagement, the client came in certain they needed native iOS. By the end of Discovery, React Native was the right answer — and we had the data to show why.

↳ observation — client engagement, Japan The initial brief said "native iOS only." The actual user base was 60% Android.
We found this in week one of Discovery, before the architecture decision was locked.
React Native saved them four months of parallel build time.

App Store submission is in the contract. Not "we'll help with it." In scope, on the sprint plan, with the same QA gate as every other feature. App Store rejection is one of the most common places a mobile project stalls — provisioning profiles, privacy descriptions, in-app purchase configuration, screenshot specs. We've submitted to both stores across multiple engagements. The process is documented. The first submission isn't an experiment.

The team that builds it stays. We've run two mobile projects now in their second year of maintenance — same team, same codebase, same IT Director who remembers why the push notification architecture was built the way it was. When a major iOS release breaks something, the team already knows where to look. That's not a soft promise about culture — it's a structural outcome of the lab model.

Vietnam offshore mobile development — but the "offshore" part is structural, not just a cost story. The lab is built so the team that ships the app is still in the room six months later when an OS update breaks something. Tokyo equivalent costs roughly 2.5–3× for the same seniority — but that's the side effect, not the headline.

Field note — ongoing engagement, Ho Chi Minh City
Months since initial launch 26
Original engineers still on the team 3 of 3
Major iOS version transitions handled 4
OS update regressions in production 0
Architecture documented from sprint one. Every OS update handled by the team that wrote the original code.

Most mobile vendors will
get you through App Store.
Almost none of them are
still there when iOS 20
breaks something.

Key Insight
What all three situations had in common: the contract was written to end at go-live. Nobody planned for what happens after.
App Store approval is not the hard part. What's hard is building a structure that keeps working — across OS updates, team changes, and scope evolution — six months after launch and two years after launch. If you also need a backend web system alongside the app, see our system development services.
3 Concerns

What comes up in almost
every conversation before committing

Regardless of whether you've built a mobile app before or this is the first one.

01

Will the app actually work the way I imagined it?

"We've had developers build exactly what we described, and it still wasn't what we meant. By the time we figured out why, we were already three sprints in."
Our Answer
We build a prototype before we build the app. Not a visual mockup — a working prototype of the core flow, usually in two to three weeks, that you can actually tap through. The real spec comes out of that prototype, not the original document. The gap between "what you described" and "what you meant" shows up at week three, not at go-live.
02

What if the lead developer leaves mid-build?

"Our last project fell apart when the senior engineer left. Nobody else understood the architecture, and we had to start over."
Our Answer
Every engineer documents architecture decisions as they go — not as a project deliverable, but as part of how the sprint works. The IT Director maintains a running technical context document. If someone leaves, the replacement is reading into the project within a day, not rebuilding from memory. In 26 months of running this engagement, we've had one engineer transition. The sprint didn't slip.
03

What if the vendor disappears after App Store approval?

"We've seen this before — vendor delivers, then goes quiet. An OS update breaks push notifications, and there's no one left who knows why they were set up that way."
Our Answer
The lab model makes this a structural problem, not a promise problem. In a project contract, the vendor's financial relationship with you ends at delivery — that's when the final invoice is paid, that's when the team disperses. In a lab engagement, the same team is billing month-over-month, which means they're still accountable month-over-month. Disappearing means walking away from an active revenue relationship. The incentive is different.

There's a practical layer too. Architecture decisions are documented sprint-by-sprint as part of how the work runs — not as a handoff document produced once, at the end, when everyone's already moved on. When an OS update breaks the notification layer six months after launch, the engineers who wrote that code are still on the engagement and already know where to look. The field note above — 26 months, three of three original engineers still on the team — is what that structure looks like in practice.
Two Models

Choose how involved
you want to be

Both models use the same team. The difference is where the coordination sits.

Direct Model

Your product lead communicates directly with our IT Director. No coordinator in between. Our IT Director functions as your mobile tech lead — taking product direction, breaking it down for the engineering team, and surfacing blockers before they become delays.

You see the sprint board. You're in the biweekly review calls where you tap through working software. You're as close to the team as you want to be.

Good fit: Teams with a product manager who wants direct technical visibility without managing the engineering team themselves.
Full Engagement Model

A Japanese PM joins from product definition through App Store submission, working as the bridge between your business context (in Japanese) and the Vietnam engineering team (in English). Handles UX wireframing, spec design, sprint planning, stakeholder alignment, and store submission coordination — without a translator in the middle, because the PM is operating fluently in both directions.

The PM starts by mapping the actual user flow — what the user does step by step — before any screen is designed. Most mobile failures start when a team skips that part.

Good fit: Founders and teams without a dedicated product manager, or those where the internal team doesn't have mobile product experience and needs someone to own the definition and build end-to-end.
How It Works

From first call to App Store
and beyond

The lab model starts before the first line of code. It doesn't end at store approval.

1
Discovery (1–2 weeks)
Platform decision (Flutter or React Native for cross-platform apps; iOS Swift or Android Kotlin for native), core user flow mapping, and v1 scope definition — before a team is assembled. If you have a spec already, we review it and flag assumptions. If you don't, we draft one together. The Discovery phase is what determines whether the sprint plan will survive contact with reality.
2
Team Assembly (1–2 weeks)
We build the team to match the actual tech stack — not a standard template. Minimum is PM + 1 engineer. Most mobile engagements run PM + IT Director + 2 engineers. You meet the team before the first sprint starts. If the stack changes between Discovery and assembly (it happens), we adjust before anything begins.
3
Build (sprint-based)
Two-week sprints. Review call at the end of each — you tap through working software on a real device, not slides. Every feature has a defined test scope before development starts. Scope changes are handled in the review call, not in a contract amendment. The sprint plan is a living document.
4
QA Gate → App Store Submission
Nothing is submitted to App Store or Google Play without passing a QA checkpoint. This includes device matrix testing (iOS versions, Android API levels, screen sizes), submission asset preparation (screenshots, privacy descriptions, in-app purchase configuration), and a compliance review against current store guidelines. The team has handled this across multiple submissions — the process is documented, not improvised.
5
Ongoing (from month 1 of go-live)
The same team that built the app is available for OS update responses, feature additions, and bug fixes from month one — not after a handover period. When iOS 19 or Android 16 breaks something, you're calling the engineers who wrote that code. That's the structure, not a service tier.
Selected Work

Three mobile engagements,
what actually happened

Not descriptions of what we can do — what happened at specific companies.

Business SNS / B2B AdTech · Japan
Business Networking SNS for Executives — Japan Market
At a Japanese platform connecting executives, we built the core social networking app in React Native — real-time feed, direct messaging, in-app notifications, and profile matching. Then extended it with a B2B ad monetisation layer the platform didn't have yet.

The React Native decision came out of Discovery, not assumption. We had both store submissions approved within the same week, which is less common than it sounds when the submission process isn't planned in advance.
14,284 registered executive members. Both stores approved in the same week.
Read the case →
Healthcare · Japan — Ongoing
Childcare management app — built and maintained for 2+ years
At a healthcare-adjacent company in Japan, we built a childcare management app used by facilities to track daily records, health logs, and parent communication. The app went live at a small number of facilities, then expanded as usage grew.

The same team that built v1 is still running the maintenance engagement. Every major iOS and Android version transition has been handled by the engineers who wrote the original code. No regressions from any OS update in 26 months.
26 months, same team. 0 OS update regressions in production.
Family Services · Southeast Asia
Family communication app — PoC to regional launch
At a family services startup targeting Southeast Asian markets, we built a cross-platform app for parent-child communication features with notification scheduling and content sharing. The team operated across Japanese, English, and Vietnamese — no translation layer, no bridge engineer.

The engagement started as a PoC: four weeks to a working prototype that validated the core assumption before the full build was committed. The prototype spec became the actual v1 plan.
PoC in 4 weeks. Full launch 12 weeks after PoC sign-off.
Career Services · Japan — Flutter
AI-powered career essay review app — Flutter for unified iOS & Android
For a service supporting Japanese university students with job-application essays (entry sheets), we built a mobile app in Flutter covering AI-driven essay drafting, AI feedback on submitted essays, and a library of past essays from candidates who landed at target companies. The differentiator was the AI flow and visual polish — animation quality and pixel-parity rendering across devices mattered more than deep OS integration.

Flutter was the right call out of Discovery — one codebase, one design system, one team. We've shipped multiple Flutter apps in similar shape since: B2B business matching apps, in-store promotion apps, and others where "one source, every platform" fits the product reality.
Single Flutter codebase, pixel-parity iOS + Android. Multiple Flutter apps shipped across career, B2B matching, and retail promotion categories.

Honest note

This is not the right fit if:

  • ×You need a working prototype in one week for under $1,000 — that's a different kind of work
  • ×The spec is fully locked and you want the lowest bid to execute it exactly — no questions, no Discovery
  • ×App Store approval is the finish line — what happens after launch is someone else's problem

This is the right fit if:

You want a team that's still there after launch

  • The app is a core product — not a one-time project — and needs to evolve over months or years
  • You've been through an offshore build before and something about the continuity didn't work
  • You want a vendor who can still answer the phone two years after go-live — not just at handoff
Free 30-min Session

In 30 minutes, let's find out
if this is the right structure for your app.

You have an app idea, or a live app that needs a team. Either way, the first question isn't about React Native versus Swift. It's about whether the structure we use — dedicated team, sprint-based accountability, ongoing past go-live — fits the reality of your project.

If anything on this page felt like it was describing your situation, that's enough to start. Use the 30 minutes to say it out loud. If this isn't the right fit, I'll tell you directly.

I'll ask you about
What you're trying to build, or what happened in a previous mobile build that didn't work the way you expected. The specific thing — not a general description of the app category.
I'll share back
What I've seen in similar situations, whether the lab model fits your actual project, and what the platform decision should probably be — with the reasoning, not just the answer.
1
Book a 30-min session via Google Meet — pick a time that works for your timezone
2
We talk through the situation — what you're building, where previous builds went wrong, and what platform actually makes sense
3
You leave with a concrete next step — not a proposal deck that arrives two weeks later, but a defined action from the session itself
Shogo Harada, CEO, Linnoedge
Who You're Talking To
Shogo Harada
CEO, Linnoedge — Ho Chi Minh City

I've been running development teams in Vietnam for over a decade. The failure pattern is consistent: the app ships, the vendor moves on, something breaks, and there's no one left who understands the codebase. I've seen it enough times that the lab model wasn't a product decision — it was the obvious structural response.

FAQ

Common questions about mobile app development
with a Vietnam team

The team works across four mobile stacks: Flutter and React Native for cross-platform apps (one codebase, iOS and Android), plus iOS Swift and Android Kotlin for native builds.

Each has a different center of gravity in 2026. Flutter holds roughly 46% of the cross-platform market and is what Google Pay, BMW, and Toyota chose for pixel-perfect UI and consistent performance across devices. We've shipped multiple Flutter apps ourselves — career services (AI essay review for university students), B2B business matching, in-store promotion — the cases where "one source, every platform" matches the product reality. React Native holds 35–38% and is what Meta's entire app family, Discord, Pinterest, and Microsoft Teams run on — the same engineers can share code with React web apps and tap into a much larger JavaScript talent pool. iOS Swift and Android Kotlin remain right for apps with deep OS integration, heavy native APIs, or complex animation work.

The platform decision comes out of Discovery — based on your product's actual requirements, not which framework the team happens to prefer.
Yes. App Store and Google Play submission is in scope — same sprint plan, same QA gate, not a separate line item.

Here is the honest version of what submission looks like on complex apps: we treat Apple rejection as a near-certain event, not a worst case. If your app touches payment flows, UGC, or B2B matching, you are navigating Guidelines 3.1.1 (In-App Purchase), 1.1 (Objectionable Content), 1.2 (UGC moderation requirements), and 3.2.2 (Unacceptable Business Practices) simultaneously. Each one has a live rejection risk on first pass.

The approach that reduces the cycle time: prepare the English appeal before you submit, not after the rejection arrives. We draft rebuttal templates for each applicable guideline in advance — citing Apple's own language, building the argument for why the specific feature does not fall under the cited rule. When rejection lands, the response time drops to hours, not the two or three weeks that happen when the team is reading the guideline for the first time after the fact.

On In-App Purchase rejections specifically: if Apple classifies an ad listing or profile visibility feature as premium content access triggering Guideline 3.1.1, the fix is structural, not a copy change. We've removed all "Buy," "Purchase," and charge-related language from UI and inserted a business information entry step before any external payment redirect — the structural argument that placement fees and feature unlocking are legally and functionally distinct.

The first submission isn't a guess. The common rejection scenarios are mapped, the appeal templates exist before the build is finished, and the team has been through this on Japan's largest B2B business-owner matching app — four guidelines in parallel, resolved.
A fixed-price project contract optimizes for delivery: a defined scope, a delivery date, a team assembled for that project. When the scope changes — and it always does — you're renegotiating a contract. When the team hands off at launch, the knowledge goes with them. The lab model uses a dedicated team assigned to your product over months. Scope changes are handled in sprint reviews, not contract amendments. The team that built the app is the team that handles the first OS update six months later. Accountability doesn't end at App Store approval.
That's not a separate service. The same team continues as the lab after launch — same engineers, same IT Director, same codebase context. Available from month one of go-live for OS update responses, feature additions, and bug fixes. The monthly rate is the same as the build phase. We've run one mobile engagement for 26 months now. Every major iOS and Android version transition has been handled by the original engineers. No regressions in production from any OS update in that period.
From Discovery to App Store submission: 3 to 6 months for a standard v1 — depending on scope, whether a PoC phase is needed, and how much of the UX is defined at the start. Discovery takes 1–2 weeks. Team assembly runs in parallel during week two. From there, sprint-based development with biweekly review calls. The PoC-first approach adds 3–4 weeks up front but typically removes 6–8 weeks of rework that would otherwise appear after the spec turns out to be wrong. We recommend it for any product where the core user flow hasn't been validated with real users yet.
English is the team's primary working language. No bridge engineer, no translation layer — the IT Director communicates directly with your team in English. Ho Chi Minh City (GMT+7) overlaps with Tokyo (GMT+9) during standard business hours. For US-based clients, we run async workflows with one daily sync. Time zone differences have not caused a delay in any mobile engagement we've run. The biweekly sprint review is usually the only meeting that requires both teams to be live at the same time — and that's 60 minutes every two weeks.
Both. Roughly half our current engagements are with Japan-based companies. The team works in Japanese, English, and Vietnamese — no bridge engineer, no translation layer. The IT Director handles communication in English directly; we have Japanese-speaking team members for client engagements that need it. For Japan-market app submissions — App Store Japan-specific compliance, Japanese UI conventions — we've handled both.
Yes. About 30% of the mobile engagements we've started were continuations of work another team had begun. The process is the same as Discovery — 2 to 3 weeks of reading the existing codebase, documenting what's there, identifying what's broken or missing, and writing the architecture that should have existed from the start. From that point, we build forward. The original vendor relationship doesn't need to be formally ended before we start.