An open API service indexing awesome lists of open source software.

https://github.com/divineniiquaye/pho-monorepo

Turborepo react-native/nextjs starter
https://github.com/divineniiquaye/pho-monorepo

boilerplate eas expo monorepo nativewind nextjs pnpm react-native shadcn-ui

Last synced: 4 months ago
JSON representation

Turborepo react-native/nextjs starter

Awesome Lists containing this project

README

          


PHO Monorepo (PHOX)

๐Ÿš€ A powerful monorepo template for your next Expo/Next.js project ๐Ÿš€, crafted with developer experience and performance at its core. Packed with essential modern tools including TypeScript, TailwindCSS, expo-router, react-query, react-hook-form, and I18n to jumpstart your development.

```sh
npx pho-monorepo@latest init [my-app]
```

## ๐Ÿš€ Motivation

My goal is to create a monorepo starter kit that is easy to use, fast to build, and has a good developer experience. I wanted to create a starter kit that is as close to production as possible, but still allows for customization and flexibility.

This monorepo template is designed to be a starting point for your next project. It includes everything you need to get started with Expo and NextJS.

## โœ๏ธ Philosophy

The philosophy behind this monorepo template is to provide a solid foundation for your next project.

My main goals driving this template are:

- **๐Ÿš€ Production-ready**: This template is designed to be production-ready for real-world use, providing a solid foundation for building production-ready projects.
- **๐Ÿ’ช Developer Experience**: This template is built with developer experience in mind, providing a fast and easy-to-use development experience and enhance productivity.
- **๐Ÿ’ช Well-maintained third-party libraries**: This template uses well-maintained third-party libraries, ensuring that you have access to high-quality and reliable libraries for your project.
- **๐Ÿ’ช Customizable**: This template is highly customizable, allowing you to tailor it to your specific needs and preferences.

## โญ Key Features

- โœ… Latest Expo SDK: Leverage the best of the Expo ecosystem while maintaining full control over your app.
- ๐ŸŽ‰ [TypeScript](https://www.typescriptlang.org/) for enhanced code quality and bug prevention through static type checking.
- ๐Ÿ’… Minimal UI kit built with [TailwindCSS](https://www.nativewind.dev/), featuring common components essential for your app.
- โš™๏ธ Multi-environment build support (Production, Staging, Development) using Expo configuration.
- ๐Ÿ’ก Clean project structure with Absolute Imports for easier code navigation and management.
- ๐Ÿ—‚ VSCode recommended extensions, settings, and snippets for an enhanced developer experience.
- ๐Ÿ›  [Github Actions](https://github.com/features/actions) workflows for building, releasing, testing, and distributing your app.
- ๐Ÿ”ฅ [React Query](https://react-query.tanstack.com/) for efficient data fetching and state management.
- ๐Ÿงต Robust form handling with [react-hook-form](https://react-hook-form.com/) and [zod](https://github.com/colinhacks/zod) for validation, plus keyboard handling.
- ๐ŸŽฏ Localization support with [i18next](https://www.i18next.com/).
- ๐Ÿงช Unit testing setup with [Jest](https://jestjs.io/) and [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/).

## ๐Ÿ’Ž Libraries used

- [Expo](https://docs.expo.io/)
- [Expo Router](https://docs.expo.dev/router/introduction/)
- [NextJS](https://nextjs.org/)
- [Nativewind](https://www.nativewind.dev/v4/overview)
- [React Query](https://tanstack.com/query/v4)
- [React Hook Form](https://react-hook-form.com/)
- [i18next](https://www.i18next.com/)
- [Legend State](https://github.com/LegendApp/legend-state)
- [React Native Async Storage](https://github.com/react-native-async-storage/async-storage)
- [React Native Gesture Handler](https://docs.swmansion.com/react-native-gesture-handler/docs/)
- [React Native Reanimated](https://docs.swmansion.com/react-native-reanimated/docs/)
- [React Native Svg](https://github.com/software-mansion/react-native-svg)
- [Expo Image](https://docs.expo.dev/versions/unversioned/sdk/image/)
- [React Native Keyboard Controller](https://github.com/kirillzyusko/react-native-keyboard-controller)
- [React Native Safe Area Context](https://github.com/th3rdwave/react-native-safe-area-context)
- [React Native Screens](https://github.com/software-mansion/react-native-screens)
- [Zod](https://zod.dev/)

## ๐Ÿ’… Shadcn UI Kit (Web & Native)

>> A web demo of most ui listed is available [here](https://pho-monorepo.vercel.app/), and use Expo Go to try out the native version of the app.

- Accordion
- Alert
- Alert-dialog
- Aspect-ratio
- Avatar
- Badge
- Breadcrumb
- Button
- Calender (Alternative [Flash-Calender](https://github.com/MarceloPrado/flash-calendar) by [@MarceloPrado](https://github.com/MarceloPrado) or [Calendar-kit](https://github.com/f0wu5u/calendar-kit) by [@f0wu5u](https://github.com/f0wu5u))
- Card
- Carousel
- Chart (Web only, use `use dom` or [Victory-Native](https://github.com/FormidableLabs/victory-native-xl) chart for native support)
- Checkbox
- Collapsible
- Command
- Context-menu
- Dialog
- Drawer (Web only, use `@repo/bottom-sheet` or [@gorhom/bottom-sheet](https://github.com/gorhom/react-native-bottom-sheet) for native support)
- Dropdown-menu
- Form
- Hover-card
- Input
- Input-OTP (Alternative [input-otp-input](https://github.com/yjose/input-otp-native) by [@yjose](https://github.com/yjose))
- Label
- Menubar
- Navigation-menu
- Pagination
- Popover
- Progress
- Radio-group
- Resizable
- Scroll-Area (Web only, use ScrollView for native support)
- Select
- Separator
- Sheet
- Sidebar (Web only, use `use dom` for native support)
- Slider
- Skeleton
- Sonner
- Switch
- Table
- Tabs
- Text
- Toast
- Toggle
- Toggle-group
- Toolbar
- Tooltip
- Typography

> Each component is 100% [TypeScript](https://www.typescriptlang.org/). Here's extra components included in the UI kit:

- Stack (HStack, VStack)

## RoadMap

- [ ] Add Toast UI Component
- [ ] Add Documentation
- [ ] Add AI Integration

## Contributors

This starter is made and maintained by [Divine Niiquaye Ibok](https://github.com/divineniiquaye). New contributors are always welcome!

## ๐Ÿ”ฅ How to contribute?

Thank you for your interest in contributing to this project. Your involvement is greatly appreciated and we welcome your contributions. Here are some ways you can help improve this project:

1. Show your support for the project by giving it a ๐ŸŒŸ on Github. This helps us increase visibility and attract more contributors.
2. Share your thoughts and ideas with us by opening an issue. If you have any suggestions or feedback about any aspect of the project.
3. If you have any questions about the project, please don't hesitate to ask. Simply open an issue and I'll do my best to provide a helpful and informative response.
4. If you encounter a bug or typo while using the starter kit or reading the documentation, I'll would be grateful if you could bring it to my attention. You can open an issue to report the issue, or even better, submit a pull request with a fix.

## ๐Ÿ”– License

This project is MIT licensed.