Discovering Managed WordPress Hosting Was Not A Good Fit

I’d just won the biggest project in my experience. I had no expectation at all that I would win this project. Now the reality set in that I had to make the website work.

The first question was where to host the website. Historically I’ve almost solely used Flywheel Managed WordPress. Flywheel does an incredible job. This website is hosted on Flywheel. I looked at the pricing tables and I just couldnt swallow that pill for the specifications of this project. I won the bid and the budget was set so every expense would cut into my profit.

The combination of a required peak bandwidth of 20GB and minimum 20GB of storage that has the capability to expand if need be were my main two constraints. Additionally it could not have a page view limit.

With this in mind my monthly bill would have been $75/month or more at Flywheel. I looked around through Siteground but heard enough negative things to ward me off. I ended up a Managed WordPress Plan on GoDaddy because they met the specifications.

After getting the site setup, I migrated the customers data. Then I discovered that GoDaddy’s servers were having a difficult time with the site. After installing WP Rocket I saw some gains in performance on the front end. There were issues still, the backend was creeping along and updates weren’t working well between GoDaddy’s native caching and WP Rocket.

I felt hopelessly stuck. I had already purchased the server space. Performance wasn’t up to par. After many hours of discussion with GoDaddy support there was no solution in sight.

With a great amount of frustration I continued to do my research. I ended up going to Digital Ocean and setting a $20 box there and installing WordPress myself. This is one of the greatest challenges I have ever faced. Previous to this challenge, I had very limited experience working in the terminal beyond running Gulp and VVV.

I ended up trying to provision the server three times before I experienced any level of success. Eventually the site reached a point I was very happy with. I got the installation set up properly. After getting WP Rocket installed, the site had an average first load time of 2.3 seconds.

Pieces of the managed WordPress experience were still missing. Automated backups would be HUGE for this project. Through ManageWP I was able to Automate Backups every 6 hours with offsite storage for a total of $2.08/month. For security I installed Wordfence and got a license for their pro tier at $8/month. For those at home doing the math my monthly costs on this server are

$20 – Server

$8 – Security

$2.08 – Backups

This is a total cost of $30.08 per month compared to $75+ at Flywheel or even more at WP Engine.

Running the server for this project has certainly made me thankful for the companies doing Managed WordPress well. Provisioning your own server for this first time is no joke. Security is no joke. A bunch of work and stress later and I’m not spending an extra $40 a month. Managed WordPress is an incredible service, hear me say incredible, but its not right for every project.

Organizing Larger Projects in WordPress

Building websites and organizing your files is pretty straight forward when you deliver basic postcard websites. My most recent project forced me to change my approach a bit. The project required that twelve different departments be able to update their own sections of the site. Departments would also need to put together complex pages that are not possible through the standard WordPress editor.

I could have saved myself a lot of stress if I had known what I know now.

The Improvements to My Code Structure Are

  1. Splitting functions.php into manageable single task files
  2. Using ACF Flexible Fields to offer powerful layouts

Splitting functions.php into manageable single task files

I split my functions.php file into many smaller ‘partial’ files using includes. This also helps keep the project organized in version control.

This is the whole functions.php file

The only code that goes in the main functions file is the required code and references to my code. Beyond version control, when I had a php error I could go right to the file instead of digging through hundreds of lines of spaghetti code.

Using ACF Flexible Fields to offer powerful layouts

When I started thinking of how to make it possible for twelve different departments to have complete control over what goes on their pages I almost had a meltdown. I reached out to some awesome people in the WordPress community and they pointed me in the right direction. I can’t say enough how thankful I am for Diane Kinney and Sridhar Katakam. Sridhar even has a tutorial that can walk you through the exact steps I used to get my initial prototype up.

This website would probably not have been possible had it not been for their input. The other direction I was leaning was using Beaver Builder and building custom blocks for that – I’m still interested in testing this approach out.

In the functions.php file I linked to this file

That file is where I do all of my conditional includes if a row is added on to a page it will call the appropriate code. The following is what one of those files getting included looks like.

Each one of these rows or “components” gets a corresponding scss partial to keep the styles organized and compartmentalized as well. This setup allows me to very easily update with a new component if a department requests it. If a department doesn’t want one of the components I’ve built they can just not add it to their page but they get options.

