npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

create-mobile-foundation

v0.0.6

Published

CLI to scaffold a modern bare React Native + Expo modules project with Firebase, Analytics, and more.

Readme

create-mobile-foundation

A CLI tool to scaffold a modern, bare React Native + Expo modules project with optional Firebase, Analytics, Crashlytics, Calendar, Expo Updates, and more.

Repository Layout

  • packages/cli is the npm package that should be packed and published
  • the repo root stays available for local app development and generator testing

Publishing

npm run cli:pack:dry-run
npm run cli:publish

Features

  • Bare React Native + Expo modules
  • TypeScript or JavaScript
  • Firebase, Analytics, Crashlytics (optional)
  • Expo Calendar, Updates, NetInfo, Drawer, Material Top Tabs (optional)
  • Google Fonts integration
  • Responsive theme utilities
  • Customizable splash, theme, and context providers

Usage

npx create-mobile-foundation init <app-name> [options]

# or

npx create-mobile-foundation <app-name> [options]

Options

  • --js Convert the generated project to JavaScript
  • --ts Keep the generated project in TypeScript
  • --firebase Include Firebase packages and native setup
  • --no-firebase Skip Firebase packages and native setup
  • --analytics Include Analytics packages and native setup
  • --no-analytics Skip Analytics packages and native setup
  • --crashlytics Include Crashlytics packages and native setup
  • --no-crashlytics Skip Crashlytics packages and native setup
  • --calendar Include Expo Calendar package and iOS usage descriptions
  • --no-calendar Skip Expo Calendar package and iOS usage descriptions
  • --expo-updates Include expo-updates package and update prompt UI
  • --no-expo-updates Skip expo-updates package and update prompt UI
  • --netinfo Include offline detector with network connectivity monitoring
  • --no-netinfo Skip offline detector (connectivity monitoring)
  • --drawer Include @react-navigation/drawer
  • --no-drawer Skip @react-navigation/drawer
  • --material-top-tabs Include @react-navigation/material-top-tabs with peers
  • --no-material-top-tabs Skip @react-navigation/material-top-tabs with peers
  • --expo-version <version> Expo version to target (default: latest)
  • --design-width <number> Design width for responsive utilities (default: 393)
  • --design-height <number> Design height for responsive utilities (default: 852)
  • --google-font-family <name> Google font family to download (default: "Open Sans")
  • --italic-fonts Include italic variants for all selected font weights
  • --no-italic-fonts Skip italic variants
  • --dark-mode Include dark mode support with distinct palettes
  • --no-dark-mode Keep light and dark palettes identical
  • --dry-run Print commands without running them
  • --help Show help

Examples

npx create-mobile-foundation init MyApp --ts --firebase --calendar --expo-updates --drawer --material-top-tabs --google-font-family "Open Sans" --dark-mode
npx create-mobile-foundation MyApp --js --no-firebase --no-calendar --no-expo-updates --no-netinfo --no-drawer --no-material-top-tabs --no-dark-mode

License

MIT

Thanks

This project is made possible by the awesome work of the open source community. Special thanks to:

Getting Started

Note: Make sure you have completed the Set Up Your Environment guide before proceeding.

Step 1: Start Metro

First, you will need to run Metro, the JavaScript build tool for React Native.

To start the Metro dev server, run the following command from the root of your React Native project:

# Using npm
npm start

# OR using Yarn
yarn start

Step 2: Build and run your app

With Metro running, open a new terminal window/pane from the root of your React Native project, and use one of the following commands to build and run your Android or iOS app:

Android

# Using npm
npm run android

# OR using Yarn
yarn android

iOS

For iOS, remember to install CocoaPods dependencies (this only needs to be run on first clone or after updating native deps).

The first time you create a new project, run the Ruby bundler to install CocoaPods itself:

bundle install

Then, and every time you update your native dependencies, run:

bundle exec pod install

For more information, please visit CocoaPods Getting Started guide.

# Using npm
npm run ios

# OR using Yarn
yarn ios

If everything is set up correctly, you should see your new app running in the Android Emulator, iOS Simulator, or your connected device.

This is one way to run your app — you can also build it directly from Android Studio or Xcode.

Step 3: Modify your app

Now that you have successfully run the app, let's make changes!

Open App.tsx in your text editor of choice and make some changes. When you save, your app will automatically update and reflect these changes — this is powered by Fast Refresh.

When you want to forcefully reload, for example to reset the state of your app, you can perform a full reload:

  • Android: Press the R key twice or select "Reload" from the Dev Menu, accessed via Ctrl + M (Windows/Linux) or Cmd ⌘ + M (macOS).
  • iOS: Press R in iOS Simulator.

Congratulations! :tada:

You've successfully run and modified your React Native App. :partying_face:

Now what?

  • If you want to add this new React Native code to an existing application, check out the Integration guide.
  • If you're curious to learn more about React Native, check out the docs.

Troubleshooting

If you're having issues getting the above steps to work, see the Troubleshooting page.

Learn More

To learn more about React Native, take a look at the following resources: