blink-stack-mobile
v1.0.1
Published
Expo SDK 54 mobile template with pluggable auth, subscriptions, notifications, and Sentry.
Maintainers
Readme
Vibing
Vibing is a production-ready mobile application built using Expo (SDK 54) and React Native. It uses a scalable, modern mobile stack featuring robust authentication, subscription management, push notifications, and analytics out-of-the-box.
Features
- Expo Router: File-based routing with support for typed routes.
- Authentication: Modular auth integration supporting
basic,clerk,supabase, andappwrite. - Subscriptions: In-app purchases and subscription flows powered by RevenueCat.
- State & Data Fetching: Utilizes TanStack Query for robust remote data fetching and caching.
- Forms & Validation: Built with React Hook Form and Zod.
- Push Notifications: Integrated with
onesignalornovu. - Error Tracking & Monitoring: Bootstrapped with Sentry.
Project Structure
The project is structured to separate routing, business logic, and UI components cleanly:
/app: Contains all Expo Router screens and route groups.(auth): Onboarding, Login, and Signup screens.(subscription): Screens related to pricing plans and restoring purchases.(app): The protected main application area, visible only to authenticated users with active subscriptions.
/src: Houses the core business logic, minimizing logic within screen components./components: Reusable UI components./hooks: Custom React hooks, including data-fetching with TanStack Query./providers: Context providers for global state (e.g., SessionProvider, SubscriptionProvider, NotificationProvider)./config: Configuration files and environmental variable parsing.
Quick Start
1. Install Dependencies
npm installCLI Usage (npm / bun)
Use the published CLI to scaffold a new project:
npx blink-stack-mobile init my-app
# or
bunx blink-stack-mobile init my-appRun the wizard in an existing project directory:
npx blink-stack-mobile configure2. Environment Configuration
Copy the sample environment file to .env.local:
cp .env.example .env.localFill out the required variables such as:
EXPO_PUBLIC_AUTH_PROVIDEREXPO_PUBLIC_NOTIFICATION_PROVIDEREXPO_PUBLIC_REVENUECAT_API_KEY_IOSEXPO_PUBLIC_REVENUECAT_API_KEY_ANDROIDEXPO_PUBLIC_SENTRY_DSN
Alternatively, run the configuration wizard:
npm run configure3. Run the App
Start the Expo development server on your preferred platform:
npm run ios # For iOS simulator
npm run android # For Android emulator
npm run web # For web previewNote: All start scripts (
start,ios,android,web) run lint checks first and will intentionally fail if ESLint reports errors or warnings to maintain code quality.
Quality Gates
Before committing, ensure your code passes the following checks:
- Linting:
npm run lint(Checks for code style and formatting issues) - Type Checking:
npm run typecheck(Ensures strict TypeScript compliance)
License
MIT
