Statamic vs WordPress – Getting Familiar and Understanding the Differences

If you are a WordPress developer, no doubt you have lately seen the drama between Matt Mullenweg and WP Engine. I won’t rehash the whole situation, but suffice to say I’ve talked to a lot of people who are looking around for alternatives to WordPress in an uncertain future.

Statamic is one option that frequently makes the shortlist. It’s based on Laravel, so you are still in the PHP ecosystem, though the code will look very different ( and objectively better 😉 ) than the WordPress code you may be used to.

If you are familiar with Advanced Custom Fields (or similar) Statamic will feel very familiar. At its base it allows easy creation of custom content types with mappings to various custom field arrangements.

Statamic also supports “sets” which allow you to define a combination and configuration of fields that can then be attached to multiple content types and used as subfields in the more advanced field types that work like the “repeater” or “flexible content” field from WordPress.

Who is Statamic for?

Before going further into all the features of Statamic that make it great, I do want to make an important point – Statamic is not going to be a great fit for everyone in the WordPress ecosystem.

If you are someone who uses a lot of structured custom fields, or creates custom dynamic blocks and locks down the block editor with custom color palette, reduced settings, etc. Statamic may be a breath of fresh air.

If you find yourself craving the ability to deliver clients a web building interface with guard rails – where clients can simply arrange pre-existing sections you have built bespoke for them, again Statamic will excel at this.

Although a lot of attention is on the WordPress to Statamic pipeline, I also think if you are a Drupal developer who uses the paragraphs module to deliver a page building experience to your clients, Statamic could be a great option to look into.

Who is Statamic NOT for?

The beauty of Statamic is that in many ways it gives you a blank slate to create really nice tailored experiences. To do this, however, you must be comfortable at a bare minimum templating with something like Blade, Twig, or PHP (Statamic has its own templating language that is easy to learn if you know any of these others, and also supports blade out of the box).

If you are someone who does a lot of the site development process using tools like Elementor with extremely granular layout controls for every element, Statamic may not be a good choice.

I say “may not” because I know several people who have basically rolled their own kind of “site builder” interface using the custom fields within Statamic, but I believe this goes somewhat against the grain of what Statamic is really good at.

Also, if you currently use Elementor or a similar solution, but are craving the ability to lock down more controls and create easier content management for your end users, Statamic may be a great next move to achieve this.

Feature highlights

There is way too much to cover in a single blog post to give a wholistic view of Statamic, and it already has excellent documentation that I highly recommend browsing if this post piques your interest.

That said, I wanted to call out a few features that are highly relevant for those users coming from WordPress and looking for a more developer-friendly workflow.

Custom Fields

Statamic has all the normal basic custom fields you would expect (text, number, select, etc), but it has a number of unique ones too:

Bard – Bard is probably the closest thing to Gutenberg out of the box, but it is still very different. It is essentially a rich text editor, but with the ability to add components anywhere within the content. These components can have “sets” of any custom fields you desire. For ACF folks, think of it as a WYSIWYG field, but with a flexible content field also built right in.

If you’re curious what this looks like to template, you’ll basically just create a switch. As your sets grow though, you can also separate each into a partial for more organization:

{{ bard_field }}
 
  {{ if type == "text" }}
    <div class="text">
      {{ text }}
    </div>
 
  {{ elseif type == "poll" }}
    <figure class="poll">
      <figcaption>{{ question }}</figcaption>
      <ul>
        {{ options }}
          <li>{{ text }}</li>
        {{ /options }}
      </ul>
    </figure>
 
  {{ elseif type == "hero_image" }}
    <div class="heroimage">
      <img src="{{ hero_image }}" alt="{{ caption }}" />
    </div>
  {{ /if }}
 
{{ /bard_field }}

Replicator – Replicator is the closest thing to flexible content, or the paragraphs module. It uses the same idea of sets as Bard, but is a section builder and does not include the WYSIWYG editor.

Grid – The grid field is essentially like an ACF repeater field, and works great for structured content or tabular data.

Check out the documentation for a comprehensive list of fields. There are tons! These are just a couple of the core “meta” fields that are very useful when building tailored page editing experiences.

Flat file storage

A huge difference between WordPress and Statamic is that Statamic uses a flat file architecture by default instead of a sql database. This makes management of the repository and any backups much simpler.

You can either keep the entire content directory in version control, or version control all the site files, but leave out content which still allows for super easy backups by just downloading the content directory and storing it somewhere.

Forms

Forms have always been a bit annoying in WordPress. Gravity Forms is excellent, but expensive. Many other plugins come with a bunch of extra junk and may also have paywalled features that make for a frustrating experience.

In Statamic, forms work just like any other content type, but the custom fields supported include things like “input”, “textarea”, etc. It is very easy to build a standard contact form with no additional plugins.

Check out the forms documentation to learn more about how all of this works under the hood in Statamic.

SEO

Yoast is probably the defacto standard for SEO in WordPress. Again, this is a great plugin, with excellent functionality, so props to the team, but it also adds a ton of noise to the admin – including prompts to upgrade to pro.

SEO plugins for Statamic work differently. They simply add a bunch of extra custom fields pre configured to support things like meta tags and json-schema. This requires a bit more dev knowledge to implement, but the admin result is extremely clean (and free options are often enough for smaller sites).

This super simple and free SEO add-on gives you a jump start (without a bunch of extra admin noise).

Live Preview Editing Interface

Statamic provides a live preview editing mode with a split screen between the custom fields interface and the rendered front end of the site. This also supports responsive tablet/mobile views as well.

While this is not necessarily as robust as Gutenberg, this style of builder/preview is extremely intuitive especially for clients new to the system.

Hosting a Statamic site

While in many ways the Statamic architecture is more straightforward than WordPress (no database needed by default), unfortunately hosting tends to be a little bit less straightforward. WordPress has benefited from the 1-click install and its overall ubiquity, making hosting painless.

If you are comfortable setting up a basic VPS and hosting Laravel sites, Statamic will be easy for you. If you are used to managed WordPress hosting like Pantheon, WP Engine, etc. you will likely want to look into a paid platform like Laravel Forge to assist with deployments. VPS management can be a bit of a rabbit hole, so tools that streamline this will be well worth it in the long run.

Statamic does have a good list of supported hosting platforms to check out as well.

Also of note, Laravel Cloud has been in development awhile and I have to assume will be launching soon. I hope this will be a slick way to host Statamic sites all in one platform moving forward.

Closing thoughts

I am a big proponent of Statamic and will be using it for a lot of my client sites and personal sites in the future. I think the developer and client experience is one of the strongest out there currently.

That said, it won’t completely replace WordPress for me. There is still huge value in the massive customer and developer base of WordPress.

For readers, if you are someone who has wanted to lock down the WordPress editor more and are comfortable doing a lot of your site building in a code editor (versus a page builder plugin) Statamic may be just the ticket!

Especially for anyone with an interest or experience in Laravel, I highly recommend checking out Statamic.

A great place to get started is the Statamic tutorial series on Laracasts. It’s not free, but Laracasts has really great developer content (it’s not your average Udemy course), so its worth at least checking out for a month or two if you can swing it. Otherwise, the Statamic docs are also a great place to start.

Leave a Reply

Your email address will not be published. Required fields are marked *