A single-room chat application built with Expo React Native, featuring real-time messaging, reactions, and offline support.
- π¬ Real-time messaging with offline support
- π₯ Participant profiles with detailed info
- π Message reactions with participant details
- πΎ Persistent data with AsyncStorage
- π Dark/Light mode with system theme support
- π± Cross-platform (iOS, Android)
- π Message editing indicators
- π Message reactions
- π Reply to messages
- π·οΈ @mentions support
- π Date separators
- πΌοΈ Image attachments
- βΎοΈ Infinite scroll for message history
- π Real-time updates via polling
- πΆ Offline message queue
- β‘ Optimized rendering
- π¨ Modern UI with NativeWind
- Expo
- React Native
- TypeScript
- NativeWind (TailwindCSS)
- Zustand (State Management)
- React Native Reusables
- Bottom Sheet
- React Native Reanimated
- Node.js (v18 or newer)
- npm or yarn
- Expo CLI
- iOS Simulator or Android Emulator
- Expo Go app on your physical device (optional)
- Clone the repository
git clone https://github.com/yourusername/tribe-chat.git
cd tribe-chat
- Install dependencies
npm install
# or
yarn install
- Configure environment variables
cp .env.example .env
Edit the .env
file with your configuration values.
- Start the development server
npx expo start
-
iOS Simulator
npx expo run:ios
-
Android Emulator
npx expo run:android
- Install Expo Go on your device from the App Store (iOS) or Play Store (Android)
- Start the development server:
npx expo start
- Scan the QR code with:
- iOS: Camera app
- Android: Expo Go app
tribe-chat/
βββ app/ # App screens and navigation
βββ components/ # Reusable UI components
βββ lib/ # Utilities and helpers
βββ assets/ # Static assets
βββ types/ # TypeScript type definitions
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.