{"id":18594109,"url":"https://github.com/manishbsta/react-native-managed-template","last_synced_at":"2026-03-01T15:05:50.988Z","repository":{"id":196499502,"uuid":"696220553","full_name":"manishbsta/react-native-managed-template","owner":"manishbsta","description":"A React Native Expo starter template project with built-in navigation \u0026 ready to use state management.","archived":false,"fork":false,"pushed_at":"2025-12-27T08:04:45.000Z","size":2767,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-29T05:51:54.886Z","etag":null,"topics":["expo","expo-cli","expo-router","nativewind","react-native","react-native-template"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manishbsta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-25T10:32:15.000Z","updated_at":"2025-12-27T08:47:09.000Z","dependencies_parsed_at":"2024-11-14T06:20:19.084Z","dependency_job_id":"5742c7cd-bb80-44cb-93fa-0d168cf3ee94","html_url":"https://github.com/manishbsta/react-native-managed-template","commit_stats":{"total_commits":22,"total_committers":2,"mean_commits":11.0,"dds":"0.045454545454545414","last_synced_commit":"cceeaa4c0f6154bd298a1b8819fb0101251b6737"},"previous_names":["manishbsta/react-native-managed-template"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/manishbsta/react-native-managed-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishbsta%2Freact-native-managed-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishbsta%2Freact-native-managed-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishbsta%2Freact-native-managed-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishbsta%2Freact-native-managed-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manishbsta","download_url":"https://codeload.github.com/manishbsta/react-native-managed-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manishbsta%2Freact-native-managed-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29973288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T14:44:57.896Z","status":"ssl_error","status_checked_at":"2026-03-01T14:43:27.662Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["expo","expo-cli","expo-router","nativewind","react-native","react-native-template"],"created_at":"2024-11-07T01:14:33.423Z","updated_at":"2026-03-01T15:05:50.980Z","avatar_url":"https://github.com/manishbsta.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React Native Managed Template\n\nA production-ready React Native Expo starter template with authentication flow, navigation, state management, and modern development tools pre-configured.\n\n## ✨ Features\n\n### Core Features\n\n- 🚀 **Expo SDK 55** - Latest Expo framework with managed workflow\n- 📱 **Expo Router** - File-based routing with native navigation\n- 🎨 **Unistyles v3** - Universal styling system with theme support\n- 🗄️ **Zustand** - Lightweight state management\n- 🌐 **Axios** - HTTP client with interceptors pre-configured\n- 🔐 **Expo Secure Store** - Secure storage for sensitive data\n- 🎭 **Dark/Light Theme** - Built-in theme switching with context\n\n### Authentication \u0026 Navigation\n\n- ✅ Pre-built authentication flow\n- 🔒 Protected routes with auth guards\n- 📍 Deep linking support\n- 🎯 Type-safe navigation with TypeScript\n\n### Development Experience\n\n- 💅 **ESLint \u0026 Prettier** - Code quality and formatting\n- 📝 **TypeScript** - Full type safety\n- 🎨 **Custom Fonts** - Pre-configured font loading\n- 🧩 **VS Code Snippets** - Speed up development\n- 🍞 **Toast Notifications** - User feedback system\n- ⌨️ **Keyboard Controller** - Enhanced keyboard handling\n- 🎬 **Reanimated** - Smooth animations\n\n### Build \u0026 Deployment\n\n- 🏗️ **EAS Build** - Production-ready build profiles\n- 🔧 **Development Client** - Custom dev builds\n- 📦 **Prebuild** - Native project generation\n\n## 📋 Prerequisites\n\n- Node.js (v18 or newer)\n- npm or yarn\n- [Expo CLI](https://docs.expo.dev/get-started/installation/)\n- For iOS development: macOS with Xcode\n- For Android development: Android Studio\n\n## 🚀 Getting Started\n\n### 1. Clone or use this template\n\n```bash\n# Clone the repository\ngit clone \u003crepository-url\u003e\ncd react-native-managed-template\n\n# Or use as template in GitHub\n```\n\n### 2. Install dependencies\n\n```bash\nnpm install\n# or\nyarn install\n```\n\n### 3. Start development server\n\n```bash\nnpm start\n# or\nexpo start\n```\n\n### 4. Run on device/simulator\n\n```bash\n# Run on iOS simulator\nnpm run ios\n\n# Run on Android emulator\nnpm run android\n\n# Or scan QR code with Expo Go app\n```\n\n## 📁 Project Structure\n\n```\nreact-native-managed-template/\n├── app/                          # Expo Router pages\n│   ├── _layout.tsx              # Root layout\n│   ├── sign-in.tsx              # Sign in screen\n│   └── (protected)/             # Protected routes group\n│       ├── _layout.tsx\n│       ├── index.tsx            # Home screen\n│       └── profile.tsx          # Profile screen\n├── src/\n│   ├── components/              # Reusable components\n│   │   ├── styled/             # Styled UI components\n│   │   └── profile/            # Feature-specific components\n│   ├── contexts/               # React contexts\n│   │   ├── auth.context.tsx   # Authentication context\n│   │   └── theme.context.tsx  # Theme management\n│   ├── hooks/                  # Custom React hooks\n│   ├── lib/                    # Utilities and configs\n│   │   ├── axios.ts           # Axios instance \u0026 interceptors\n│   │   ├── secure-store.ts    # Secure storage wrapper\n│   │   └── date-time.ts       # Date utilities\n│   ├── store/                  # Zustand stores\n│   ├── unistyles/             # Theme tokens \u0026 styles\n│   └── constants/             # App constants\n├── assets/                     # Static assets\n│   ├── fonts/\n│   ├── icons/\n│   └── images/\n├── android/                    # Android native code\n├── ios/                        # iOS native code\n└── app.config.ts              # Expo app configuration\n```\n\n## 🧩 VS Code Snippets\n\nThe template includes pre-built VS Code snippets to accelerate development. These snippets generate boilerplate code with best practices baked in.\n\n### Available Snippets\n\n#### Component Snippet (`rnbc`)\n\nType `rnbc` to generate a new React Native component with:\n\n- Proper imports (StyledText, React, View)\n- Unistyles setup with theme tokens\n- Component structure with default styling\n\n```typescript\n// Generated code structure:\nimport { StyledText } from '@/components/styled/StyledText';\nimport React from 'react';\nimport { View } from 'react-native';\nimport { StyleSheet } from 'react-native-unistyles';\n\nconst MyComponent = () =\u003e {\n  return (\n    \u003cView style={styles.container}\u003e\n      \u003cStyledText style={styles.text}\u003eMyComponent\u003c/StyledText\u003e\n    \u003c/View\u003e\n  );\n};\n\nconst styles = StyleSheet.create(({ spacings }) =\u003e ({\n  container: {\n    padding: spacings.sm,\n  },\n  text: {\n    textDecorationLine: 'underline'\n  },\n}));\n\nexport default MyComponent;\n```\n\n#### Screen Snippet (`rnbs`)\n\nType `rnbs` to generate a new screen with:\n\n- ScrollView with keyboard handling\n- Expo Router integration\n- Safe area insets\n- Responsive padding using theme tokens\n\n```typescript\n// Generated code structure:\nimport { StyledText } from '@/components/styled/StyledText';\nimport { useRouter } from 'expo-router';\nimport React from 'react';\nimport { ScrollView } from 'react-native';\nimport { StyleSheet } from 'react-native-unistyles';\n\nconst MyScreen = () =\u003e {\n  const router = useRouter();\n\n  return (\n    \u003cScrollView\n      keyboardShouldPersistTaps='handled'\n      showsVerticalScrollIndicator={false}\n      contentContainerStyle={styles.contentContainer}\u003e\n      \u003cStyledText variant='title'\u003eMyScreen\u003c/StyledText\u003e\n    \u003c/ScrollView\u003e\n  );\n};\n\nconst styles = StyleSheet.create(({ spacings }, rt) =\u003e ({\n  contentContainer: {\n    flexGrow: 1,\n    paddingHorizontal: spacings.base,\n    paddingBottom: spacings.xxxl,\n    paddingTop: rt.insets.top + spacings.base,\n  },\n}));\n\nexport default MyScreen;\n```\n\n### How to Use Snippets\n\n1. Create a new `.tsx` file in your project\n2. Type the snippet prefix (`rnbc` or `rnbs`)\n3. Press `Tab` or `Enter` to expand\n4. The component/screen name will be auto-selected - just type your desired name\n5. Press `Tab` to move to the next placeholder (if any)\n\nThese snippets ensure consistency across your codebase and save time on repetitive boilerplate code.\n\n## 🔐 Authentication Flow\n\nThe template includes a complete authentication flow:\n\n1. **Sign In Screen** - Entry point for unauthenticated users\n2. **Auth Context** - Manages authentication state\n3. **Protected Routes** - Automatically guards routes requiring authentication\n4. **Secure Storage** - Persists tokens securely\n\n## 📦 Available Scripts\n\n```bash\n# Development\nnpm start              # Start Expo development server\nnpm run android        # Run on Android\nnpm run ios           # Run on iOS\n\n# Code Quality\nnpm run lint          # Run ESLint with auto-fix\n\n# Build\nnpm run prebuild      # Generate native projects\nnpm run build:dev     # Build development client locally\nnpm run build:prev    # Build preview build locally\nnpm run build:prod    # Build production build locally\n```\n\n## 🛠️ Built With\n\n- [Expo](https://expo.dev/) - Framework and platform\n- [Expo Router](https://docs.expo.dev/router/introduction/) - File-based routing\n- [React Native](https://reactnative.dev/) - Mobile framework\n- [TypeScript](https://www.typescriptlang.org/) - Type safety\n- [Zustand](https://zustand-demo.pmnd.rs/) - State management\n- [Unistyles](https://reactnativeunistyles.vercel.app/) - Styling solution\n- [Axios](https://axios-http.com/) - HTTP client\n- [React Native Reanimated](https://docs.swmansion.com/react-native-reanimated/) - Animations\n- [React Native Toast Message](https://github.com/calintamas/react-native-toast-message) - Notifications\n\n## 📝 Configuration\n\n### App Configuration\n\nUpdate [app.config.ts](app.config.ts) with your app details:\n\n```typescript\nexport default {\n  name: 'Your App Name',\n  slug: 'your-app-slug',\n  // ... other configurations\n};\n```\n\n### Environment Variables\n\nCreate a `.env` file for environment-specific variables (not included in repo):\n\n```env\nAPI_BASE_URL=https://your-api.com\n```\n\n### Navigation Theme\n\nCustomize navigation appearance in [src/hooks/useNavigationTheme.ts](src/hooks/useNavigationTheme.ts)\n\n## 🚢 Deployment\n\n### Building for Production\n\n1. **Configure EAS**\n\n   ```bash\n   eas build:configure\n   ```\n\n2. **Build for Android/iOS**\n\n   ```bash\n   eas build --platform android\n   eas build --platform ios\n   ```\n\n3. **Submit to Stores**\n   ```bash\n   eas submit --platform android\n   eas submit --platform ios\n   ```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Expo team for the amazing framework\n- React Native community for the excellent libraries\n- All testers who help improve this template\n\n## 📧 Support\n\nIf you have any questions or run into issues, please open an issue on GitHub.\n\n---\n\nMade with ❤️ for the React Native community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanishbsta%2Freact-native-managed-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanishbsta%2Freact-native-managed-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanishbsta%2Freact-native-managed-template/lists"}