A memory game for kids that builds Social-Emotional Learning (SEL) skills. Watch your Pal express a sequence of emotions โ then echo them back in order!
Built with React Native + Expo by KindredPal Inc.
Before you start, make sure you have these installed:
| Tool | Version | Install |
|---|---|---|
| Node.js | 18+ | nodejs.org |
| npm | 9+ | Comes with Node |
| Expo CLI | Latest | npm install -g expo-cli |
| EAS CLI | Latest | npm install -g eas-cli |
To test on your phone:
- Install Expo Go from the App Store (iOS) or Play Store (Android)
To build for App Store / Play Store:
- An Expo account (free)
- Apple Developer account ($99/year) for iOS builds
- Google Play Developer account ($25 one-time) for Android builds
git clone https://github.com/SarahSchoonmaker/palfeelings.git
cd palfeelingsnpm install --legacy-peer-depsWhy
--legacy-peer-deps? Some Expo packages have peer dependency conflicts with newer npm versions. This flag tells npm to install them anyway.
npx expo install expo-in-app-purchases -- --legacy-peer-depsnpx expo start --clearThen scan the QR code with:
- iPhone: Open the Camera app โ scan โ tap the Expo Go link
- Android: Open Expo Go app โ scan QR code
Connection issues? Try tunnel mode:
npx expo start --tunnel --clear
PalFeelings/
โโโ App.js # Root โ navigation + font loading
โโโ app.json # Expo config (bundle ID, version, assets)
โโโ eas.json # EAS Build + Submit config (Apple credentials)
โโโ babel.config.js # Babel config
โโโ package.json # Dependencies
โ
โโโ assets/
โ โโโ icon.png # App icon โ 1024ร1024px
โ โโโ splash.png # Splash screen โ 1290ร2796px
โ โโโ adaptive-icon.png # Android icon โ 1024ร1024px (no rounded corners)
โ โโโ favicon.png # Web favicon โ 256ร256px
โ
โโโ src/
โโโ data/
โ โโโ gameData.js # EMOTIONS, PALS, STORY_LINES, DAILY_CHALLENGES
โ
โโโ hooks/
โ โโโ useStorage.js # AsyncStorage save/load, XP, premium, groups
โ
โโโ utils/
โ โโโ theme.js # Colors, fonts, spacing, shadows, radius
โ
โโโ components/
โ โโโ UI.js # Button, Card, Pill, ProgressBar, BackButton
โ โโโ BottomNav.js # Persistent bottom navigation bar
โ
โโโ screens/
โโโ HomeScreen.js # Home โ FOTD card, journey level, mode grid
โโโ GameScreen.js # Main game โ worlds, combos, sequence logic
โโโ PalSelectScreen.js # Character selection with premium gate
โโโ PaywallScreen.js # $7.99 premium upgrade screen
โโโ ParentScreen.js # SEL skill tracking dashboard
โโโ JournalScreen.js # Emotion journal
โโโ LeaderboardScreen.js # Weekly leaderboard + journey levels + friends
โโโ FeelingOfDayScreen.js # Daily emotion + parent conversation starters
- ๐ผ Panda pal
- ๐ง Classic mode
- ๐ฎ Levels 1โ10
- ๐ Feeling of the Day (+50 XP daily bonus)
- ๐ฅ Daily streak tracking
- ๐พ All 9 Pals (Fox, Bunny, Cat, Bear, Owl, Lion, Dragon, Unicorn)
- โก Speed, Mirror & Story modes
- โพ๏ธ Unlimited levels
- ๐ Full Parent Dashboard (5 SEL skill meters)
- ๐ฏ Daily Challenges
- ๐ Emotion Journal
- ๐ซ Zero ads ever
- ๐ Free updates for life
- 6 Worlds unlock as you level up (Sunny Meadow โ Magic Castle)
- 5 Emotion Combos trigger special bonuses (e.g. Happy + Excited = 2ร score)
- No game over โ wrong answers replay the sequence so kids keep practicing
- Level cap at 10 for free users โ paywall triggers at the moment of greatest engagement
{
"expo": {
"name": "Pal Feelings",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.sschoonm.kindredpal"
},
"android": {
"package": "com.sschoonm.kindredpal"
},
"extra": {
"eas": {
"projectId": "YOUR_EAS_PROJECT_ID"
}
}
}
}{
"submit": {
"production": {
"ios": {
"appleId": "your@email.com",
"ascAppId": "YOUR_APP_STORE_CONNECT_APP_ID",
"appleTeamId": "YOUR_APPLE_TEAM_ID"
}
}
}
}
โ ๏ธ Never commit real credentials to GitHub. Addeas.jsonto.gitignore.
- EAS account linked:
eas login - Project linked:
eas init
eas build --platform ios --profile productionTakes ~15โ20 minutes. EAS handles certificates and provisioning profiles automatically.
eas submit --platform ioseas build --platform android --profile production
eas submit --platform androidnpm run build:ios # Build iOS
npm run build:android # Build Android
npm run build:all # Build both platforms
npm run submit:ios # Submit iOS to App Store
npm run submit:android # Submit Android to Play Store
| Package | Purpose |
|---|---|
expo ~51 |
Core Expo SDK |
react-native 0.74 |
React Native framework |
@react-navigation/native-stack |
Screen navigation |
expo-linear-gradient |
World backgrounds + UI gradients |
expo-haptics |
Tactile feedback on button taps |
expo-font |
Custom Baloo 2 + Nunito fonts |
expo-splash-screen |
Splash screen management |
@react-native-async-storage/async-storage |
Local game save data |
react-native-safe-area-context |
Notch/camera safe zones |
react-native-gesture-handler |
Swipe gestures |
expo-in-app-purchases |
$7.99 premium purchase (StoreKit) |
@expo-google-fonts/baloo-2 |
Display font |
@expo-google-fonts/nunito |
Body font |
- Support: support@kindredpal.com
- Company: KindredPal Inc., Florida, USA
- App Store: Pal Feelings
- Support page: sarahschoonmaker.github.io/palfeelings-privacy-page