While we actively use Belt internally at thoughtbot, this project is still in early phases of development, so its API might still change frequently.
Belt is an opionated CLI tool for starting a new React Native app. It makes the mundane decisions for you using tooling and conventions that we at thoughtbot have battle-tested and found to work well for the many successful apps we have built for clients.
Here are some of what gets configured when you start a new Belt app:
- Expo
- ESLint
- Prettier
- TypeScript
- Jest
- React Native Testing Library
- MSW for mocking
- React Navigation with bottom tabs
- Tanstack Query for REST APIs. Apollo Client for GraphQL coming soon!
- Redux Toolkit for global state (coming soon!)
Create a new React Native Expo app using Belt with:
# With NPM
npx create-belt-app MyApp
# With Yarn
npx create-belt-app MyApp --yarn
# With pnpm (experimental)
npx create-belt-app MyApp --pnpm
# With Bun (experimental)
npx create-belt-app MyApp --bun
then run the command you'd like to perform:
# eg. add TypeScript to the project
yarn belt add notifications
# or, with NPM
npx belt add notifications
# or, with PNPM
pnpm belt add notifications
See the CONTRIBUTING document. Thank you, contributors!
Belt is Copyright © 2024 thoughtbot. It is free software, and may be redistributed under the terms specified in the LICENSE file.
Belt is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We love open source software! See our other projects or hire us to design, develop, and grow your product.