The Tools Behind A WordPress Theme Shop
When I started to build the Array site, I knew from the get-go that I was going to start from scratch. The only way to achieve the simplicity I wanted on the front-end, was to match it on the back-end. So I started with a blank style.scss file and it grew from there.
Keeping with that mindset, I knew that I wanted the inner workings of the site to be very lean and easily maintainable yet dangerously powerful and scalable. Having experimented with so many different WordPress products, tools and coding practices over the years, I was excited to pool all of these resources together and laser-beam-focus them onto Array. I knew which tools and plugins didn’t work, and I knew which ones worked incredibly well. This is a level you can only achieve by installing an astounding amount of poorly-crafted plugins. I’m still waiting on some sort of acknowledgement of this achievement, by the way.
So today, I thought I’d share with you some of the tools I used to build this new WordPress theme shop, Array.
Obviously! Array is built exclusively upon WordPress, currently running the latest release, 3.8.2. I haven’t added any extra arms or legs, it’s just straight up WordPress. All of the functionality comes in the form of a few must-have plugins.
Easy Digital Downloads
Digital download management could not be simpler with Easy Digital Downloads WordPress plugin. Array uses EDD to handle all of the shopping cart functionality, download management, PayPal and credit card payment gateways, licensing and serving theme updates straight to our users’ dashboards. EDD is incredibly well maintained by Pippin Williamson and his growing list of active contributors.
The plugin is updated regularly, has incredible support and has gained widespread support in the WordPress community. This is important. It ensures you can invest in it as a solution and not have to worry about whether it’s going to be maintained in a year or two. The plugin itself is free, but you can purchase a wide range of add-ons for it to make it even more powerful. I use several of these handy add-ons here on the site.
Software Licensing add-on handles the creation and management of licenses for users when they purchase a theme. The user can then use that license key to get theme updates in their WordPress dashboard.
Stripe Payment Gateway
Stripe Payment Gateway adds the option to process credit card payments through Stripe, which is another invaluable service in itself. Stripe securely handles credit card transactions and payment information for each purchase.
Manual Purchases gives me the option to manually create purchases and add files to users accounts. This is very handy in scenarios where I need to add a theme to a users account or modify their purchase.
With the new Array site came a new Array support area. The forum format has always worked well for my needs, so I figured I would keep with that. bbPress adds discussion forum functionality to your existing WordPress website. The Array site and support area exist in the same WordPress install. It feels great finally having everything under one roof. It’s so quick to jump around the different parts of the site.
Similarly to EDD, bbPress has a lot of plugins and add-ons you can implement to extend the capabilities of the forum. Documentation for bbPress can be scarce at times, but it generally has pretty good community support and is still under active development.
EDD bbPress Support Dashboard
EDD bbPress Support Dashboard adds moderator functionality to bbPress. It adds widgets that allow you to see pending, unresolved and assigned discussions. It basically turns bbPress into a support ticket system.
Note that this isn’t a heavily supported or necessarily maintained plugin. This is just something the EDD team uses to handle support on their site, which also happens to be powered by EDD and bbPress. It’s a DIY plugin, which is why you have to get it on Github. I’ve extended some of the functionality into various modules and widgets.
Private Replies allows users to set replies as private so that only the original poster and moderators can see it. This lets us share potentially sensitive information with users during a support discussion.
WP Migrate DB Pro
If you’ve developed for WordPress, you’ve most likely had to move a site from local to live or from one server to another. And that was probably not fun for you. WP Migrate DB Pro alleviates that whole situation. This plugin lets you push and pull content from one site to another, syncing your WordPress posts, pages, comments and content between multiple WordPress installs. It’s pretty magical.
Array uses it to keep the staging and production sites in sync. It also has a must-have add-on that enables pushing and pulling of your media files. You can move an entire site’s content in seconds, folks.
WP101 is a service run by Shawn Hesketh, who curates a collection of WordPress tutorial and instructional videos. They range from WordPress basics to some more complex topics like translating your theme. The video quality, sound quality and video production is superb. The video collection is kept up to date with the latest version of WordPress and its latest features.
I decided to add Shawn’s collection of videos to Array to complement the knowledge base articles and theme help files. It’s a small addition that creates great value for our users. While users are setting up their theme, they can hop into any of the 20+ tutorial videos and learn about a particular feature, without having to go hunting down an answer on Google.
Advanced Custom Fields
Advanced Custom Fields is a plugin that allows you to add a multitude of pre-made custom fields to your posts and pages. You can add text boxes, checkboxes, WYSIWYG editors, galleries and all kinds of other helpful custom fields. The plugin has a really intuitive UI, is well documented and made with developers in mind.
We use ACF on Array to manage theme pages, allowing us to easily add each theme’s various features and specs to its download page. This helps us keep all of the theme’s info within the WordPress admin, and makes editing and updating the theme page content a breeze.
User Switching is great for taking a look at what our users are seeing when they sign in to their Array dashboard. Using this plugin, I can quickly hop between user accounts and diagnose any issues they might be having in their dashboard or support area. This really speeds up the support process, cutting out any guesswork as to what the user might be experiencing in their account.
VaultPress is a subscription-based protection, security and backup service for WordPress powered websites. VaultPress runs in the background, seamlessly backing up the entire Array site, from theme pages, to blog posts, to support forum topics. Secure, off-site backups are invaluable when running an online business. The cost of $15/mo is well worth the value should something catastrophic happen to your website.
If you’re serious about SEO (and you probably should be), then you’ll want to install WordPress SEO by Yoast. Similarly to W3 Total Cache, there are many plugins out there that offer search engine optimization for WordPress. I’ve chosen WordPress SEO simply because SEO is what exactly Yoast does. Their entire business is dedicated to website optimization and it shows in the products they make. WordPress SEO works well right out of the box, but can be extended heavily if you know what you’re doing.
Google Authenticator and Limit Login Attempts
A few small security measures can go a long way with WordPress. Two-step authentication has become more and more prevalent in the past couple years, and for good reason.
The Google Authenticator plugin adds two-step authorization to your WordPress login page, requiring you to enter a unique and temporary generated code from the mobile app. Two-step authentication will cut down the likelihood that your site will be compromised by a brute-force attack. Because the temporary Authenticator code isn’t stored anywhere but in your pocket, an attack that guesses usernames and passwords will have little effect.
We also have Limit Login Attempts installed here on Array. This plugin is another security measure that monitors multiple failed login attempts. After a certain amount of failed logins, the login attempt is logged along with the IP and the user is temporarily blocked from accessing the site.
Security is our top-priority when dealing with our users’ content. Although we don’t store payment information on Array, we wouldn’t want anything happening to user’s orders or account information. These plugins are small measures that make a big impact when it comes to protecting your WordPress admin area.
This small collection of well-made plugins and tools makes it possible for me to run a very lean and scalable online business for less than a few thousand dollars investment. A feat that probably wouldn’t be possible if I wasn’t building on WordPress, using solutions crafted by these dedicated developers.
I hope this provides some insight into the inner workings of the Array site. I’d be happy to answer any further questions you might have about the site in the comments below!