An AI-powered web application that provides gameplay tips, skill builds, and item recommendations for Dota 2 players based on their team composition and matchup.
- Select your hero, role, 4 allies, and 5 opponents from a filterable list with abbreviation support (e.g., "am" → "Anti-Mage").
- Current patch data - Hero abilities and item stats pulled from
dotaconstants(updated with each Dota 2 patch). - Lane matchup analysis - Enemy abilities context for your specific lane opponents.
- Teammate synergies - Combo suggestions with your allies.
- Structured advice covering laning, mid game, late game, and item progression.
- Freemium model - 3 free queries/day, unlimited with Pro ($3/month via Stripe).
- Responsive dark theme inspired by Dota 2 aesthetics.
- The frontend captures hero selections and roles.
- Data is sent to a Node.js backend API running as a serverless function on Vercel.
- The backend validates heroes and determines lane matchups based on roles.
- Current hero abilities and item data are loaded from
dotaconstants(Dota 2 game data package). - A structured prompt with ability stats, item references, and matchup context is sent to Groq API (GPT-OSS 120B).
- The AI response is rendered as formatted HTML with tables, lists, and styled sections.
-
Clone the repository:
git clone https://github.com/samikhanjid/dota2-helper.git cd dota2-helper -
Install dependencies:
npm install -
Create Environment File: Create a file named
.envin the project root. Add your Groq API Key (obtainable from Groq Console) to this file:
GROQ\_API\_KEY=YOUR\_API\_KEY\_HERE
-
Run the development server:
npm run devThis will typically start the server on
http://localhost:3002.
-
Frontend: Vanilla JavaScript, HTML, CSS
-
Backend: Node.js + Express (serverless on Vercel)
-
AI: Groq API (GPT-OSS 120B)
-
Game Data: dotaconstants - parsed Dota 2 game files
-
Payments: Stripe (subscriptions + webhooks)
-
Rate Limiting: Upstash Redis
Suggestions and feedback are welcome! open an issue/pull request on GitHub.