@easyappkit/cli
v1.0.3
Published
CLI tool for scaffolding Easy App Kit applications
Maintainers
Readme
@easyappkit/cli
The 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.
What Does It Do?
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
Why Use This CLI?
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.
Installation
```bash npm install -g @easyappkit/cli ```
Usage
Create a new app
```bash npx @easyappkit/cli create my-app cd my-app npm start ```
Create with template
```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
Add packages to existing app
```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 ```
Commands
`create `
Creates a new Expo app with Easy App Kit packages pre-configured.
Options:
- `-t, --template ` - Template to use (default: basic)
`add `
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 `
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 ```bash
Setup with default languages (English and Spanish)
easyappkit setup i18n
Setup with custom languages
easyappkit setup i18n --languages fr,de,ja
Setup with spaces (also works)
easyappkit setup i18n --languages "en, es, fr, de" ``` Sets up react-i18next with multiple languages:
- Installs i18n dependencies (react-i18next, i18next, expo-localization)
- Creates `src/i18n/` structure with configuration file
- Generates translation files for each language (e.g., `en.json`, `es.json`)
- Updates `App.tsx` to automatically import i18n config
- Configures device language detection with fallback
Options:
- `-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 ( {t('common.welcome')} <Button onPress={() => i18n.changeLanguage('es')}> Español ); } ```
`generate ` (alias: `g`)
Generate boilerplate code for common patterns.
Generate Screen ```bash easyappkit generate screen ProfileScreen
or
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)
What Gets Set Up Automatically
When you run `create`, the CLI:
- Creates Expo App with SDK 50 and TypeScript
- Installs All Packages with compatible versions:
- Firebase 10.7.0
- React 18.2.0
- React Native 0.73.0
- All Easy App Kit packages
- 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 ```
- Configures Firebase with environment variables
- Adds Providers - ThemeProvider and AuthProvider pre-wired
- Sets Up ESLint with Easy App Kit config
Compatibility
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.
Next Steps After Creating Your App
Add Firebase Credentials ```bash cp .env.example .env
Add your Firebase config to .env
```
Start Development ```bash npm start ```
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.
License
MIT
