A comprehensive Mobile Legends companion platform that combines real-time hero analytics with curated lore content. Built to help players make data-driven decisions and explore the rich storytelling universe of Mobile Legends: Bang Bang.
Live: loreofdawn.com
- Live Meta Statistics - Real-time win rates, pick rates, and ban rates by rank
- Hero Matchups - Data-driven counter picks and synergies
- Performance Tracking - Historical trends and quadrant visualizations
- Advanced Filtering - Search by role, lane, difficulty, and performance metrics
- Complete Hero Stories - All hero backstories in an organized, readable format
- Smart Tagging - AI-powered metadata for moods, themes, and character relationships
- Featured Content - Hero of the day and curated story recommendations
- Search & Discovery - Find stories by mood, theme, or character connections
- Natural Language Queries - Ask questions about heroes, meta, and matchups
- Data-Backed Answers - Powered by live database statistics
- Credit System - Stripe-integrated monetization with account tiers
- Next.js 15 with React 19 and TypeScript
- TailwindCSS v4 for styling
- shadcn/ui component library
- Clerk for authentication
- Cloudflare Workers - Edge API with global caching
- Hono - Lightweight, high-performance server framework
- Drizzle ORM with PostgreSQL (Supabase)
- Cloudflare Hyperdrive - Connection pooling and query acceleration
- Cloudflare KV - Edge caching layer
- Durable Objects - Rate limiting
- Automated Cron Jobs - Regular data synchronization
- API Integration - Mobile Legends Wiki and game data APIs
- Content Processing - AI-powered metadata extraction and tagging
- Stripe - Subscription management with webhooks
loreofdawn/
├── apps/
│ ├── web/ # Next.js frontend
│ ├── worker/ # Cloudflare Workers edge API
│ ├── server/ # Sync server for data pipeline
│ └── crons/ # Scheduled tasks for data updates
├── packages/
│ ├── database/ # Drizzle schema and types
│ └── utils/ # Shared utilities
- Bun runtime
- PostgreSQL database (or Supabase account)
- Cloudflare account (for Workers deployment)
# Install dependencies
bun install
# Set up environment variables
cp apps/web/.env.example apps/web/.env
cp apps/worker/.dev.vars.example apps/worker/.dev.vars
# Push database schema
cd packages/database
bun db:push# Run all apps in development mode
bun dev
# Or run individual apps
bun dev:web # Frontend (http://localhost:1201)
bun dev:worker # Worker API (http://localhost:8788)
bun dev:server # Sync server (http://localhost:3000)# Generate migrations
bun db:generate
# Apply migrations
bun db:push
# Open Drizzle Studio
bun db:studioNEXT_PUBLIC_SERVER_URL- Worker API endpointNEXT_PUBLIC_CLERK_PUBLISHABLE_KEY- Clerk public keyCLERK_SECRET_KEY- Clerk secret key
OPENAI_API_KEY- OpenAI API key for AI featuresCLERK_SECRET_KEY- Clerk authenticationSTRIPE_SECRET_KEY- Stripe paymentsCLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_HYPERDRIVE- Local DB connection
cd apps/worker
wrangler deploy