WPWeekly Episode 258 – 2016 Year in Review Part 1

In this episode of WordPress Weekly, Marcus Couch and I recap the news and headlines of the first half of 2016. Part two will be recorded on January 4th, 2017, where we’ll look back at the headlines during the second half of 2016, give our predictions for 2017, and share what we’re looking forward to in the new year.

WPWeekly Meta:

Next Episode: Wednesday, January 4th 3:00 P.M. Eastern

Subscribe To WPWeekly Via Itunes: Click here to subscribe

Subscribe To WPWeekly Via RSS: Click here to subscribe

Subscribe To WPWeekly Via Stitcher Radio: Click here to subscribe

Listen To Episode #258:

Session Stealer Script Used In OpenCart

Session Stealer Script Used In OpenCart

With so many open-source ecommerce platforms available in the market, selling online is an appealing and easy option for any store owner. In a few clicks you can set up an online storefront and sell your products.

While the process to get the site up may be simple, there are always risks that arise when asking visitors to enter sensitive data. Credit card details are very valuable in the black market and we frequently see attacks on ecommerce sites as a way to steal payment information.

Continue reading Session Stealer Script Used In OpenCart at Sucuri Blog.

Using Forge To Provision And Manage WordPress Sites

I used to claim I didn’t know anything about servers. And, while I’m not an expert, I have learned quite a bit in by time as a web developer. I use Ubuntu every day, both as my desktop computer’s OS and as the OS for the virtual machine I host my WordPress sites.

Though I’ve learned a lot, I couldn’t set up my own server — or really a Virtual Private Server (VPS) without help. However, I’ve become familiar Laravel Forge, a server provisioning and deployment tool created by the Laravel project that is easy to learn. While it is designed primarily for Laravel projects, which is what I first used it for, it works great for any PHP app, including WordPress.

In this article, I want to walk you through why and how I recently built and deployed the new CalderaForms.com using Composer and the WP Starter project — and set up its server on AWS using Forge.

Why Forge?

Forge provides two main features – automatic provisioning of a VPS on Amazon, Digital Ocean, or similar and automated deployment. There are many other products that offer one or both of these services. For example, Easy Engine provides automated provisioning of VPSs on Digital Ocean for WordPress and DeployHQ provides similar automated deployment. I’ve used both before and they are excellent.

I recently started Forge for managing a few Laravel apps I have built, which is what it was intended for. Also, the $10 a month you pay for it, helps support an open source project.

For the relaunch of the Caldera Forms site, I wanted to manage all of my dependencies — plugins, theme and WordPress with Composer, both locally and on the live site. So I figured, since it’s a tool for provisioning and deploying PHP applications, it should work fine for WordPress. And it did.

Why WP Starter?

I actually had my local site built first using WP Starter by We Code More a group of WordPress developers. WP Starter is primarily authored by Giuseppe Mazzapica. I have used a few different boilerplates for managing WordPress with a composer, including my own.

I like WP Starter because it uses .env variables for its configuration, and has a pretty simple setup. In addition, it handles loading the Composer autoloader, moving the content directory out of the main WordPress directory, creating a proper index.php and wp-config files to work with this setup. It is also really well documented.

WP Starter also has some cool tricks I’ve never seen before, which I will walk through in the next section.
The biggest reasons I went with WP Starter is that it is purely a PHP system — I don’t have to write any Ansible or Puppet scripts. I am uncomfortable with any script I don’t know how to modify, which is why I try and stick to automating all of my tasks with something written in PHP or JavaScript. Also, using the .env for configuration made it very easy to set up with Forge.

What Is An Env Variable?

WordPress makes use of a lot of constants to define its configuration. For example, in wp-config, we define the database configuration using constants. As a result we store sensitive information in wp-config making it so the full stack of a site doesn’t have to be open source. In addition, wp-config becomes environment specific.

Both of these concerns violate the principle of the Twelve factor app. I was first introduced to this philosophy when Scott Walkinshaw published the Twelve Factor WordPress App, that addressed building better WordPress stacks using the Twelve Factor methodology and formed the basis of the Roots Bedrock and later Trellis projects.

In that series of posts, I was introduced to environment variables. They are variables — set on the server — that are available to the application. By using references to a server’s environment variable, the application’s configuration is no longer tied to the environment and when used in wp-config, that file no longer stores sensitive information.

We can use the phpdotenv to easily access environment variables in PHP. This package is used in WP Starter, Bedrock, Trellis, and Laravel. Using a simple .env file, and this package, variables can be loaded into the $_ENV super global.

Setting Up Locally

First, let’s walk through building the local site using Composer and WP Starter. I used VVV to provision a new site, you can use whatever local environment you like, it really doesn’t matter.

