Photoworks — AI Photo Magic
Imagine Beyond Photos
Turn your photos into stunning AI creations. Generate portraits, anime art, interiors, product designs & more with just one tap.
PhotoWorks is a beautifully designed React Native mobile app (iOS-first) that lets users explore, create, and share AI-powered art and photo transformations. Android builds are fully supported via Expo.
- Browse a curated feed of high-quality AI generations across multiple categories
- Use reference photos + text prompts to generate new images (image-to-image & text-to-image)
- Access a growing library of AI models (powered by OpenAI and fal.ai via backend)
- Unlock advanced models and features with Pro subscriptions (RevenueCat)
- Download, share, and preview creations with smooth native experiences
The app features a dark, immersive UI with custom Poppins typography, buttery animations (Reanimated + Lottie), haptics, and polished interactions.
- Stunning Onboarding — Swipe through inspirational art slides with progress-driven animations and Lottie on the final screen. Requests App Store review on completion.
- Explore Feed — Dynamic carousels of AI art. Pull-to-refresh, tap any artwork to use it as inspiration.
- Category Browsing — Masonry layouts for deeper dives into specific styles and themes.
- Dream Studio (Create) —
- Text prompts
- Optional reference image (camera or library)
- Model selector (text-to-image / image-to-image variants)
- Aspect ratio controls
- Real-time generation with polling for async jobs
- Pro Monetization — In-app subscriptions (weekly/monthly) via RevenueCat. Pro users unlock premium models.
- Detail & Actions — Full-screen preview, pinch-to-zoom modal, one-tap download to gallery, native sharing.
- Video Support — Preview and handling for video generations.
- Settings — Manage premium, restore purchases, support email (dynamic), rate app, legal links.
- Polished UX — Custom toasts, haptics, bottom sheets, skeleton loading, image transitions, safe area handling.
See the full experience on the App Store.
| Category | Technology |
|---|---|
| Framework | React Native 0.79 + Expo SDK 53 (New Architecture) |
| Language | TypeScript |
| Navigation | React Navigation (Native Stack) |
| Animations | react-native-reanimated, Lottie |
| UI / Gestures | @gorhom/bottom-sheet, react-native-gesture-handler, FlashList (available) |
| Monetization | react-native-purchases + react-native-purchases-ui (RevenueCat) |
| Media | expo-image, expo-image-picker, expo-media-library, expo-video, expo-sharing |
| Other Expo | expo-haptics, expo-notifications, expo-store-review, expo-secure-store, expo-clipboard, expo-web-browser |
| Networking | axios (custom instance) |
| Storage | @react-native-async-storage/async-storage + expo-secure-store |
| Fonts | Poppins (Regular, Medium, SemiBold, Bold) |
Backend orchestration, user content, and model catalog are provided by a private API (summerofapps.com).
- Node.js (LTS recommended)
- npm (or yarn/pnpm)
- For iOS development: Xcode + CocoaPods
- For Android development: Android Studio + SDK
- Expo Go (for quick JS-only testing) or a development build
git clone https://github.com/iamdipankarj/photoworks-mobile.git
cd photoworks-mobile
npm installCopy the example and populate your keys:
cp .env.example .envRequired keys (see .env.example):
EXPO_PUBLIC_REVENUECAT_IOS_API_KEYEXPO_PUBLIC_REVENUECAT_ANDROID_API_KEYEXPO_PUBLIC_INTERNAL_API_KEY(backend auth)
Note: Full functionality (feed, AI generation, subscriptions) requires the corresponding backend services and valid API keys. Without them the app will have limited or mocked behavior in some flows.
Recommended: Development Client
# Start the bundler
npm start
# or
npx expo start --dev-clientBuild a development client (first time or after native changes):
# iOS
npx expo run:ios --configuration Debug
# Android
npx expo run:android --configuration DebugExpo Go (limited)
Some native modules (RevenueCat, certain image/video features) require a development client. Basic JS screens may still load.
npm run startnpm run tsnpx expo prebuild --cleanThis project uses EAS Build.
See eas.json for profiles:
developmentpreviewproduction(auto-incrementing)
# Production iOS
npx eas build --platform ios --profile production
# Production Android
npx eas build --platform android --profile productionSubmit to App Store (configured in eas.json):
npx eas submit --platform ios --profile productionsrc/
├── api/ # Backend calls (AI gen, feed, models, revenuecat sync)
├── assets/ # Images, Lottie animations, custom fonts
├── components/ # Reusable UI (Header, Button, Carousel, ModelSelector, etc.)
├── constants/ # Theme (colors, fonts, radii)
├── context/ # RevenueCatProvider
├── helpers/ # Caption, sharing, error, revenuecat utils
├── hooks/ # useFeed, useCategories, useHaptics, useOnboardingContent, etc.
├── lib/ # axios client, secure storage, types
└── screens/ # Onboarding, Explore, Dream, DetailView, Settings, Previews, ...
Entry: App.tsx (stack navigator + providers)
- Weekly Plan: $5.99
- Monthly Plan: $24.99
Subscriptions managed securely via RevenueCat. Restore purchases supported.
This project is currently private / all rights reserved. Contact the author for licensing inquiries.
Built with care by Dipankar Jana.



