Skip to main content

Version Compatibility Matrix

This document tracks version compatibility between the DigiWedge mobile stack and Gluestack UI v3 + NativeWind.

Current Stack (Expo SDK 54 Baseline)

PackageVersionNotes
React19.2.3React 19 with concurrent features
React Native0.81.5Latest stable with Expo 54
Expo SDK54.0.9Latest stable
NX22.3.3Latest stable
antd6.1.1Native React 19 support (no patch needed)
react-native-reanimated~3.17.4Pinned for stability
react-native-safe-area-context5.4.0Meets Gluestack peer dep
react-native-gesture-handler~2.24.0SDK 54 compatible
react-native-screens~4.11.1SDK 54 compatible

Note: Expo SDK 54 is the final release that supports the legacy architecture. Track New Architecture readiness during the migration.

Gluestack UI v3 Requirements

PackageRequiredOur VersionStatus
Expo SDK53+54.0.9Compatible
React Native~0.81+0.81.5Compatible
React18.x / 19.x19.2.3Compatible
react-native-reanimated~3.17.4~3.17.4Compatible
react-native-safe-area-context5.4.0+5.4.0Compatible

NativeWind Requirements

PackageRequiredRecommendedNotes
nativewind4.x~4.1.0Avoid 4.2.0 (breaking issues)
tailwindcss^3.4.x^3.4.17Dev dependency
react-native-reanimated~3.17.4~3.17.4Peer dependency

Known Compatibility Issues

Expo 54 + Gluestack (monitor)

IssueDescriptionStatus
#3200App crashes with overlay components on Expo 54Validate overlays in dev client
#3215Fresh Expo 54 + gluestack init has dependency problemsUse pinned versions; verify wrapper build

NativeWind Issues (mitigated)

IssueDescriptionMitigation
#1574NativeWind 4.2.0 breaks Expo appsPin to ~4.1.0
#1483NativeWind not working with ExpoUse correct babel preset

Reanimated Issues (mitigated)

IssueDescriptionMitigation
expo#36761Babel plugin moved to react-native-workletsUpdate babel config if needed
Version mismatch3.17.5 has edge casesPinned to 3.17.4

Root Dependencies (additions)

{
"dependencies": {
"nativewind": "~4.1.0",
"@gluestack-ui/config": "^1.1.20",
"@gluestack-ui/themed": "^1.1.73",
"lucide-react-native": "^0.400.0"
},
"devDependencies": {
"tailwindcss": "^3.4.17",
"prettier-plugin-tailwindcss": "^0.5.11"
}
}

Per-App Dependencies

Each mobile app needs in its own package.json:

{
"dependencies": {
"@digiwedge/gluestack-ui": "workspace:*"
}
}

Version Lock Strategy

To ensure reproducible builds:

  1. Pin exact versions for critical packages (reanimated, safe-area-context)
  2. Use tilde (~) for minor version flexibility (nativewind, gesture-handler)
  3. Avoid caret (^) for packages with known breaking changes
  4. Lock NativeWind to 4.1.x until 4.2.x issues resolved

Upgrade Path

SDK 54 Baseline (completed)

  • Expo SDK 54 aligned
  • React Native 0.81.5 aligned
  • Reanimated pinned at 3.17.4

When Expo 55+ Stabilizes

  1. Monitor gluestack-ui releases
  2. Test in isolated branch
  3. Upgrade sequence:
    • Expo SDK 54 → 55
    • React Native 0.81 → 0.82
    • Reanimated 3.17.4 → 4.x
    • Update animation components if needed

NativeWind 4.2.x

Once fixed:

  1. Monitor nativewind releases
  2. Upgrade nativewind ~4.1.0 → ~4.2.x
  3. Test all styling

Testing Compatibility

Before migration, validate with:

# Check peer dependencies
pnpm why react-native-reanimated
pnpm why react-native-safe-area-context

# Verify no conflicting versions
pnpm ls react-native-reanimated --depth=3
pnpm ls nativewind --depth=3

Sources