Greetings! And welcome to wowstreams.tv, a site dedicated to providing streamers and viewers with a targeted and interesting way to share your stream or watch your favorite World of Warcraft Streamers.

This website was born out of the want of a website designer/developer to learn more in the world of web development while working with World of Warcraft assets including the great resources of Blizzard’s API.

I started this project all the way back in 2016 and have been working on it on-and-off since then as a side project to up-skill in modern web development frameworks.

During development there have been a couple of implementations of a similar idea, such as both raider.io and Warcraftlogs releasing some form of player-streamer integration on their respective sites. Hopefully users will still find the wowstreams.tv experience a little bit different and still useful.

What is the purpose?

I guess what I hope the purpose of this site is to allow World of Warcraft streamers and content creators to target their specific audience down to specific classes and categories and to make it easier for viewers to find their favorite kind of stream, whether it be PvE, PvP and so on…

It will also hopefully prove as a one-stop location for streamers to display and show-off their characters, both main and alts, being able to share their progress, warcraftlogs and raider.io scores.

A bit about the build

The initial build began purely as a WordPress website with custom functions in a custom theme and using things like jQuery – however I found that I wasn’t able to push it the way that I wanted and I wasn’t really learning anything.

I decided that I had to push myself and looked into some modern js frameworks, looking at Angular, React and Vue.js, eventually landing on Vue.js as my preferred framework. With it being open-source and trending up in terms of community use, I figured I can’t go wrong.

Vue.js provides a declarative and component-based programming model that helps you efficiently develop user interfaces, be it simple or complex.

This basically meant re-writing my app from the ad-hoc PHP/jQuery spaghetti code into a framework I had never used before. It was confronting but I’m so glad that this is the route I chose to take and I learnt a lot during the process.

Evan You and the core team members have done a great job with Vue.js – if you’re looking to take a step into the world of frameworks, Vue.js is a great place to start, I highly recommend it.

However, I started to hit a snag when I wanted to provide users with their own URL address dependent on their twitch.tv usernames and also I was wary of potential SEO issues with a front-end only solution. I realized that I needed something a little more.

Enter Nuxt.js

Free and open source, Nuxt.js is based on Vue.js, Node.js, Webpack and Babel.js and inspired by Next.js – a similar solution for React.

Nuxt.js was the solution I was looking for, I was able to rebuild the site (again) but I was able to use a lot of what I had learnt already as Nuxt.js is basically built on top of Vue.js. It brings everything of what Vue provides, but has exactly what I wanted in terms of SEO Friendliness and a great way of having page-routing especially for dynamic routes (twitch defined urls).

Initially I kept the account side of things in the WordPress/PHP environment, particularly with signing in via Battle.net or Twitch accounts. But I found the modern js front-end experience so much better than the slow to load PHP pages (mostly due to WordPress), I decided to migrate everything over to Nuxt.js, effectively making the site a Nuxt.js/Vue.js frontend with a Headless WordPress API backend.

What now?

Well, the site is in somewhat of a place that I’m finally happy with.

I have no doubt there are still bugs throughout – feel free to let me know about them via the contact for or through the discord server – but I think it’s in a usable state for now.

I still have plenty of ideas that I’d like to implement which I will try and do soon. But for now I’m looking to build up a user-base/community dedicated to World of Warcraft streams and content creation.