If I were to do it all over again…

If I had to do it all over again or rewrite the components I would implement the calls to ACF without the frontend dependancy such as Bill Erickson suggests in Remove Frontend Dependancy from ACF.

How To Prepare Your Website for 2017

Twenty sixteen is over. Your new chapter for your website is just about to begin. Ready for that new chapter to begin? You can turn that new page with enthusiasm. Here’s 3 things you can do to begin to take more ownership of your digital space in 2017.

Write on Your Site Regularly

Whether your tab says blog or journal or whatever you call it, publishing on your website is critical to establishing yourself as an authority. Publishing has to happen if you want to show up at the top of the Google results. I talk with clients all the time who want to show up at the top – who wouldn’t. But they want me to wave my magic wand, and it simply doesn’t work like this anymore.

I can’t want this more than you do.

John Locke – https://www.lockedowndesign.com/everyone-wants-seo/

To show up at the top of the Google results page will require ongoing work from you. Much the same as a diet. Being on a diet and eating Big Macs for all three meals won’t get you very far. You want something you’ve got to work for it. Or hire somebody to do it for you. Well… you can’t hire somebody to diet for you unfortunately!

Install an SSL Certificate

Show your customers that you care about keeping their data safe. “What is an SSL certificate” you ask. When you are shopping online or just browsing a news site you can check where the URL is in your browser to tell if the site is secure. If you are using Google Chrome you will get a little green lock.

Never shop on a website if this little lock doesn’t appear. Also http will change to https.

What does a secure website mean? It means that even if somebody gets the data you are sending to a website they won’t be able to make sense of it. Your data get scrambled. Its the same concept as the telegraphs that the Germans used to communicate in World War 2. We could get the messages the same as them but they never made sense until we figured out how to decipher them. Once the Allies developed the Enigma machine it was game over.

You want all of your traffic encrypted so nefarious individuals can’t see what you are buying or steal your precious account information like credit cards and other intimate details. In fact pretend like your day is a balloon animal and Gru (read: hacker or government) is about to ruin it.

Consider Your Visitors Using Mobile Devices Your VIP’s

When you think of using your favorite website, what does that picture look like? Are you sitting at a desk with a big monitor? Are you on the couch with a laptop? Chances are you are wherever you need be with your phone in your hand.

If your website is slow or not optimized for a phone you need to give these users the VIP treatment. Mobile browsing accounts for the majority of time spent on the internet – http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/

Small Changes

This Christmas my wife and received some gift money. We used that money to make a few small changes. We installed shelves and mounted our TV to the wall and moved furniture around. These small changes allowed us to climate clutter and make our small apartment feel so much bigger.

These small changes reinvigorated our appreciation for our tiny apartment. What small things can you change in your life or business to get a big reward. Sometimes all it takes to feel reinvigorated is some reflection and action.

Doesn’t Meet My Standards

I just got done with a training session with an incredible individual. She contacted me and said she had hired somebody from upwork to create a website for her. Unfortunately her website wasn’t producing the results she expected. 

When she edited a page it wouldn’t show up for her guests. She wasn’t able to get things in her menu to appear the way she wanted them to.

Her website functioned, but it didn’t work quite the way she wanted it to. When we started walking through her website together I started finding glaring issues that weren’t done the WordPress way. Images and paragraphs were set and there was no way for her to change them.

She asked how much it would cost to start all over. I told her and she didn’t like the price.

But that wasn’t the point. The point wasnt to start over. My goal was to get her moving as best she could with the tools she already had. Sure we hit some spots where I had to say “the current design didn’t really anticipate this, but here is the workaround”. 

The thing is I could have just focused on the things that weren’t done right or I could focus on the things that were under our control during our 2 hour session. Her website still has some things I’m sure we’ll have to come back to. The big thing is getting her as confident with her site as possible and letting her know what is not her fault.

My standards could have kept me focusing on what’s wrong. But I’m glad we were able to do as much as possible with what’s right.

Are your standards getting in the way of you helping people?

2015/2016 Business Years In Review

I Started a Business…

Almost two years ago I started SBY Digital. I didn’t know much about business (now I know a tiny bit about business). Loved ones said it was a bad idea to quit a great job that I was only 9 months into.

