Project Case Study

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

01 / Context

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.

Blacksmithing recipe page showing skill-up success rates at different levels.

Figure

Leveling success rates: see the exact odds of skilling up on each craft.

02 / Architecture

Architecture and Delivery

  • Next.js (Pages Router)
  • TypeScript
  • PostgreSQL
  • Tailwind
  • Prisma
  • Vercel
  • Apify

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.

03 / Trade-offs

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.

Leatherworking recipe page with estimated gold costs from live auction house prices.

Figure

Cost estimation: live auction house prices to calculate gold per skill point.