Skip to main content

Command Palette

Search for a command to run...

How Instagram, WhatsApp, Uber & Netflix Would Be Built Today Using Expo Router

Updated
3 min read

Most of the react native tutorials teaches you how to build application or new screens but very few talks about the systems.

That is why the developers can easily build attractive screens but failed to manage the architecture when the application scales.

Making a small app is easy but a production scale application is completely different engineering challenge.

The architecture with:

  • 5 screens

  • 1 developer

  • 3 - 4 API calls

will be completely get collapsed when application become:

  • Hundred of screens

  • Millions of users

  • Multiple team members

  • Realtime systems

  • Offline support

  • Complex navigations

  • Background synchronisation

That's why the big companies like Instagram, Whatsapp, User ... invest heavy in architecture engineering.

The UI is just a surface for interaction. The actual complexity in underneath.

Let's explore more about how modern large applications are structured, and how the architecture matters in React Native.

Why Simple folder structure fails to scale

Most beginner react native start like this:

/components
/screens
/navigation
/hooks
/utils
/services

At first, this structure feels organized but then the app grows. Suddenly:

  • /components has 400 files

  • /screens becomes impossible to navigate

  • Logic might be duplicate

  • API calls logic are not organized

  • Navigation becomes tangled

This happens because the structure is organized for small projects, not scalable systems.

Example:

/components
    Button.tsx
    MessageBubble.tsx
    FeedCard.tsx

These files belong to completely different domains:

  • Button - Shared UI systems

  • MessageBubble - Messaging

  • FeedCard - Ratings

As application scale, this creates:

  • Tight coupling

  • Dependency confusion

  • Hard to refactor

Now, you can see that the architecture has become more important than UI.

Architecture Thinking vs Small-App Thinking

Small app development focuses on:

How do I make this screen work?

Production engineering focuses on:

How will this system survive growth?

This difference actual change everything. Production engineering focuses on:

  • Maintainability

  • Scalability

  • Developer experience

  • Performance

  • Reliability

  • Long-term evolution

  • Team collaboration

  • Feature isolation

At scale, architecture becomes a business decision.

Because poor architecture eventually slows down the entire company.

The Evolution of Mobile App Architecture

Most apps evolve through stages:

Beginner Architecture

/components
/screens
/navigation

Works fine for:

  • Personal projects

  • MVP's

  • Small demos

But fails for:

  • Multiple developers can join

  • The feature will become interconnected

  • Business logic grows

Medium Scale Architecture

Developer starts separating:

/api
/store
/hooks
/navigation
/modules

This improves the organization of code.

But eventually:

  • Features still depend on each other heavily

  • Shared state becomes more complex

  • Growing navigation is difficult to manage.

Production Features Architecture

Large applications usually shift towards feature-based architecture.

Instead of organizing by file type:

/components
/hooks/services

Example:

/features
    /auth
    /feed
    /chat
    /profile
    /payments

This is one of the biggest architectural transitions in large scale enginerring.