CLI tool for scaffolding Easy App Kit applications
npm install @easyappkit/cliThe fastest way to build production-ready Expo apps with Firebase integration.
Easy App Kit CLI is a command-line tool that scaffolds fully-configured Expo applications with Firebase backend in seconds. Skip the tedious setup and jump straight into building your app.
The CLI creates a complete Expo app with:
- ✅ Expo SDK 50 - Stable, tested configuration
- ✅ Firebase Integration - Auth, Database, and Storage ready to use
- ✅ TypeScript - Full type safety out of the box
- ✅ Project Structure - Organized folders for components, screens, services, and more
- ✅ All Dependencies - Pre-configured with compatible versions (no peer dependency conflicts!)
- ✅ Example Code - Firebase config, providers, and initial setup included
Saves Hours of Setup Time
- No manual dependency installation
- No version conflicts to debug
- No boilerplate code to write
Production-Ready Foundation
- Battle-tested package versions (Expo 50, React 18.2, Firebase 10.7)
- Clean architecture with separated concerns
- TypeScript configuration optimized for React Native
Zero Configuration Headaches
- All peer dependencies resolved automatically
- Firebase providers pre-wired
- ESLint and TypeScript ready to go
Perfect for developers who want to build apps, not fight with configuration files.
\\\bash\
npm install -g @easyappkit/cli
\\
\\\bash\
npx @easyappkit/cli create my-app
cd my-app
npm start
\\
\\\bash\
npx @easyappkit/cli create my-app --template full
\\
Available templates:
- \basic\ - Basic setup with minimal configuration
- \full\ - Complete setup with all Easy App Kit packages
\\\bash\
npx @easyappkit/cli add auth
npx @easyappkit/cli add database
npx @easyappkit/cli add storage
npx @easyappkit/cli add local-storage
npx @easyappkit/cli add ui
npx @easyappkit/cli add utils
\\
Creates a new Expo app with Easy App Kit packages pre-configured.
Options:
- \-t, --template \ - Template to use (default: basic)
Adds an Easy App Kit package to your existing project.
Available packages:
- \auth\ - Firebase authentication
- \database\ - Firebase database
- \storage\ - Firebase storage
- \local-storage\ - Local storage management
- \ui\ - UI components
- \utils\ - Utility functions
Example:
\\\bash\
easyappkit add auth
\\
Setup and configure external services interactively.
Firebase Setup
\\\bash\
easyappkit setup firebase
\\
Interactive wizard to configure Firebase:
- Prompts for Firebase credentials
- Creates \.env\ and \.env.example\ files
- Generates \src/config/firebase.ts\
- Updates \.gitignore\
- Optionally updates \app.json\
CI/CD Setup
\\\bash\
easyappkit setup ci --platform github
\\
Generates GitHub Actions workflows:
- Creates \.github/workflows/ci.yml\ for linting and testing
- Optionally creates \.github/workflows/eas-build.yml\ for Expo builds
Options:
- \-p, --platform - CI platform (github, gitlab) - default: github
Internationalization Setup
\\\bashSetup with default languages (English and Spanish)
easyappkit setup i18n
\src/i18n/\ structure with configuration fileen.json\, \es.json\)App.tsx\ to automatically import i18n configOptions:
- \-l, --languages - Comma-separated list of language codes (e.g., en,es,fr) - default: en,es
Examples:
\\\bash\
easyappkit setup i18n # Uses default: en, es
easyappkit setup i18n -l fr # Single language: fr
easyappkit setup i18n -l en,fr,de,ja,zh # Multiple languages
easyappkit setup i18n --languages "fr, de" # With spaces (cleaned automatically)
\\
After setup, use i18n in your components:
\\\tsx
import { useTranslation } from 'react-i18next';
function MyComponent() {
const { t, i18n } = useTranslation();
return (
);
}
\\\
Generate boilerplate code for common patterns.
Generate Screen
\\\bash\
easyappkit generate screen ProfileScreenor
easyappkit g screen ProfileScreen
\\
Creates a new screen component in \src/screens/\
Generate Component
\\\bash\
easyappkit generate component Button
\\
Creates a new component in \src/components/\ (automatically uses theme if ui-components installed)
Generate Hook
\\\bash\
easyappkit generate hook useAuth
\\
Creates a new custom hook in \src/hooks/\
Generate Firestore Collection CRUD Hooks
\\\bash\
easyappkit generate collection users --fields name:string,email:string,role:string
\\
Creates complete CRUD hooks for a Firestore collection:
- \useUsers()\ - Get all documents
- \useUser(id)\ - Get single document
- \useAddUser()\ - Add new document
- \useUpdateUser()\ - Update document
- \useDeleteUser()\ - Delete document
Options:
- \--fields - Field definitions (name:type,email:string)
When you run \create\, the CLI:
1. Creates Expo App with SDK 50 and TypeScript
2. Installs All Packages with compatible versions:
- Firebase 10.7.0
- React 18.2.0
- React Native 0.73.0
- All Easy App Kit packages
3. Sets Up Project Structure:
\\\\
my-app/
├── src/
│ ├── components/ # Reusable UI components
│ ├── screens/ # App screens
│ ├── navigation/ # Navigation setup
│ ├── services/ # Business logic
│ ├── hooks/ # Custom React hooks
│ ├── utils/ # Helper functions
│ └── config/ # Configuration files
├── App.tsx # Entry point with providers
└── .env.example # Firebase config template
\\
4. Configures Firebase with environment variables
5. Adds Providers - ThemeProvider and AuthProvider pre-wired
6. Sets Up ESLint with Easy App Kit config
This CLI creates apps with:
- Expo SDK: 50.x
- React: 18.2.0
- React Native: 0.73.0
- Firebase: 10.7.x
- TypeScript: 5.3+
- Node.js: 18+ required
All versions are tested and guaranteed to work together without conflicts.
1. Add Firebase Credentials
\\\bash\
cp .env.example .env
# Add your Firebase config to .env
\\
2. Start Development
\\\bash\
npm start
\\
3. Start Building!
- Use \@easyappkit/firebase-auth\ for authentication
- Use \@easyappkit/firebase-database\ for Firestore/Realtime DB
- Use \@easyappkit/firebase-storage\ for file uploads
- Use \@easyappkit/ui-components\ for pre-built UI
- Use \@easyappkit/local-storage\ for local data
Check out the Easy App Kit documentation for detailed guides and examples.
MIT