Streamers are entering a new Twitch.tv era all thanks to WordPress. The ability to create a site quickly and install an endless number of free plugins allows a popular streamer to create a site for their community. The availability of over 5000 free plugins has always been one of the best things about WordPress but I’m about to tell you how it can also cause the death of a site and potentially ruin a Twitch channel.

Consider this…

How do you keep a database clean when multiple different plugins want to store their own version of the exact same data i.e. each plugin might store a Twitch User ID in an option record only that plugin uses and it’s possible that 2-3 plugins will each store a users ID!

If the Twitch API is taxed by the demand your site is putting on it, how will you establish which plugin is the cause and deal with the issue further by establishing which service/call within the plugin is at fault?

If two plugins require the exact same data from the Twitch API and they both make calls on their own to fetch it. Do you care or would you prefer a more professional approach that considers high traffic volumes?

If you want to integrate a membership plugin with Twitch subscriptions, will you install another plugin by a random developer? A plugin that makes calls to the Twitch API to get subscription data without considering the possibility that your other Twitch plugins might have already queried that data and potentially cached it for future use.

Would you rather build your Twitch based website on a single system? A system still built using multiple plugins thanks to an extensions system, but each plugin fully integrated to offer more by default. That is what the TwitchPress project offers and it includes more guarantees that success will not cause the downfall of your service. TwitchPress has been designed to adapt and grow, to suit your channel communities or stream teams demanding needs.

Too Many API Cooks

Installing many WP plugins can be a great experience. The fact that each plugin is created by a different developer isn’t normally a problem – if each developer knows what they are doing. But there is an exception and it has nothing to do with coding styles and everything to do with engineering decisions.

Each plugin author will take a slightly different approach which is normal and part of the beauty of coding. That beauty becomes a potentially horrendous mess when each approach creates duplicate data in a database or makes more calls to the Twitch API than are needed. Two plugins might require the same data to do different things. Each plugin will make a request to Kraken (the Twitch API) and this could happen many times per minute depending on the purpose of a plugin. This is a major issue for popular websites because API’s have limits and what started as a few calls a minute on a new WP site might quickly turn into a few calls per second during peak times. Especially if we install a few different Twitch plugins that each require interaction with Twitch.tv services.

Especially if we install a few different Twitch plugins that each require interaction with Twitch.tv services. The result is having too many API cooks in the kitchen.

I got here first!

There aren’t many WP plugins that connect to the Twitch API using their own set of application credentials and those that do have no plans to expand from what I can tell.

But to my surprise, I’ve already found two separate developers this year who said they plan to create a Twitch plugin that uses the API and will require application credentials to be entered. They approached me when they found my own Twitch plugin, “TwitchPress” and we’re interested in my approach. I urged them to consider creating extensions for TwitchPress instead and helping me to establish my plugin as the number-one solution for launching a Twitch based website.

I only hope developers are responsible enough to explain the pros and cons to using their plugins. Especially if they do not offer an extension system for an expanding community. We don’t want streamers investing a lot of time and money into a new website that makes it difficult to grow. Instead, they can choose a solution that is ready to expand when they are ready. That solution is TwitchPress.

No traffic management!

There needs to be a core plugin or theme (usually a plugin) to create a sustainable system that a service can rely on. In our case, we want to create a Twitch.tv system and offer a suite of Twitch tools. It has to be professional and cater for an unlimited number of users, we can’t predict how popular the next big streamer is going to be.

We’ll want to add new services to our suite regularly i.e. games, raffles, new commands and shortcodes for displaying Twitch.tv content. We have no idea how many times we’ll need to call Kraken when providing these services. It’s not good enough to stumble into a situation where we’re hitting traffic or call limits without knowing what features are generating traffic or potentially excessive calls to the API.

So we need traffic management that gives us a picture of where users are going, what features they are using and how much demand is being put on third-party services like Twitch.tv.

Such an advanced traffic management solution does not exist in TwitchPress but it will. It will never exist within a group of random plugins and so building a gaming site using plugins from various developers will instantly rule out all of the control I plan to offer in my plugin.

Transparency for Users

I’m a fan of transparency in any development but it’s unlikely we’ll ever see a list of “My Installed Plugins” on any WordPress site. TwitchPress offers a recognized brand that we can use to create confidence in our visitors by displaying the brand clearly on our WP site i.e “Powered By TwitchPress”. The TwitchPress core plugin is free and so we could say the brand is also free.

TwitchPress is a project offered by me to two communities, the WordPress community, and the Twitch community. We can build the brand together, own it together, and each of our gaming websites will benefit from that brand.

Summary

This information is based on the idea that your WP site is being developed for an ever growing Twitch channel. That means the site is expected to provide a public service for potentially thousands of viewers. If your site is not expected to be visited by high volumes of traffic and you do not plan to offer a suite of Twitch tools in future. Then any plugins will do and I encourage you to try many. Just know that it is my goal to meet everyone’s needs so contact me with your requirements.

I’ve just added a new view to TwitchPress for tools. The design involves the use of a WordPress table, with information about each tool and a button (sometimes two). The idea is simple, quick, easy and accessible actions that do something specific.

