Magical Lineup is a clean, modern, offline-first React Native mobile application that lets football (soccer) coaches, players, and fans easily build, customize, save, and share tactical team lineups.
---The core idea of Magical Lineup is simplicity and total user privacy:
- No Backend Required: Everything runs 100% on the client side. Your custom lineups, player details, coach settings, and pitch preferences are stored securely on your device using
@react-native-async-storage/async-storage. - Fast & Responsive: Built with React Native and Expo, providing a native mobile experience on both Android and iOS without server latency or user authentication required.
- Tactical Formations: Choose from popular tactical setups (4-3-3, 4-4-2, 3-5-2, 4-2-3-1, 5-3-2, etc.).
- Custom Kits & Players: Customize player names, position labels, and primary/secondary team kit colors using an interactive color picker.
- Pitch Customizer: Change pitch styles (Grass, Futsal, Wood, Dark) and turf patterns (Stripes, Circular, Grid, Clean).
- Local Storage: Save and manage your favorite lineups directly on your device.
- Instant Image Sharing: Snapshot your visual tactical pitch into high-quality images and share them via WhatsApp, Instagram, or native device sharing.
- Multilingual: Native internationalization support (i18n) for multiple languages.
This project is built using Expo, an open-source platform and framework built around React Native.
- Cross-Platform: Write code once in TypeScript/JavaScript and run natively on Android, iOS, and Web.
- Expo Router: File-based routing system for smooth navigation.
- Expo Go App: Test your app live on physical devices instantaneously by scanning a QR code, without needing to setup heavy native IDEs for quick testing.
Ensure you have the following installed on your machine:
- Node.js (v18 or newer recommended)
- npm or yarn
- Optional: Expo Go app installed on your physical mobile device (available on App Store and Google Play Store), or Xcode / Android Studio for running simulators.
In the project root directory, install all required npm packages:
npm installLaunch the Expo development server:
npx expo start(or npm start)
Once the Expo CLI starts in your terminal, you can choose how to view the app:
- Physical Device: Open the Expo Go app on your phone and scan the QR code displayed in your terminal.
- Android Emulator: Press
ain the terminal (requires Android Studio / ADB set up). - iOS Simulator: Press
iin the terminal (macOS + Xcode required). - Web Browser: Press
wto launch in your browser.
magical-lineup/
├── app/ # Expo Router screens & file-based routes
│ ├── (tabs)/ # Main tab screens (Home, Lineup Builder, Saved, Settings)
│ ├── saved/[id].tsx # Dynamic route for viewing a saved lineup
│ └── _layout.tsx # Root layout provider & navigation wrapper
├── components/ # Reusable UI components (Pitch, Player, StatCard, etc.)
├── constants/ # Formations, tactics, themes, and colors
├── hooks/ # Custom React hooks (useShareLineup, etc.)
├── i18n/ # Translation & localization files
└── utils/ # Utility helpers for pitch styling & formatting
This project is open-source and available under the MIT License.


