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-nova-expo-template

v2.0.2

Published

A template for creating a new React Native app using Expo and TypeScript, with a focus on performance and best practices.

Readme

🚀 Expo Template

This is a React Native template built with Expo 54. It provides a modern and responsive foundation for building mobile applications. It includes:

  • Navigation (Auth/Main stacks)
  • Theming and styling
  • API integration
  • State management
  • Localization using i18n
  • Reusable components
  • Utility functions
  • Custom hooks
  • Scripts for easing development tasks
  • Building tool (EAS)
  • An overall ready-for-integration template with an atomic design system.

📋 Table of Contents

✨ Features

  • React Native: A framework for building native apps using React.
  • Expo: A framework and platform for universal React applications.
  • TypeScript: A strongly typed programming language that builds on JavaScript.
  • React Navigation: Routing and navigation for React Native apps.
  • Redux Toolkit: A toolset for efficient Redux development.
  • RTK Query: Powerful data fetching and caching tool.
  • React Toastify: Easy-to-use toast notifications.
  • React-i18next: Internationalization for React Native.
  • Day.js: A lightweight JavaScript date library.
  • Flashlist: A performant list component for React Native.
  • React Hook Form: Performant, flexible, and extensible forms with easy-to-use validation.
  • Atomic Design System: A methodology for creating design systems.
  • Husky (optional): Git hooks made easy.
  • ESLint (optional): A tool for identifying and fixing problems in JavaScript code.
  • Sentry (optional): Error monitoring software.
  • Reusable Components: Modular and reusable components for easy customization.
  • State Management: Integrated state management using Redux or context.

🛠️ Installation

To get started with this project, follow these steps:

  1. Install the Template:

    npx create-nova-expo-template
  2. Navigate to the project directory:

    cd <project-name>
  3. Run the project:

    npm start

⚙️ Prerequisites

Ensure you have the following installed:

  • Node.js: v16.14.0 or higher (currently using v20.17.0)
  • npm: v8.5.0 or higher (currently using v10.8.2)

📚 Usage

To start the development server, run:

npm start

To build the project for production, run:

expo build

To preview the production build, run:

expo start --no-dev --minify

📸 Screenshots

Here are some screenshots of the application:

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7

🏗️ Project Structure

your-app-name/                     # Your new Expo app
├── 📄 app.json                    # Expo app configuration
├── 📄 eas.json                    # EAS Build configuration
├── 📄 expo-env.d.ts               # Expo environment types
├── 📄 package.json                # Project dependencies
├── 📄 tsconfig.json               # TypeScript configuration
│
├── 📁 @types/                     # Global TypeScript definitions
│   ├── 📄 static-files.d.ts       # Static file types
│   └── 📄 TranslationKeyEnum.ts   # Translation key enums
│
├── 📁 apis/                       # API layer
│   ├── 📄 Domain.ts               # API domain configuration
│   ├── 📄 index.ts                # API exports
│   ├── 📄 tagTypes.ts             # RTK Query tag types
│   ├── 📁 @types/                 # API type definitions
│   ├── 📁 middlewares/            # API middlewares
│   └── 📁 services/               # API service endpoints
│
├── 📁 app/                        # App routing (Expo Router)
│   ├── 📄 _layout.tsx             # Root layout
│   ├── 📄 +not-found.tsx          # 404 page
│   ├── 📄 index.tsx               # Home/Landing page
│   ├── 📁 (auth)/                 # Authentication stack
│   │   ├── 📄 _layout.tsx         # Auth layout
│   │   ├── 📁 forgotPassword/     # Password reset screens
│   │   ├── 📁 login/              # Login screens
│   │   ├── 📁 signup/             # Registration screens
│   │   └── 📁 welcome/            # Welcome/onboarding
│   └── 📁 (main)/                 # Main app stack
│       ├── 📄 _layout.tsx         # Main layout
│       ├── 📁 (tabs)/             # Tab navigation
│       ├── 📁 screen1/            # Feature screens
│       ├── 📁 screen2/
│       └── 📁 screen3/
│
├── 📁 assets/                     # Static assets
│   ├── 📁 fonts/                  # Custom fonts
│   ├── 📁 icons/                  # Icon components
│   ├── 📁 images/                 # Image assets
│   └── 📁 svgs/                   # SVG components
│
├── 📁 components/                 # UI Components (Atomic Design)
│   ├── 📁 atoms/                  # Basic building blocks
│   │   ├── 📁 Button/             # Button component
│   │   ├── 📁 Input/              # Input component
│   │   ├── 📁 Text/               # Text component
│   │   └── 📄 index.ts            # Atom exports
│   ├── 📁 molecules/              # Component combinations
│   │   ├── 📁 common/             # Shared molecules
│   │   └── 📁 scoped/             # Feature-specific molecules
│   ├── 📁 organisms/              # Complex components
│   │   ├── 📁 common/             # Shared organisms
│   │   └── 📁 scoped/             # Feature-specific organisms
│   ├── 📁 templates/              # Page templates
│   └── 📁 wrappers/               # Higher-order components
│
├── 📁 constants/                  # App constants
│   ├── 📄 Colors.ts               # Color palette
│   ├── 📄 FontFamily.ts           # Font definitions
│   ├── 📄 GlobalStyles.ts         # Global styles
│   ├── 📄 Metrics.ts              # Screen dimensions
│   └── 📄 TranslationConfig.ts    # i18n configuration
│
├── 📁 hooks/                      # Custom React hooks
│   ├── 📄 useBiometricLogin.tsx   # Biometric authentication
│   ├── 📄 useColorScheme.ts       # Theme management
│   ├── 📄 useFetchTranslation.ts  # Localization hook
│   └── 📄 useThemeColor.ts        # Color theme hook
│
├── 📁 locale/                     # Internationalization
│   ├── 📄 ar.json                 # Arabic translations
│   ├── 📄 en.json                 # English translations
│   └── 📄 index.ts                # i18n exports
│
├── 📁 redux/                      # State management
│   ├── 📄 index.ts                # Store configuration
│   ├── 📄 appReducer.ts           # App state slice
│   └── 📄 authReducer.ts          # Auth state slice
│
├── 📁 scripts/                    # Development scripts
│   ├── 📄 generate-svg.js         # SVG component generator
│   ├── 📄 removeLogs.js           # Production log removal
│   ├── 📄 sync-translations.js    # Translation sync
│   └── 📄 translate.js            # Auto-translation tool
│
├── 📁 styles/                     # Global styles
│
└── 📁 utils/                      # Utility functions
    ├── 📄 debounce.ts             # Debounce utility
    ├── 📄 handleErrors.ts         # Error handling
    ├── 📄 loginHandler.ts         # Authentication helpers
    └── 📄 showSuccessMsg.ts       # Success messaging

📂 Key Directories Explained

  • app/: Uses Expo Router for file-based routing with layout components
  • components/: Follows Atomic Design methodology (atoms → molecules → organisms → templates)
  • apis/: Centralized API layer with RTK Query for data fetching and caching
  • redux/: State management using Redux Toolkit with separate slices
  • hooks/: Custom React hooks for reusable logic
  • constants/: App-wide constants including colors, fonts, and metrics
  • locale/: Multi-language support with JSON translation files
  • utils/: Helper functions and utilities
  • scripts/: Development automation scripts

📋 Changelog

See the CHANGELOG for a history of changes to this project.

🤝 Contributing

Contributions are welcome! Please read the contributing guidelines first.

📄 License

This project is licensed under the MIT License.