Once the local site is provisioned, you will need a composer.json file. Here is a good starter:

    "name": "your-name/yoursite-name",
    "description": "Example project for WordPress + Composer + WP Starter",
    "type": "project",
    "repositories": [
            "type": "composer",
            "url": "http://ift.tt/1WIHhZl;
            "type": "vcs",
            "url": "http://ift.tt/2ic9adD;
    "require": {
        "wecodemore/wpstarter": "~2.0",
        "wpackagist-plugin/wp-super-cache": "*",
        "wpackagist-plugin/caldera-forms": "*",
        "gmazzap/wpstarter-example-files": "*"
    "require-dev": {
        "wpackagist-plugin/query-monitor": "2.7.*"
    "config": {
        "vendor-dir": "public/content/vendor",
        "optimize-autoloader": true
    "scripts": {
        "post-install-cmd": "WCM\\WPStarter\\Setup::run",
        "post-update-cmd": "WCM\\WPStarter\\Setup::run",
        "wpstarter": "WCM\\WPStarter\\Setup::run"
    "extra": {
        "wordpress-install-dir": "public/wp",
        "wordpress-content-dir": "public/content",
        "wpstarter": {
            "dropins": {
                "object-cache.php": "public/content/vendor/gmazzap/wpstarter-example-files/object-cache.php"
            "prevent-overwrite": [
            "env-example": "public/content/vendor/gmazzap/wpstarter-example-files/.env.example",
            "gitignore": {
                "wp": true,
                "wp-content": true,
                "vendor": true,
                "common": true,
                "custom": [
        "installer-paths": {
            "public/content/plugins/{$name}": [
            "public/content/mu-plugins/{$name}": [
            "public/content/themes/{$name}": [

Let’s walk through this because some of it is not very common. This looks pretty normal at first, though one thing you may note is that a gist file is being used as a repository. I didn’t know that you could do that until I used WP Starter, but you can. Files from that Gist are used later on for loading the object cache drop-in, creating an example .env file and more.

I prefilled the require and require-dev sections with a few plugins coming from wpackagist.org as examples. Note that Query Monitor is included as a dev requirement, that way it will be installed on the local site, but not live.

In the config section, the path for the vendor directory is moved into the WordPress content directory. This is useful for organizing things the WordPress way. Below that, the install scripts that WP Starter provides are specified. Again, I love that all of this is done using PHP scripts. I didn’t need to modify these scripts, but if I need to I feel confident doing so because they are in PHP.

Below that is the extra section, which has lots of interesting stuff. In addition to setting up install paths, something I covered in an earlier article for Torque, all configurations options for wpstarter are setup. You can read the docs for more information, but one thing I found really cool is how it can be used to configure dropins. The example composer.json I have shown specifies which object cache drop in to use.

You should add the other plugins, and probably a theme to the composer.json before going further.

Once you have your composer.json set up, switch in your terminal to the project directory and run “composer install.” After that, you will have a complete WordPress site, with all of the files — including your plugins and themes, as well as WordPress set up and ready to go. That is except the .env file.

You will see a .env.example file in the project. Change the name of that to .env. This file has all of the configuration options you need for your WordPress site and is very well documented. You can see the full content of it here.

Open up your .env file and look at the section near the top “MANDATORY DATABASE SETTINGS”. You will need to set your database name, username and password there. That is all you have to do to make your site work.

This file names all environment variables the same as their corresponding constants. So for example if you want to set the WP_SITEURL constant, find the line #WP_SITEURL=, remove the # and then put the value after the = sign. That’s it.

Now if all has gone well you should have a WordPress site working locally. You can commit everything to the site’s Git repo and even host that repo publically. Your sensitive information is not stored in the repo. In addition, none of the dependencies are either. Updating a plugin or WordPress is a one line change.

If you have another developer working on the project. They can clone the repo, setup the .env file with their own local database and be ready to work.

Setting Up The Server

Once the local site is working, it needs a compatible deployment system. For this, I used Laravel Forge because the servers they provision have everything I needed: PHP7, MySQL, Memcached, and Composer. The provisioning system is super easy once you connect your Amazon or Digital Ocean account. Also, they make adding SSL certificates, your own, or Let’s Encrypt, super simple.

To get started, create a Forge account and sign in. From the account page, under the servers page, you can provide Digital Ocean, Linode or AWS credentials and verify the connection.

Then go to the server’s page, select the type of server, in my case I used Amazon, set the server name, and size, as well as PHP version. As of when I wrote this, all three versions of PHP — 5.6, 7.0 and 7.1 beta were available. Then click Add Server. This takes a while, go get more coffee.


While Forge recently added a WordPress option, I still recommend their Laravel/ PHP option. The WordPress option is designed for simple WordPress sites, not WordPress applications or anything using proper dependency management.

Once the server is configured, navigate to that server’s configuration page, and go to the MySQL tab and use it to add a new database table and a user to that table. Make sure to keep the password for that SQL user handy.

Once created, go back to the sites tab and create a new site:


Once the new site is created, its management screen will ask you to attach a Git repo. In my experience this is seamless with Bitbucket. It takes a few extra steps to connect with Github, but it works if you follow the instructions.

Once the repo is connected, go to the Environment tab, and click the “Edit .env” button. This will open a popup you can use to modify the .env file for your application. It comes preset for Laravel, which isn’t too useful. Luckily you can use the .env.example file from WPStarter as your basis. Just make sure to use the MySQL details you set up for this server. Save that when you’re done.

Now the last step is to modify the deploy script. Again, the default is created with Laravel in mind. For example, the deploy script that is there by default calls an artisan command. Artisan is like WPCLI, but for Laravel.

Here is what I used for my deploy script:

cd /home/forge/default
if [ -b "public/index.php" ]
  rm public/index.php

git pull origin master
composer update --no-interaction --no-dev --prefer-dist

Notice that this is a standard bash script. You can customize it anyway you want. Since WPStarter generates a new index.php file, I had my deploy script delete the existing one first. This solved an issue that was causing my second deploy to fail. After that, I just pull changes on the Git repo and run Composer.

In the future I plan to install WPCLI — Forge provides an easy way to add your SSH keys to the server. Then I can use WPCLI as part of my deploy process.

With the deploy script in place. You could be ready to hit deploy and go. But you should probably click on the SSH tab to setup SSH. Adding a SSH certificate using LetsEncrypt just takes a few clicks and a few minutes. Redirects from HTTP to HTTPS are handled automatically. You can also add your own certificate if you want.


Once everything is set, go ahead and hit deploy. One thing you will notice is that Forge only alerts you to failed deploys. There is no indication that it went right. I connected Forge to my Slack channel to send me all notifications.

That’s about it, but Forge can do a lot more. You can configure CRON jobs, automated deploys and even build a network of load balanced servers. I encourage you to dig into what it can do. I know I am.

Getting Comfortable With Servers

For the most part my sites are on a managed WordPress host because it makes my life easier. But there are trade-offs, especially in terms of tooling. Using Forge, which I was already using since I needed an easy way to make my Laravel apps live, makes it simple for me — someone who doesn’t really get servers — to provision a VPS and setup sensible deployments.

I hope this article has taught you a bit about how to use this cool tool, as well as a little more about Composer and why using environment variables is awesome.

Josh is a WordPress plugin developer and educator. He is the owner and a developer for CalderaWP, makers of Caldera Forms, a different kind of and Ingotthe native WordPress A/B testing solution.

The post Using Forge To Provision And Manage WordPress Sites appeared first on Torque.

3 Free Beautiful Project Page Layouts (& How to Build More with the Divi Builder)

Welcome to post 3 of 5 in our miniseries How to Create a Simple and Effective Portfolio Website with Divi. In this series we’ll cover everything you need to do in order to create your own portfolio website from scratch. We’ll also go over how to use our A/B testing system Divi Leads to make sure your site is effective at attracting new clients.

In today’s blog post we’re giving away three portfolio project layouts that are great go-to layouts for displaying your work. They also make great starting point for new and re-mixed layouts that you come up with yourself. My goal in including these freebies in this miniseries is to jumpstart the process of figuring out how best to display your work. By giving three different options that you can try right away my hope is that you’ll see what works, what doesn’t, what you like, and what you don’t like.

How to Download, Install, & Use The Project Page Layout Pack

When you download the Divi Project Page Layout Pack the following files are what you will find inside:

  • all-project-layouts.json – this is all three layouts in one json file.
  • Featured Images Folder – I use the featured image module in each of these layouts. Which means you will need to add the featured images contained in this folder to their corresponding layout for them to show up.
  • Project 3 Gallery Images Folder – Gallery modules do not export with all of their images. I have included all of the images used in the layout three gallery module so you can easily add them.
  • project-layout-1.json – The first layout below as a single file.
  • project-layout-2.json – The second layout below as a single file.
  • project-layout-3.json – The third layout below as a single file.

Once you have downloaded the layout pack below to your computer you will need to locate it in your downloads folder and unzip it. Then, navigate to Divi > Divi Library and click the “import & export” button at the top of the page. In the import tab choose whichever layout you’d like (or the “all” file) and import them into your Divi Library.

After that is complete you will be able to add these layouts to new projects using the Divi Builder by going to Load From Library > Add From Library and choosing your preferred project layout. Don’t forget to add the featured images and gallery images separately!

To gain access to the download you will need to subscribe to our Divi Daily email list using the form below. As a new subscriber you will get even more Divi goodness. In addition to being able to download the DiviStar Layout Pack we will also send you The Ultimate Divi Landing Page Layout Pack as well as providing you with an ongoing source of new (and free) Divi resources, tips, tricks, and news.

If you’re already on the list, simply enter your email address below and click download. You will not be subscribed twice.

Download The Layout Pack

All photos courtesy of the generous authors on Unsplash.com via the Unsplash License. Layout Packs are released under the GPL, which means you can use them for free for both personal and commercial projects! By using ElegantThemes.com and our products you agree to our Terms of Service.
Download For Free

Download For Free

Join the Divi Newlsetter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. If you are already subscribed simply type in your email address below and click download to access the layout pack.

You have Successfully Subscribed!

Applying Design Principles to Your Page Layouts

Every time I sit down to design a page, post, portfolio layout, or whatever, I try to briefly revisit some basic design principles. There is a great website that I go to called learndesignprinciples.com that provides simple explanations (with easy to understand diagrams) of four basic design principles: Axis, Symmetry, Hierarchy, and Rhythm.

Here is the brief description that Melissa, the creator of learndesignprinciples.com, has written for each of those terms:

Axis: Axis is the most basic and most common organizing principle. Simply stated, axis is an imaginary line that is used to organize a group of elements in a design. In diagrams, axis is represented as a dashed line.

Symmetry: Symmetry is when elements are arranged in the same way on both sides of an axis. Perfect symmetry is when elements are mirrored over the axis and exactly the same on both sides.

Hierarchy: Hierarchy is when an element appears more important in comparison to other elements in a design.

Rhythm: Rhythm is the movement created by a repeated pattern of forms.

Each of these terms has a set of accompanying diagrams on the website I linked above, to help you fully visualize what these terms mean. I highly recommend taking a look.

In the designs below I focused on the first three principles. Each design has an axis that runs straight down the middle. No matter what I put on the page, I focused on creating symmetry by balancing the elements on either side of that invisible central axis. And finally I used the hierarchy principle to communicate the importance of the featured image/project description.

I’m sure if you think about these simple design principles the next time you decide to create a post or page you will find them helpful in organizing your content in an appealing way.

Project Page Layout 1:

This first layout is a simple, single column of images that succinctly yet boldly displays your work.


Project Page Layout 2:

With the second layout I wanted to get a bit more complex but still maintain my central axis and symmetry to either side.


Project Page Layout 3:

In the third layout all I really wanted to do was provide a clean, compact way to display a large body of work. A tiled gallery like we were all shown how to create by Josh Hall in his Gallery Module miniseries was the perfect fit.


Tomorrow: How to Create a Compelling About Page for Your Portfolio Website with Divi

In tomorrow’s post I’ll walk you through creating the final page to our simple and effective portfolio website: the about/contact page! See you there!

Be sure to subscribe to our email newsletter and YouTube channel so that you never miss a big announcement, useful tip, or Divi freebie!

The post 3 Free Beautiful Project Page Layouts (& How to Build More with the Divi Builder) appeared first on Elegant Themes Blog.

Virtual Reality, WordPress, & Web Design: What Does the Future Hold?

Virtual reality promises massive changes to the way we experience and interact with technology. Despite that, VR has failed to burst into the mainstream. At least so far…

But with cheap cardboard boxes that turn smartphones into virtual reality headsets and intrepid developers pushing for VR standards for web browsers, widespread virtual reality on the web is getting closer and closer.

In this post, I’ll dig into some of the implications of virtual reality on both WordPress and in web design in general.

What Virtual Reality Tech is Available Right Now?

Virtual reality sounds expensive, right? That’s what most people think. But VR tech can be surprisingly affordable, at least if you already have a smartphone. Here’s a brief overview of some of the most popular headset options:

Google Cardboard

  • Google Cardboard – Google Cardboard turns any compatible smartphone into a VR headset for the cost of a few cups of coffee. Yup, about $10-15 can get you your very own VR headset. For a quick overview of Google Cardboard, this YouTube video is a great start.
  • Oculus Rift – Best known for being snapped up by Facebook for a couple billion dollars, Oculus Rift creates quality, but expensive, headsets.
  • HTC Vive – HTC Vive isn’t cheap, but those willing to shell out ~$800 get what is, by all accounts, an amazing virtual experience.
  • Samsung Gear – Samsung Gear is one of the few headsets to rival Google Cardboard in terms of affordability. It costs around $100 but is limited to working with certain Samsung smartphones.

While not an exhaustive list, these are the virtual reality headsets which come up most commonly when discussing virtual reality and the web.

What About Website Support for Virtual Reality?

Getting headsets into the hands of the public isn’t the only problem with virtual reality. We also need libraries to support easy virtual reality implementation for websites. Thankfully, those are coming along well, too.

WebVR is a JavaScript library that offers access to Oculus Rift, HTC Vive, Samsung Gear VR, or Google Cardboard in your web browser. Essentially, it aims to make virtual reality available in regular web browsers, rather than specialized apps.

It’s available in the nightly builds of both Firefox and Chrome and seems to be seeing increasing adoption.

How Do Virtual Reality and Web Design Intersect?

Imagine a site on the scale of Wikipedia with virtual reality. Instead of reading about famous locations, you could actually experience them through virtual reality. It may be a long way off, but that’s where I see the web going…eventually.

But there are other specific areas in which I already see VR being heavily pushed.

Virtual Reality for eCommerce Websites

I don’t know about you, but the only reason I go to physical stores nowadays is because I want to experience a product in person. Amazon might be cheaper and more convenient, but I can actually interact with the product at Target.

But virtual reality could change all that. Imagine being able to experience products on Amazon in virtual reality. You could see it from different angles, watch it in action. It would be incredible.

It’s not just a pipe dream, either. Some eCommerce sites have already moved to incorporate virtual reality into their shopping experiences. Take IKEA for example. Their Virtual Kitchen experience allows HTC Vive users to move through IKEA kitchen displays in virtual reality:

IKEA virtual reality

And companies like Prizmiq are already bringing detailed 3D imaging to product pictures. How long until they can offer compatibility with VR headsets for truly immersive product views?


Virtual Tours for Real Estate or Travel Companies

Another major use for virtual reality is all types of tours. Whether for real estate or travel, virtual reality will let websites in these niches offer immersive experiences. Sotheby’s real estate already made waves by offering virtual reality tours for some of its property listings.


I think such uses will only expand as virtual reality gains traction.

Roadblocks to Widespread Implementation of VR and Web Design

Beyond the rather obvious roadblock of VR headset adoption, there are some other things standing in the way of virtual reality.

Responsive Design

How do you build a website that functions for both virtual reality headset wearers and regular users alike? That’s the major problem designers will need to cope with. Right now, most implementations involve a toggle to move between modes. But is that really the best virtual experience?

And how do you handle menus? Eye-tracking menus work great for wearable headsets but obviously not for desktop browsers.

I don’t have answers to these questions. But I do know that having to grab my headset and hit a toggle button isn’t a very immersive experience. And it probably would relegate virtual reality to “occasional treat” rather than “daily habit.” At least for me.


We already know how massively important page speed is. Are visitors really going to be willing to wait for large 4K 360 degree videos to load? For special occasions, I think yes. But for everyday browsing? That’s a tougher question to answer.

Virtual Reality and WordPress – What’s There?

Let’s start with the big news, it was just announced that all WordPress.com sites will now support virtual reality images and videos. That means the 409 million visitors to WordPress.com blogs every month now have a chance to be exposed to virtual reality images. I only hope this pushes virtual reality more into the mainstream.

And it’s not just limited to WordPress.com – some developers are already making it possible to add virtual reality to self-hosted WordPress via plugins. I did some digging around the plugin repository and I found two promising plugins:

VR Views

VR Views helps you embed 360-degree mono-and-stereoscopic images and videos into your WordPress site. It uses Google’s VR Views library, which makes it fully compatible with Google Cardboard.

To handle issues with responsive design, i.e. users who don’t have Google Cardboard, the plugin defaults to a “magic window” that will work on any desktop or mobile browser, regardless of hardware. The “magic window” allows readers to move their screen around to view the image in 360 degrees of glory but lacks true virtual reality. Here’s a screencap of what it looks like on my web browser:

VR Views

To create your virtual reality content, you can use any device that is capable of capturing 360-degree videos or images. And once you have your content, implementing it is as easy as adding a shortcode to your WordPress site.


WP-VR-view is another plugin which lets you add Google Cardboard compatible virtual reality media to your WordPress site.

And just like VR Views, it degrades considerably for anyone who doesn’t have virtual reality hardware:

WP VR View

Smartphone users can easily move between regular mode and Google Cardboard mode to take advantage of their VR hardware.

Where Can Virtual Reality and WordPress Go From Here?

I would love to see virtual reality product views for WooCommerce. In fact, Michael Tieso has a post delving into this very topic. He’s even created some experimental implementations of virtual reality for WooCommerce. And while he cautions they aren’t to be used on production sites, savvy devs may want to delve into his GitHub to see what can be done.

I also hope that, with the inclusion of virtual reality for WordPress.com blogs, virtual reality images and videos make their way to self-hosted WordPress without the need for a plugin. It seems like the technology is there, we’re just waiting for it to be accessible to everyone!

Wrapping Things Up

My Google Cardboard is already on the way, so I’m excited to be able to try out some of these concepts for myself.

Virtual reality isn’t quite there yet for the web as a whole. But I think in a few years we’ll be seeing more widespread implementations of virtual reality. With WordPress.com rolling out virtual reality and major corporations like IKEA and Sotheby’s diving in headfirst, it’s only a matter of time.

Have you tried any virtual reality headsets? What kind of virtual reality web experiences are you most excited for?

Article thumbnail image by Julia Tim / shutterstock.com 

The post Virtual Reality, WordPress, & Web Design: What Does the Future Hold? appeared first on Elegant Themes Blog.

What we want from WordPress in 2017, live from Post Status Publish

After Post Status Publish’s main talks concluded, Joe Hoyle and I recorded the podcast during the reception. It was a laid back format where we discuss the future of WordPress, including our own wishlist features, and then we spent the majority of the hour taking questions from the audience.

We recorded this prior to the announcement of the new development schedule and changes to major releases, but most of our conversation remains relevant, as many of our wishlist items are within the three release focus areas that have been chosen.

You can listen to just the audio, also on our podcast, which you can find on iTunes, Google Play, Stitcher, and via RSS for your favorite podcatcher.

Direct Download

Or just watch the video on YouTube, or below for the full experience. And don’t forget to subscribe to my new channel on YouTube.

The rest of the videos from Publish are available to Post Status members.

ManageWP – Year in Review 2016

With only a few days remaining in 2016, it’s time for reflection. Each year we take the time to look back, celebrate our successes and focus on improving as individuals, as teams, and as a company. 2016 overall has been a rollercoaster year for us, with two major events, the launch of ManageWP Orion and the GoDaddy acquisition. Here are our impressions, plans and resolutions for 2017.


2016 Was a Customer Happy Year

Let’s kick off with some love from all of you. Firstly, thank you to those of you who regularly leave us comments and feedback. It helps us improve, but it also tells us we are doing something right. You are our biggest source of encouragement and inspiration. Here are some of the fantastic comments you left us in 2016.

Miloš is my hero. After several hours the website is cloned to the new address and everything seems great!

Tnx Nikola! For fastest support ever!

Very fast, honest and empathic.

On this note, I also want to share our happiness statistics for 2016. With a happiness score of 81, we are pleased that this year we were able to solve most of your problems. We hope to keep this up in 2017.


I checked in with our head of support, Petar, and asked him how the year went for them. He tells me, “2016 will be remembered definitely by the launch of ManageWP Orion, our Customer Happiness team was responsible for documenting all procedures, creating a new User Guide and Video materials, integrating new support flow through Help Scout and on-boarding experience through Intercom.

In 2017, the support team is expecting to scale, but to never settle for anything less than extraordinary customer experience. The main aim for our support team in 2017 is to empower the WordPress Community, and they have been doing a great job so far, having members of their team attend WCUS and WCEU among other WordCamps in 2016. Did I also mention they are a chatty bunch? Just take a look at how many replies they sent!


2016 As a Product Year

We have done a lot to ManageWP this year, here is what head of engineering, Sergej, had to say.

After two years of development we’ve finally launched ManageWP Orion and after that managed to make many improvements to it – later also launching it as a part of the GoDaddy Pro program.”

It’s safe to say that it was a busy product year. Our Product, Engineering and DevOps team have been working together to bring the best product to our users. Product has developed also internally, having established a solid DevOps team. Head of DevOps, Miljenko, is pleased with his team, he says.

The most significant accomplishment for 2016 is forming the dedicated DevOps team inside the company. During the year, we have succeeded to automate our infrastructure and create procedures that helped us to scale during the Orion and GoDaddy Pro launch.”

The overall goal for 2017 is staying focused on improvement, making sure that our product always comes first, and we deliver the best possible solution to our users. Now with a more defined team, there are aims of providing more tools for developers so they can act standalone.

This year another essential product team has been born, and that is our newly established Quality Assurance team. The QA guys, Vladeta and Nenad, shared with me their thoughts.

We use our product knowledge to test everything that is going into production, creating automated tests and providing valuable feedback to our developers on how to improve ManageWP even further.

Their main aim is to reduce the number of product bugs that slip by, as well as to create automated tests for all ManageWP features in 2017. This way our feature releases will run more smoothly.

2016 – A Year In Design

Our design team have like always outdone themselves, working on our brand, product and marketing. This year they published a great post about the ManageWP brand, how it came to be and what it means to us. They have been able to support teams across ManageWP in more than one way, and fight for maintaining brand and design values of ManageWP, as well as working on improving our product design processes. Head of design, Antun, tells me their team goals for 2017.

The goal of our design department is to create and sustain unique and exceptional experience for our existing, as well as for our new customer base. Special emphasis on innovation, research, customer feedback, and thoughtful design decisions will help us to accomplish that.

For all of you who were able to grab some of our swag at the WordCamps, we hope you liked it, design team promises more fantastic swag in 2017.

Company Growth In 2016

We have our own dedicated operations team, aka the people who look after the people of ManageWP. They make sure our finances are in tact, that we have food, water and heat, as well as providing us with all the tech we need to do our jobs well. As my colleague Nemanja would say, “without them it’s hunger games in the office“.

2016 was a busy year for them too, with the number of employees growing rapidly. Milica and Lela tell me, “The way we’ve handled all the financial, legal, accounting, administrative challenges defined our goals, our success and our strength as a team.” As the growth of the company is looking to continue in 2017, they aim to optimize all of their processes and create a solid structure that will make them more efficient come the new year.

Here are some interesting company statistics for 2016.


Another team that has been working hard to contribute to the company growth, is the.. wait for it … Growth team. This also happens to be the team I am part of, and from first hand experience I can tell you it’s been a hectic and fun year for us too. Our biggest achievement in 2016 is well defined by Nemanja, our head of growth. “We made sure ManageWP remained planted firmly to the ground: humble, approachable and active in the WordPress community.

Our 2017 goals are to get more users and make their lives easier with ManageWP. This year alone since launching Orion we have had 34, 270 users sign up, and we would like the growth to continue in the new year.

One of our team members also brought Santa Clause to the office, so that was a special moment for everyone at the company! (Like every year, our Secret Santa comes in the form of Bogdan, our backend developer)

Year in Review 2016

It’s A Wrap!

That about summarizes a very exciting year here at ManageWP. Thank you to you users for supporting us, to our colleague at GoDaddy for accepting us with open arms, and to all of you who took part in our interviews, and AMA sessions on ManageWP.org. You were fantastic!

I want to leave you with a few thoughts from my colleagues and their best moments from 2016.

Seeing more people in the office and everyone looking so dedicated to make things work on every level, makes me very happy and excited. – Milica

Attending the new Star Wars movie premiere with the team – strong with the Force! – Milos

Definitely WordCamp Europe. That was my first interaction with our users in person, and seeing the people we are helping every day made it all worth while. – Andrej

We can’t wait to hang out in 2017, Happy Holidays!

The post ManageWP – Year in Review 2016 appeared first on ManageWP.

6 Reasons Why You Should Use a CDN for Your WordPress Website

CDN – you’ve probably seen this acronym bandied about by the web community. But do you actually know what it means? And better yet, do you know how it can benefit your WordPress site? Whether you have zero idea what a CDN is or you’re just not sure whether or not you should use a CDN for your WordPress site, keep reading to learn all about the benefits of CDNs.

The post 6 Reasons Why You Should Use a CDN for Your WordPress Website appeared first on WPLift.

How to Choose the Best Domain Name (8 Tips and Tools)

Choosing the right domain name for your website is crucial for your success. If you choose the wrong domain name, then it can be a hassle switch later on without hurting your brand and search rankings. That’s why it’s extremely important that you choose the best domain name from the start. In this article, we’ll share all the tools and tips you need to get domain name ideas, choose the best domain name, and register your new domain (for free*).

How to Choose the Best Domain Name

8 Tips for Choosing the Best Domain Name

When starting a blog, choosing a domain name can be stressful because you don’t want to make a mistake. To make the process easier, we have a 8 step framework that you can use to pick the best domain for your website.

1. Stick with .com

There are plenty of new domain name extensions available today, from the original .com, .net and .org to niche extensions like .pizza, .photography, and even .blog.

We always recommend choosing a .com domain. While it can be tempting to come up with clever blog names using new extensions, a .com domain is still the most established and credible domain extension. Newer domain extensions like .ninja or .photography can be untrustworthy.

Dot-com domains are also the most memorable. Many users, especially those who aren’t as tech-savvy, will automatically type “.com” on the end of every domain without thinking about it.

If your website is something like jane.photography, and your users accidentally type in jane.photography.com, they will end up on an error page on photography.com. It’s smart to avoid that risk by sticking with .com.

Not to mention, most smart phone keyboards automatically have a .com button.

2. Use keywords

Keywords play an important role in a domain. By using keywords in your domain name, you tell the search engines what your website is about. Together with quality content and good user experience, keywords in your domain can help you rank higher in Google.

It is very hard to find a good domain with your target keywords that’s not already taken. You will need to be creative and combine your keywords with other words to make your domain stand out.

3. Keep it short

While keywords are important, don’t go overboard with domain length. It’s better to have a domain name that’s short and memorable.

It’s a good idea to keep your domain name under 15 characters. Longer domains are harder for your users to remember.

Not to mention, users will also be more prone to entering typos with longer domain names, and you’ll lose out on that traffic.

That’s why it’s a good idea to keep your domain length short.

4. Make it easy to pronounce and spell

You should be able to easily share your domain when speaking as well as writing. You never know when you’ll be asked to share your domain name in person.

It should be easy to understand and spell for any listener.

5. Keep it unique and brandable

Your blog domain name must be unique, so you’ll stand out in your readers’ minds. It’s smart to research other blogs in your niche and find out what domain names they’re using.

You don’t want to accidentally use a trademarked name, or get accused of copying another blogger.

You can also choose to pick a domain name that’s more brandable. Brandable domain names are unique, catchy, and memorable. For example, “Amazon.com” is a much more brandable name than “BuyBooksOnline.com.”

6. Avoid hyphens

Never create a domain name with hyphens. Hyphens can be a sign of spam domains, which you do not want to be associated with. You don’t want to give the wrong impression to potential visitors.

Hyphenated domains are also prone to typos. If you choose a domain name with hyphens because the domain you want is already taken, your users will end up at your competitor’s site if they forget to type in the hyphens.

7. Avoid doubled letters

It’s a good idea to avoid domains with doubled letters, because it increases your chances of losing traffic to typos. For example, a domain like WordPresssetup.com will be more prone to typos, and result in lost traffic.

8. Leave room to expand

It’s smart to choose a domain name that’s related to your niche because it gives users some idea of what your site is about. But you don’t want to limit your options too much.

For example, a florist might choose a domain name like orchidblog.com, but then want to start blogging about other flowers besides orchids. In that case, the domain might prevent you from attracting readers interested in other flowers.

Properly moving your WordPress site to a new domain can be a frustrating process, and it can cause you to lose search rankings and traffic if you don’t do it right.

That’s why it’s so important to keep these tips in mind, so you can choose the best domain name for your website.

Best Place to Register a Domain Name

There are hundreds of domain registrars on the web. It’s important to choose carefully, because it can be difficult to move your domain later on.

Just like with web hosting, pricing for domain registrations can vary anywhere from $9 to $24.

Here are a few places we recommend for domain registrations.

Free Domain Registration with Web Hosting

Majority of web hosting companies also offer domain registration. Some of those companies offer free domain registration with new hosting accounts.

If you’re starting a new blog or website, then it’s a smart idea to take advantage of this offer and get your domain name for free.

Below are three WordPress hosting companies that are offering our users over 60% off web hosting and a free domain name:

Bluehost – one of the oldest and largest brand name when it comes to web hosting. They’re an official “WordPress” recommended hosting provider.

SiteGround – one of the most popular and highest rated hosting provider in the industry. They’re also an official “WordPress” recommended hosting provider.

iPage – powers over 1 million websites and is the most budget-friendly web hosting provider on the web. $1.99 / month for web hosting and you get a free domain name.

It’s important to keep in mind that most hosts offer free domain registrations for 1 year only. After the first year, your domain registration will renew at usually around $14 per year.

A lot of users take advantage of the free domain for the first year and then transfer it to a cheaper domain registrar to save a few bucks.

Most Popular Domain Registrars

GoDaddy is the largest domain registrar in the world. They manage over 63 million domain names for over 14 million customers.

They also offer web hosting plans as well. If you use our GoDaddy coupon code, then you can get a free domain name.

NameCheap – another popular domain registrar that offers great deals on domain registrars, transfers, and domain privacy.

Final Thoughts

If you are starting a blog for the first time, then you may find our ultimate guide on how to start a WordPress blog helpful because it walks you through everything step by step.

You may also want to check out our WordPress and Blogging Coupons page to find the best deal on your new domain and other web tools / services.

For more domain name ideas, you can see our post on the 14 best free domain name generators.

That’s all. We hope this article helped you understand how to choose a perfect domain name for your blog or business.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Choose the Best Domain Name (8 Tips and Tools) appeared first on WPBeginner.