ButterCMS vs. WordPress: A Typical Project Journey
Tags: cms
Published: 2018-07-09 20:03:42

---
title: ButterCMS vs. WordPress: A Typical Project Journey
published: true
description: Comparing ButterCMS to WordPress in a typical project journey for adding a blog to your site
tags: cms
---

_<span style="font-weight: 400;">This article is part of our ButterCMS vs Wordpress Series</span>_

*   [_<span style="font-weight: 400;">Part 1: Headless vs Traditional</span>_](https://buttercms.com/blog/buttercms-vs-wordpress-headless-cms-vs-traditional-cms)_<span style="font-weight: 400;"></span>_
*   [_<span style="font-weight: 400;">Part 2: A Typical Project Journey</span>_](https://buttercms.com/blog/buttercms-vs-wordpress-a-typical-project-journey)

<span style="font-weight: 400;">In our first article in this series, we</span> [<span style="font-weight: 400;">explained the high-level differences</span>](https://buttercms.com/blog/buttercms-vs-wordpress-headless-cms-vs-traditional-cms) <span style="font-weight: 400;">between a headless CMS like Butter and a traditional CMS like WordPress. Now we can take a look at a more concrete example of a typical project journey.</span>

<span style="font-weight: 400;">Let’s say you’ve got an existing website built using a modern tech stack like React, Node.js, Ruby on Rails, etc and you want to add a blog to it. You’ll have very different experiences doing this with a traditional CMS than you will with a headless CMS. Below, we’ll see how.</span>

## <span style="font-weight: 400;">What does your project look like with WordPress from Day 1 to Launch?</span>

<span style="font-weight: 400;">Let’s go through what this project will look like if you use WordPress and your site is built on Rails.</span>

### <span style="font-weight: 400;">Initial setup</span>

<span style="font-weight: 400;">First, you’ll need to decide whether you want to self-host or not. Since this example scenario involves you already having a website and you want to add a blog to it, then you’re likely going to have to self-host WordPress. Initially your costs for hosting may be low, but as your site gains more traffic, the costs will increase. Additionally, self-hosting means you are responsible for keeping current with WordPress updates and also for backing up your data.</span>

### <span style="font-weight: 400;">Customizing</span>

<span style="font-weight: 400;">Once you’ve gotten basic WordPress installed, it comes with a default theme that you’re going to want to change so that your blog matches the look and feel of your existing website. This means either buying a theme that is close to what you want and hacking it apart or starting from scratch and building it from the ground up. Both paths involve your developers cracking open the WordPress source code and navigating the WordPress template + theme systems.</span>

<span style="font-weight: 400;">A simplified process of building a theme to match your existing brand will likely involve the following:</span>

*   <span style="font-weight: 400;">Customizing a header and footer to match your site</span>
*   <span style="font-weight: 400;">Customizing the blog home page design</span>
*   <span style="font-weight: 400;">Customizing the blog post page design</span>
*   <span style="font-weight: 400;">Customizing the category, tag, and author page designs</span>
*   <span style="font-weight: 400;">Customizing the side rail</span>

*   <span style="font-weight: 400;">This can include things like email capture and a search function within your website</span>

*   <span style="font-weight: 400;">Finding, installing, and configuring plugins</span>

### <span style="font-weight: 400;">Plugins</span>

<span style="font-weight: 400;">Plugins are an integral part of WordPress. There are a</span> _<span style="font-weight: 400;">lot</span> _<span style="font-weight: 400;">of them. For example, here’s a WordPress link to its</span> [<span style="font-weight: 400;">most popular plugins</span>](https://wordpress.org/plugins/browse/popular/)<span style="font-weight: 400;">. As you can see, for everything that you want to add to your blog, you’ll need to find the right plugin.</span>

<span style="font-weight: 400;">Let’s just take a simple example and say you wanted to be able to have a contact form, a way to screen for spam in your comments, add Google analytics (we’ll talk more about analytics later), and have eCommerce capability on your blog to sell your product.</span>

<span style="font-weight: 400;">You’ll need to find, install, customize, and configure any plugins you want to add.</span>

<span style="font-weight: 400;">For these capabilities you’ll be adding four plugins:</span>

*   [<span style="font-weight: 400;">Contact Form 7</span>](https://wordpress.org/plugins/contact-form-7/) <span style="font-weight: 400;">- this is one option for adding a contact form. There are, of course, many others. You can read through the descriptions, documentation, and requirements of each one to decide which is best for you.</span>
*   [<span style="font-weight: 400;">Akismet Anti-Spam</span>](https://wordpress.org/plugins/akismet/) <span style="font-weight: 400;">- if you want to add commenting capabilities to your WordPress blog, but are worried about spam comments, you can install this plugin.</span>
*   [<span style="font-weight: 400;">Google Analytics for WordPress by MonsterInsights</span>](https://wordpress.org/plugins/google-analytics-for-wordpress/) <span style="font-weight: 400;">- since WordPress is separate from your existing website, any analytics you have set up for the existing site won’t necessarily translate to your new blog. This type of plugin can add analytics to your blog that are separate from the analytics of your home page</span>
*   [<span style="font-weight: 400;">WooCommerce</span>](https://wordpress.org/plugins/woocommerce/) <span style="font-weight: 400;">- if you want to add eCommerce capabilities to your blog, you can use something like WooCommerce. Again, you’ll need to customize and configure it.</span>

<span style="font-weight: 400;">Out of the box, these plugins may not quite fit with your existing site design. If that’s the case, you’ll need to go into the config / source code to make changes so that everything blends seamlessly.</span>

<span style="font-weight: 400;">You may also want additional plugins for social sharing (Twitter, Facebook, Instagram, etc.) and SEO (Yoast), which will also require some configuration.</span>

### <span style="font-weight: 400;">Engineering considerations</span>

<span style="font-weight: 400;">![Rails and WordPress](https://cdn.buttercms.com/ZCrfuerDT1GwVdi1r18k)</span>

<span style="font-weight: 400;">With the level of customization you’ll likely need with a WordPress-powered blog, it’s important to keep in mind that customization isn’t the only change developers will be considering. Remember, there’s already an existing website built in modern technology. The engineering team has a set of tools and processes to develop and deploy this primary site.  By adding a traditional CMS like WordPress to the fold, engineers now also have to think about:</span><span style="font-weight: 400;"></span>

*   <span style="font-weight: 400;">How to deploy the blog</span>
*   <span style="font-weight: 400;">How will it impact your current deployment process?</span>

*   <span style="font-weight: 400;">Do you set up continuous integration for the blog?</span>
*   <span style="font-weight: 400;">What testing suite will you use? Any?</span>
*   <span style="font-weight: 400;">How will you handle backups for the blog?</span>

*   <span style="font-weight: 400;">Do you put it under source control? What about the plugins?</span>
*   <span style="font-weight: 400;">Who’s going to make future changes and do code reviews for PHP WordPress code?</span>
*   <span style="font-weight: 400;">How will you handle URL setup?</span>

*   <span style="font-weight: 400;">For SEO purposes,</span> [<span style="font-weight: 400;">you’ll see differences with blog.yoursite.com (the WordPress default) and yoursite.com/blog</span>](https://buttercms.com/blog/blog-subdomain-or-subdirectory-hint-one-is-40-better)<span style="font-weight: 400;">. You’ll need to figure out how to get your existing site and routing to play nicely with WordPress. The technical side of this can get a little hairy.</span>

### <span style="font-weight: 400;">Marketing considerations</span>

<span style="font-weight: 400;">Your engineers aren’t the only ones who will be affected by a WordPress integration. From a marketing standpoint, here are a few key things your team will need to consider:</span>

*   <span style="font-weight: 400;">How to ensure you get optimal SEO</span>

*   <span style="font-weight: 400;">WordPress and SEO have a somewhat complicated relationship. There are ways to maximize SEO using WordPress, but your team will need to look into the best plugin options to ensure your blog is getting optimal SEO</span>

*   <span style="font-weight: 400;">Ensuring consistent branding across your site and blog</span>

*   <span style="font-weight: 400;">This ties back into customization, but if you want a seamless experience between your site and blog in terms of branding, you’ll need to do a fair amount of customization</span>

*   <span style="font-weight: 400;">How to reconfigure your analytics on the blog</span>

*   <span style="font-weight: 400;">If your main app or website has a login and user accounts, you’ll need to determine how to configure analytics across everything because WordPress has its own authentication and user system</span>

*   <span style="font-weight: 400;">How to achieve end-to-end insight given WordPress has a different authentication system?</span>

*   <span style="font-weight: 400;">If your main website allows users to log in to an account, then it has its own authentication system then WordPress. So while someone is on the main website and logged in, you can easily gather analytics on them. However, once they go over to Wordpress, that’s no longer the case</span>

### <span style="font-weight: 400;">Post Setup Considerations</span>

<span style="font-weight: 400;">Once your engineers and marketing team are on board and have done all the legwork to add a WordPress-powered blog to your site, there are a [few considerations](https://buttercms.com/blog/wordpress-alternatives-reasons-to-move-on) that remain on the horizon:</span>

*   **WordPress stack ownership**
    *   <span style="font-weight: 400;">WordPress is built on PHP. Who on your engineering team knows PHP? If none, who wants to learn it? If no one, then who’s the poor soul getting this responsibility thrust upon them?</span>
*   **Rebranding**
    *   <span style="font-weight: 400;">Let’s say a year down the road, you decide to rebrand your main site. You’ll need to work with developers and the marketing team to ensure that your WordPress-powered blog customization is also updated to this new branding to maintain consistency across your site and blog</span>
*   **Maintaining consistency overall**
    *   <span style="font-weight: 400;">Any tiny changes you make to your main site (design, header, footer) will need to be changed separately in WordPress</span>
*   **Determining who owns maintenance**
    *   <span style="font-weight: 400;">WordPress does require maintenance, including updates and backups. You’ll need to ensure those tasks are clearly assigned to someone in your organization (or pay a third party to do it)</span>
*   **Considering how you’ll scale as traffic increases**
    *   <span style="font-weight: 400;">Since you aren’t working solely within the container of your site alone, any scaling considerations for your DevOps team will need to take into account your new WordPress server stack as well</span>

## <span style="font-weight: 400;">What does this project look like with ButterCMS from Day 1 to Launch?</span>

<span style="font-weight: 400;">Now that we’ve peered under the hood of a WordPress-powered blog, let’s take a look at what your project would look like using ButterCMS assuming we have an existing Ruby on Rails website.</span>

### <span style="font-weight: 400;">Initial Setup</span>

<span style="font-weight: 400;">First, you’ll need to set up a ButterCMS account. You can do this for</span> [<span style="font-weight: 400;">free</span>](https://buttercms.com/)<span style="font-weight: 400;">.</span><span style="font-weight: 400;"></span>

<span style="font-weight: 400;">Then run the</span> [<span style="font-weight: 400;">Rails Generator</span>](https://buttercms.com/docs/api-client/rails#BloggingUsingTheGenerator) <span style="font-weight: 400;">to create URLs, application code, and Rails templates.  Note that these templates live in your existing website’s codebase. Butter is a headless CMS, it doesn’t control the look and feel of your blog, your website controls that. Butter simply provides the raw content via a Content API.</span><span style="font-weight: 400;"></span>

<span style="font-weight: 400;">Here’s a [60 second video](https://www.youtube.com/watch?v=q6pHWj-92YI) showing the entire process.</span>

<span style="font-weight: 400;"><iframe width="560" height="314" src="//www.youtube.com/embed/q6pHWj-92YI" allowfullscreen="allowfullscreen"></iframe></span>

<span style="font-weight: 400;">Butter provides your content editors the same easy-to-use experience as WordPress.</span>

<span style="font-weight: 400;">![Butter blog](https://cdn.buttercms.com/JMsj82qCRv64RhVqHfjy)</span>

<span style="font-weight: 400;">Butter also provides built-in SEO, scheduling capability and more. No plugins to install and hassle with.</span>

<span style="font-weight: 400;">![Butter metadata](https://cdn.buttercms.com/xgrv2jaIQuS3WkpGBjDB)</span>

<span style="font-weight: 400;">![Butter SEO](https://cdn.buttercms.com/jAHpkMqQRiU6MsN2Fwu6)</span>

### <span style="font-weight: 400;">Engineering considerations</span>

<span style="font-weight: 400;">![Butter and Rails](https://cdn.buttercms.com/EAZEyYkVSgpTADr4LMNS)</span>

<span style="font-weight: 400;">Now let’s look at the same engineering considerations we did with WordPress and see how they look when using Butter.</span><span style="font-weight: 400;"></span>

### <span style="font-weight: 400;">How do you deploy this site?</span>

<span style="font-weight: 400;">You deploy it the same way you deploy in your current process. ButterCMS melts into your existing tech stack. Your deploy process stays exactly the same.</span><span style="font-weight: 400;"></span>

### <span style="font-weight: 400;">How does using ButterCMS impact your current deployment process?</span>

<span style="font-weight: 400;">It doesn’t.</span>

### <span style="font-weight: 400;">Do we need to put this under source control?</span>

<span style="font-weight: 400;">Assuming your existing app uses source control (and you are, right? ;) ), source control automatically happens since the code to integrate with Butter’s API lives in your existing application.</span>

### <span style="font-weight: 400;">How do we ensure the URL setup makes sense?</span>

<span style="font-weight: 400;">Same as the rest, this part is easy, as it’s part of your app so your app controls the URL’s. Butter was designed to make achieving your blog at www.yoursite.com/blog dead simple.</span><span style="font-weight: 400;"></span>

## <span style="font-weight: 400;">Marketing considerations</span>

<span style="font-weight: 400;">Your marketing team will also have questions, but Butter makes the transition to its CMS smooth.</span>

### <span style="font-weight: 400;">How do we optimize SEO?</span>

<span style="font-weight: 400;">Butter allows you to directly manage metadata and SEO in the pre-existing templates so you can add tags, descriptions, metadata, and other information with ease. Butter’s transparency makes it easy to see exactly what you’re doing.</span><span style="font-weight: 400;"></span>

### <span style="font-weight: 400;">Do we need to reconfigure our analytics on the blog?</span>

<span style="font-weight: 400;">No. Existing tags in your main website layout carry over to your blog automatically. Also, if your main website or app has login capabilities and user accounts, you don’t need to worry about integrating analytics across everything. People viewing your blog will be authenticated with your existing user accounts database since the blog and site are all part of the same app.</span><span style="font-weight: 400;"></span>

## <span style="font-weight: 400;">Post-setup considerations</span>

*   **Rebranding**

*   <span style="font-weight: 400;">Not a concern. Changes made to your main website layout / branding automatically apply to your blog because the blog templates live within the same code base.</span>

*   **Maintaining consistency**

*   <span style="font-weight: 400;">Not a concern. Remember, it’s one app, so you don’t need to worry about consistency between two separate things.</span>

*   **Determining who owns maintenance requirements**

*   <span style="font-weight: 400;">ButterCMS is SaaS meaning we handle the maintenance of the CMS platform for you.</span>

*   **Considering how you’ll scale as traffic increases**

*   <span style="font-weight: 400;">Same as the previous question, ButterCMS handles this for you and we make doing it at scale a top priority. Our platform has served over a billion requests.</span>

## <span style="font-weight: 400;">Conclusion</span>

<span style="font-weight: 400;">In this article, we’ve taken you through the inception of a project (adding a blog to your existing site or app) through two solutions: a traditional CMS like WordPress and a headless CMS like Butter. There are three key areas where you can see significant differences between these two solutions:</span>

### <span style="font-weight: 400;">Customization</span>

<span style="font-weight: 400;">A traditional CMS is a massive piece of software. WordPress has over 1.5</span> _<span style="font-weight: 400;">million</span>_ <span style="font-weight: 400;">lines of code. WordPress comes predefined, with tightly coupled templates, logic, and database. You start with everything -- often more than you need -- and then you customize and hack it to mold it to your needs.</span><span style="font-weight: 400;"></span>

<span style="font-weight: 400;">ButterCMS is the opposite. You start with a clean slate and build up. Instead of hacking the guts and actual source code of the CMS, you use Butter’s content modeling to create exactly what you need. It was built for that purpose, with no assumptions or limitations for the kinds of content you want to manage.</span>

### <span style="font-weight: 400;">Hosting</span>

<span style="font-weight: 400;">A traditional CMS requires you to download and host and maintain yourself. As an alternative, you can pay a professional WordPress service to do this for you.</span><span style="font-weight: 400;"></span>

<span style="font-weight: 400;">ButterCMS is delivered as an API-driven service, and has nothing for you to host or maintain. Butter hosts the data, the CMS dashboard, and API platform. You simply query our API to [pull your content into your application](https://buttercms.com/blog/how-to-add-a-powerful-blog-to-your-ecommerce-site-in-minutes).</span>

### <span style="font-weight: 400;">Consistency</span>

<span style="font-weight: 400;">A traditional CMS is separate from your existing site or app. Any changes you make (branding, etc.) will need to be made twice: on your existing site and within WordPress. Additionally, any login/user info you have on your main site will differ from that of WordPress, which has its own user and authentication system.</span><span style="font-weight: 400;"></span>

<span style="font-weight: 400;">ButterCMS slides into your existing site or app. Changes to your main site will be reflected in your CMS. And you don’t need to worry about login for your blog: people viewing your blog will be authenticated with your existing user accounts database.</span><span style="font-weight: 400;"></span>

<span style="font-weight: 400;">Unless you have developers who have the time and know-how to work fluidly with a traditional CMS like WordPress, there is an unavoidable time-sink involved with using a traditional CMS that requires you to get under the hood to really customize your blog. A headless CMS like Butter means a shorter project timeline and a lighter burden on your developers and marketing team.</span><span style="font-weight: 400;"></span>