AI-powered concert memory app that automatically organizes your concert history through intelligent photo analysis
Encore transforms concert photos into an organized timeline of your live music memories. Upload a photo from a show, and our AI instantly identifies the artist, venue, and date—no manual entry required. Available on web, iOS, and Android.
- AI Photo Analysis - Claude-powered recognition of artists, venues, and dates (98% accuracy)
- Automatic Timeline - Build your concert history effortlessly
- Cross-Platform - Seamless sync between web and mobile apps
- Setlist Integration - View setlists from Setlist.fm
- Statistics Dashboard - Track artists, venues, and concert trends
- Media Gallery - Unlimited photo and video storage (premium)
- Framework: Next.js 14 (App Router)
- UI: React 18, TypeScript, Tailwind CSS
- State: TanStack Query (React Query)
- Auth: AWS Cognito + Amplify
- Framework: React Native + Expo SDK 51
- Navigation: Expo Router (file-based)
- State: TanStack Query + Zustand
- Auth: AWS Cognito
- API: Express.js + TypeScript
- Database: PostgreSQL + Prisma ORM
- Storage: AWS S3
- AI: Anthropic Claude API
- Auth: AWS Cognito + JWT
encore/
├── apps/
│ ├── web/ # Next.js web application
│ ├── mobile/ # React Native mobile app (Expo)
│ └── api/ # Express.js backend API
├── packages/
│ └── shared/ # Shared TypeScript types & utilities
└── db/ # Database migrations & schema
- Node.js 18+
- npm 10+
- AWS Account (Cognito, S3)
- Claude API key
# Clone the repository
git clone https://github.com/yourusername/encore.git
cd encore
# Install dependencies
npm installWeb App (apps/web/.env.local):
NEXT_PUBLIC_API_URL=http://localhost:3001
NEXT_PUBLIC_COGNITO_REGION=us-east-1
NEXT_PUBLIC_COGNITO_USER_POOL_ID=your-user-pool-id
NEXT_PUBLIC_COGNITO_CLIENT_ID=your-client-idMobile App (apps/mobile/.env):
EXPO_PUBLIC_API_URL=http://localhost:3001/api
EXPO_PUBLIC_COGNITO_USER_POOL_ID=your-user-pool-id
EXPO_PUBLIC_COGNITO_CLIENT_ID=your-client-id
EXPO_PUBLIC_COGNITO_REGION=us-east-1API (apps/api/.env):
DATABASE_URL=postgresql://user:password@localhost:5432/encore
JWT_SECRET=your-jwt-secret
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
S3_BUCKET_NAME=encore-media
CLAUDE_API_KEY=your-claude-api-keyRun all apps concurrently:
npm run devOr run individually:
# Web app (http://localhost:3000)
cd apps/web
npm run dev
# Mobile app
cd apps/mobile
npm start
# API (http://localhost:3001)
cd apps/api
npm run dev# Build all apps
npm run build
# Build specific app
cd apps/web && npm run build
cd apps/mobile && npm run build
cd apps/api && npm run build- Web: Vercel (recommended for Next.js)
- API: Railway or AWS ECS Fargate
- Mobile: EAS Build + App Store/Google Play
- Database: Railway PostgreSQL or AWS RDS
- Storage: AWS S3 + CloudFront CDN
For detailed documentation, see CLAUDE.md - comprehensive guide for developers and AI coding agents.
Built with ❤️ for music lovers