Version Compatibility Matrix
This document tracks version compatibility between the DigiWedge mobile stack and Gluestack UI v3 + NativeWind.
Current Stack (Expo SDK 54 Baseline)
| Package | Version | Notes |
|---|---|---|
| React | 19.2.3 | React 19 with concurrent features |
| React Native | 0.81.5 | Latest stable with Expo 54 |
| Expo SDK | 54.0.9 | Latest stable |
| NX | 22.3.3 | Latest stable |
| antd | 6.1.1 | Native React 19 support (no patch needed) |
| react-native-reanimated | ~3.17.4 | Pinned for stability |
| react-native-safe-area-context | 5.4.0 | Meets Gluestack peer dep |
| react-native-gesture-handler | ~2.24.0 | SDK 54 compatible |
| react-native-screens | ~4.11.1 | SDK 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
| Package | Required | Our Version | Status |
|---|---|---|---|
| Expo SDK | 53+ | 54.0.9 | Compatible |
| React Native | ~0.81+ | 0.81.5 | Compatible |
| React | 18.x / 19.x | 19.2.3 | Compatible |
| react-native-reanimated | ~3.17.4 | ~3.17.4 | Compatible |
| react-native-safe-area-context | 5.4.0+ | 5.4.0 | Compatible |
NativeWind Requirements
| Package | Required | Recommended | Notes |
|---|---|---|---|
| nativewind | 4.x | ~4.1.0 | Avoid 4.2.0 (breaking issues) |
| tailwindcss | ^3.4.x | ^3.4.17 | Dev dependency |
| react-native-reanimated | ~3.17.4 | ~3.17.4 | Peer dependency |
Known Compatibility Issues
Expo 54 + Gluestack (monitor)
| Issue | Description | Status |
|---|---|---|
| #3200 | App crashes with overlay components on Expo 54 | Validate overlays in dev client |
| #3215 | Fresh Expo 54 + gluestack init has dependency problems | Use pinned versions; verify wrapper build |
NativeWind Issues (mitigated)
| Issue | Description | Mitigation |
|---|---|---|
| #1574 | NativeWind 4.2.0 breaks Expo apps | Pin to ~4.1.0 |
| #1483 | NativeWind not working with Expo | Use correct babel preset |
Reanimated Issues (mitigated)
| Issue | Description | Mitigation |
|---|---|---|
| expo#36761 | Babel plugin moved to react-native-worklets | Update babel config if needed |
| Version mismatch | 3.17.5 has edge cases | Pinned to 3.17.4 |
Recommended package.json for Migration
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:
- Pin exact versions for critical packages (reanimated, safe-area-context)
- Use tilde (~) for minor version flexibility (nativewind, gesture-handler)
- Avoid caret (^) for packages with known breaking changes
- 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
- Monitor gluestack-ui releases
- Test in isolated branch
- 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:
- Monitor nativewind releases
- Upgrade nativewind ~4.1.0 → ~4.2.x
- 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