Ideas Taking from Multitool

The approach of offering tools in a table was copied from the Multitool plugin (another one of my projects) which offers Quick Tools, Configuration Tools, and Advanced Tools. I’ve taken the Quick Tools view and will offer advanced tools also. Advanced tools take users through a step-by-step process

Advanced tools take users through a step-by-step process in a way that allows users to focus on each form. Each step in the process is hidden until required, so there is no clutter on the interface confusing users. This is not ready, but it will come if TwitchPress is popular enough.

Extendable by Extensions

One of the great things about the use of a table to present many actions is the extendability. It is possible for any number of extensions to add any number of tools, without causing clutter on the interface or even a UI that visually grows. Instead, users will see the same familiar table, even when their Twitch services expand. Users simply need to perform a search for the tool they need.

This is yet another element of the TwitchPress plugin that will allow developers to create a seamless experience between the services and tools added to their own custom Twitch.tv site.

We can easily add tool categories and I’ll eventually add the ability to favorite tools so that they appear first in the table. That is a feature planned for Multitool and will be copied over to TwitchPress.

Today I added a new custom post type to the TwitchPress plugin for Channels. We can enter new channels manually and if we install TwitchPress Login Extension a channel can be added automatically. As I said, it was only added today so this is all WIP.

The primary purpose of the core plugin is sharing posts to Twitch channel feeds and importing them. The second purpose is to act as the foundation, the core, to a much larger and endlessly expanding Twitch suite. The new custom post type will offer a multi-purpose solution for profiling channels.

Channel Settings Using Post-Meta

Using post meta we can add custom settings on a per channel basis. This could be settings related to how TwitchPress interacts with the channel through Kraken (Twitch API) or how our theme displays the channel should we list them publicly. The extension will easily add and use post meta as settings to do whatever an extension needs to do.

Channel Sorting Using Taxonomies

I know Twitch.tv does a good job of adding meaning to a channel and the host can change the game or title based on what they are doing at any time. We can go further and add every game played on a channel, to the channel post. We could use this to add a channel to many categories i.e. game genres, games, events and creative. We could go even further and create a taxonomy to help us understand a channels style i.e. competitions, giveaways and possibly even a popularity score. These are all just ideas but we could create TwitchPress extensions that offer such features, easily.

Display Channels Using Theme Templates

Lastly, we can obviously display channel posts for the public to see. This is optional (pending the actual settings) and by default, they are hidden. In theory, we could create directories of Twitch channels and I can think of a few good reasons to do this. One of the more obvious is to display a teams channels. You could also offer subscribers the ability to add their own channel to your collection, essentially giving them a public page on your website. Maybe you want to create a massive directory of thousands of channels.

All you need to do is add a new file to your theme which displays the custom post type. Again, let me remind you that these are ideas if you like them you need to ask for them and support the project. The beauty is that your template for displaying channels can be as simple or as advanced as you like. You can embed the channel, embed the channel’s chat and a lot more. The question is, can you come up with an approach that suits your audience, your community and attracts Twitch.tv users to use your site?

Ideas Need Support

Those are the easy ideas, I have plenty bigger ones, some potential money makers and I do share my big ideas with people who share with me.

I look after four children 24 hours a day, yet here I am producing something for the WordPress and Twitch community without any pay. Can you imagine the juggling that requires? So I’m not afraid to ask for your support, in every-way you can provide it, to make this project a success.

Support the TwitchPress project now, simply by sharing this post with other streamers.

I’ve released a login and registration extension on GitHub. This is a free extension and has been submitted to WordPress.org for review. If accepted, we will be able to install it via the TwitchPress Setup Wizard. All free extensions will be available in the wizard, for quick-install.

WordPress Login Via Twitch

Activating the plugin will add a new button to the Login page. Clicking it will take visitors to Twitch.tv to complete the oAuth2 procedure. The visitor will be returned to the login page (/wp-login.php) and the TwitchPress Login Extension will process values in the URL.

No Existing Account

If there is no existing account for the visitor, the extension will create one. So this extension allows quick registration.

Existing Account Found

If my extension finds an existing account, the visitor will be logged into that WP account.

Common Requirements

At this early stage, the TwitchPress Login Extension is built for the most common requirements. How the plugin handles various scenarios, is changeable with further work and settings will be created to give administrators more option.

What’s next?

There is no button on the Registration page, so that will come soon. We also need a range of options for administrators to configure how they wish to handle visitors.

Do they want registration at all or only login?

Do they want automatic registration after the visitor clicks on the Twitch Login button or forward the visitor to the Registration form?

Do they want the visitor to register using the normal WordPress procedure and then authorize their Twitch account once on their dashboard?

Please submit comments with suggestions or requests. Remember to use GitHub if you wish to influence the project in a more direct manner.

What is an extension?

I’ll finish by clarifying what an extension is. It’s actually just another WP plugin. The difference is that it relies on the core plugin to be active, not just installed. If the TwitchPress plugin has not been activated, you cannot activate the extension, it will simply fail when attempted. This reliance makes TwitchPress Login Extension an extension to the main plugin, no other.