Hairfluencer is an AI-powered mobile application that enables users to instantly visualize new haircuts and colors using advanced AI transformation technology. Built as a hackathon MVP using Turborepo, Expo, and FAL.ai. BA67
- AI Hairstyle Transformation: Upload a selfie and try on different hairstyles using FAL.ai's nano-banana/edit model
- Dual Language Support: Full support for English and Spanish interfaces
- Authentication: Secure login with email/password or Google OAuth
- Favorites System: Save and manage your favorite hairstyle transformations
- Admin Panel: Web-based management interface for hairstyle gallery and analytics
This is a Turborepo monorepo containing:
apps/mobile
: Expo React Native app (primary client) for iOS/Androidapps/api
: Bun + Hono backend API with Better Auth and Drizzle ORMapps/web
: Next.js 15 admin panel with Turbopack
packages/eslint-config
: Shared ESLint configurationspackages/typescript-config
: Shared TypeScript configurations
- Node.js 18+
- Bun 1.2.22+
- PostgreSQL database
- FAL.ai API key
- Google OAuth credentials (optional)
# Clone the repository
git clone https://github.com/yourusername/hairfluencer.git
cd hairfluencer
# Install dependencies
bun install
Create .env
files in the respective app directories:
apps/api/.env:
DATABASE_URL=postgres://user:password@localhost:5432/hairfluencer
DRIZZLE_DATABASE_URL=postgres://user:password@localhost:5432/hairfluencer
BETTER_AUTH_SECRET=your-32-character-minimum-secret-key
BETTER_AUTH_URL=http://localhost:3001
FRONTEND_URL=http://localhost:8081
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
FAL_API_KEY=your-fal-api-key
FAL_MODEL_ID=nano-banana/edit
apps/mobile/.env:
EXPO_PUBLIC_API_URL=http://localhost:3001
EXPO_PUBLIC_GOOGLE_CLIENT_ID=your-google-client-id
EXPO_PUBLIC_ADAPTY_PUBLIC_KEY=your-adapty-public-key
apps/web/.env:
NEXT_PUBLIC_API_URL=http://localhost:3001
# Navigate to API directory
cd apps/api
# Generate database migrations
bun run db:generate
# Apply migrations
bun run db:migrate
# (Optional) Open Drizzle Studio for database management
bun run db:studio
bun dev
Mobile App (Expo):
cd apps/mobile
bunx expo install [package] # Install packages with Expo compatibility
bun start # Start Expo development server
bun ios # Run on iOS simulator
bun android # Run on Android emulator
bun web # Run in web browser
API Server:
cd apps/api
bun dev # Runs on http://localhost:3001
Admin Panel:
cd apps/web
bun dev # Runs on http://localhost:3000
# Build all apps
bun build
# Build specific app
bun build --filter=mobile
bun build --filter=api
bun build --filter=web
# Run linting for all apps
bun lint
# Format all TypeScript and Markdown files
bun format
# Type check all apps
bun check-types
- Mobile: Expo SDK 53, React Native 0.79, React Navigation, Expo Router
- Backend: Bun, Hono, Better Auth, Drizzle ORM, PostgreSQL
- Admin: Next.js 15, React 19, Tailwind CSS v4, Turbopack
- AI: FAL.ai platform (nano-banana/edit model)
- Payments: Adapty SDK for in-app purchases
- Monorepo: Turborepo with Bun workspaces
- Launch working MVP within 14 days
- Achieve 200+ user sign-ups in the first week
- Complete 100+ AI hairstyle try-ons
- Maintain <8 second transformation time (90th percentile)
- Collect 50+ user feedback responses
Please read AGENTS.md for development guidelines and CLAUDE.md for AI assistant integration instructions.
This project is proprietary and confidential.