Professions.gg
A Classic WoW tool that calculates leveling success rates and crafting costs - and the first personal project I actually shipped.
- Date
- Summer 2021
- Type
- Personal Project
- Stack
- Next.js (Pages Router)
- TypeScript
- PostgreSQL
- Tailwind
- Prisma
- Vercel
- Apify
Context and Objective
There was no good way for Classic WoW players to figure out the success rate of leveling up their professions, or estimate crafting costs. I wanted to combine game data from Wowhead with live auction house prices into one useful tool.
Honestly, I also just wanted to finish something for once. My projects kept dying halfway through when I got distracted by work or shiny new tech. I picked WoW because I knew I'd stay interested, the community is supportive, and most importantly, the game had a release date. Having a real deadline kept me honest.
- Next.js (Pages Router)
- TypeScript
- PostgreSQL
- Tailwind
- Prisma
- Vercel
- Apify
Architecture and Delivery
Next.js gave me SSR for SEO (important for a fan site) plus serverless API routes in one codebase. Tailwind CSS let me move fast on the UI without fighting stylesheets.
I kept the backend simple with Prisma ORM and PostgreSQL - type-safe, works well with Next, and I didn't need anything fancier. Vercel handled deployment with edge caching that would prove essential later.
Challenges and Trade-offs
Scraping recipe data from Wowhead was painful. Puppeteer kept failing on thousands of pages - cookie popups, race conditions, slow requests. Apify SDK eventually saved me with proper request queuing and automatic retries.
Then I launched on Reddit and got 20,000 users in one day. My database was in a different region to my server (oops), so I scrambled to fix caching. Also discovered half my traffic was mobile, so I quickly built a better responsive layout. Fun times.