I had discovered I enjoyed web design, and was on the brink of discovering how to make money doing what I loved full time. That was an exciting season, and scary too! There was no backup plan.

I named it SBY Digital…

I launched the SBY Digital brand as the face of my business. If you you have ever studied the Christian Faith deeply you’ll know the highest regarded prophet (Jesus) said “a prophet is not respected in his hometown.” I felt this was true for me only living 15 minutes north of my hometown. People would write me off as the kid they watched grow up who use to do that quirky thing (I’m still very quirky).

SBY Digital became a necessary way to market myself and prove my value before getting written off. The brand allowed me to build credibility and have a bit of early anonymity.

Since I also share my name with a former NFL player search engines didn’t rank me very high. Using a word that didn’t exist like “SBY Digital” also helped me with Search Engines. Using SBY Digital made it easier for people to find me. It also enabled me to avoid climbing the SEO mountain of de-seating an NFL player from the throne of #1 result in Google for my name.

100409alexander450
Chris Mcintosh played for the Seattle Seahawks

I did a lot of work…

I started my career as an entrepreneur and web designer by helping a city council member with his campaign website for mayor. A couple months later his campaign proved successful. Salisbury has been reaping the benefits of Mayor Jake Day ever since. This was a pretty incredible launchpad!

I was able to keep earning clients and worked with non profits, churches, photographers, economic specialists, CrossFit gym owners, daycares – the list could keep going.

Each job proved to me the importance of – the story we tell, and communicating what drives us to get out of bed and serve our customers. How to confidently communicate our value without sounding arrogant. I’ve learned that it’s our natural inclination to tout our business accolades and how great we are but what our customers really need is to know that we are intimately familiar with their problem. Instead of focusing on awards we’ve won and how many percent we are better/faster/cheaper than the next business in our space.

I won a project I’ve been aiming at for three years!

Then this summer I bid on a project that I had set my sights on three years ago. I bid on the City Of Salisbury website (this project also consumes the Fire and Police Department websites in addition to the Downtown Salisbury website). After learning there were 26 other companies that had bid on the project I was not hopeful of winning the bid.

In late August I was working from one of the most rad indie coffeeshops. I received a call from the City saying my bid was the winner! That was exciting!

I’ve been working with the city for the last 3 months to refine the experience we deliver to citizens and visitors when they browse the city website. We are making great and exciting progress. I’m looking forward to being able to unveil the project after it goes live!

It’s always a little bit scary when you reach your goals. I think most of the time when we set goals – we don’t actually think they are attainable.

So now being halfway done with completing a goal I set 3 years ago I am having conversations with myself “what do I want to focus on once I get this project shipped?” (told you I was quirky, people normally give the look when you talk to yourself).

Whats next, Chris?

Well let me share with you! The first big project will be – killing the SBY Digital Brand. I don’t need it anymore. I’ll still be providing the same story focused web consulting and design services. Now I’ll just be marketing those services under my name. I think this will allow for greater ability for conversation and personality in my blogging and marketing. I want to have more conversations with you!

I’ll be picking some specific areas to focus on. Who I want to focus on isn’t quite clear to me yet. Once I get more clarity on who, I’ll be redesigning this website.

I’ll be making an update to my Bolt Pro Starter Theme and making a better set of tutorials on how to DIY your website with the theme. A big goal for 2017 is focusing on the DIY crowd and helping others grow and learn. This means I’ll be publishing content. I want to focus on Facebook video, and Youtube. I also plan on publishing some PDF’s for improving your existing website.

Ill be investing in learning Javascript more as well as Facebook and Email marketing tools. I’m taking Wes Bos’s React for Beginners, his Javascript30 Challenge is pretty cool too! I’m also taking Zac Gordon’s JavascriptForWP course which is insanely deep. What I’ve learned from these two courses has already increased my capabilities as a developer – I wish these courses existed two years ago!

TL;DR

I did a lot of work. I am killing the SBY Digital brand, but I’ll still be doing the same work I’ve been doing. My marketing will be coming from this website. I’ll be redesigning this website. The City of Salisbury website redesign will be launching next year. I’ll be learning more javascript. I’ll be learning more about video.

You’ll be hearing more from me. Let me know what you want to learn about using the web for your business.

Thanks for being on the journey with me!