DEV Community

loading...
Cover image for Why I'm dropping WordPress  for Strapi hopefully forever

Why I'm dropping WordPress for Strapi hopefully forever

Antonio Djigo
WebDev from the Canary Islands
・5 min read

Well, it's been a long time since I haven't made any posts, and I just felt like I should speak a bit about this CMS I just had to face at work.

A gif saying hi

First of all, you may already know what a CMS and WordPress is. If not, here you go:

A content management system, often abbreviated as CMS, is software that helps users create, manage, and modify content on a website without the need for specialised technical knowledge.

In simpler language, a content management system is a tool that helps you build a website without needing to write all the code from scratch (or even know how to code at all).

source: https://kinsta.com/knowledgebase/content-management-system/

Then there's WordPress, which basically is THE CMS of the internet. About 40% of the web is built as a WordPress site. It is free, really well maintained, and has a lot of features.

So... why would I be keen to drop it? It sounds great, right?

I'll order them from 0 (Not a big deal) to 6 (Made me run away):

A gif whipping WordPress

0 - It's written in PHP

As I said, not a big deal. With the years of practice I've kind of liked PHP a lot, but, it's far away from becoming my favourite language, as for probably many of you(Right know they are Ruby & Golang).

1 - It could be faster

WordPress is not deadly slow or anything. Not IF you properly know how to manage it, how it should work, and how to keep it clean. Sadly, 95% of the projects I've worked with that uses WordPress are already beaten to death. Hitting 100 LCP scores so Google Core Vitals boosts your page is kinda hard. It should not be like that.

A gif of a lizzard trying to run fast

A fresh one its great, but, once you start adding plugins and functionalities, you really need to know how to handle assets and stuff so it works decently.

2 - It's hard to use the tools I want in the front-end

If you've worked with WordPress, you may know how is it to integrate for example React, enqueue scripts, use other front-end frameworks (not that cool). It can be made, for sure, but it is far away from being one of the most pleasant tools to integrate something into.

3 - Constant updates and high vulnerability

WordPress is also known for being kind of susceptible to having security issues. One of the reasons is that it is so open (it's an open source project actually), so highly customizable, and there are sooooo many unmantained or flaky plugins around, that it is hard to mantain your site fully secure. Specially when you also have to deal with clients touching around your WordPress guts.

Guy breaking a door easily gif

Your Wordpress security door without WordFence

4 - Dev community treats WP devs like kids

This is probably one of the biggest reasons not many speak about. You've probably heard some dev around saying comments like ("Ugh, WordPress? Never", "Everyone can use that", "That's not programming"... etc etc). WordPress it's way underrated, both inside the community, and in the business field. Probably it's one of the worst-paying jobs you can get as a Developer. And all of this, is because people are not well informed about it.

The point of WordPress is that it's a tool made so everyone can make its business, website, blog, real. Easily, happily, and without expending too much, and it's exceptional at it, but it also made people think it's kind of worthless when you want "something else", which is a lie, but it's already at the bottom of the well and no one wants to look if it's still worthy.

Kids laughing at Nelson gif

5 - Tired of always doing the same thing

Probably, the most disappointing thing of WordPress is that you may feel that you are working in a factory, always doing the same thing. Wax on, Wax off. SEO, Cookies, Add new stuff to the theme, performance, repeat. Always the same thing for every project.

Also, as WordPress being underrated + not the most loved tool in the Dev Community, big companies and projects decide not to include this tool to its stack. After all, a big percent of the WordPress around are blogs, news, and similar. It's hard to find a project that I'd love if it's made in WP.

Wax on wax off gif

And I'll stop here, so I can speak you about the new alternative I found, Strapi.

Strapi logo

Strapi is a headless CMS, which means that it has the power of a CMS, but without depending on a front-end of its own. It will basically work as a REST API.

In a traditional or monolithic CMS like WordPress, everything is packaged together: the backend is rigidly and intricately linked to the design frontend part of your application. A headless CMS like Strapi focuses on its primary mission: managing content. It does so by storing content in a database, providing an interface to manage content, and exposing it with an API, to make it available to any frontend.

Example of different type of CMS image

WordPress can do this too, yes, but not by default. This is not the reason to flee though.

It's also really flexible. If you had to deal with WordPress, you may know how tedious it is to work on the structure of the content. First you have to depend on Advance custom fields plugin to create custom contents, registering custom post types, creating relations between them... (ew.)

An image of Strapi creating fields

What you can do with the Advanced Custom Fields plugin for WordPress, you can do it natively in Strapi. It is customisable without twisting the code. You decide on your API and data structure. You can customise anything through the API or editing the files inside your code.

Also, it is faster. It's made on Node.js, which basically gives you dynamic refresh of pages, and well, Node.JS is way faster than PHP because it is asynchronous.

In my humble opinion, it's prettier than WordPress. For many this would not matter at all, but, for me, it does. It is a personal opinion.

An image of the Strapi interface

An image of the Strapi interface

The final point that made me decide was that is really easy to integrate with modern tools, like Next.JS, Gatsby, Nuxt, Flutter, Hugo... using GraphQL. See more integrations here.

It has nothing to envy WordPress. Plugins, highly customizable, free, and open source.

Check it out at https://strapi.io/

Discussion (45)

Collapse
bahamut657 profile image
MaDPaPo

From a NodeJs dev, php speed is not comparable to NodeJs speed...so the sentence where you said Nodejs is faster than PHP because it is asyncronous is a nosense. I'm using Strapi project too, but at least for the moment, there are some cons:
It is less stable than wordpress
require a lot of settings.
Some basic functionality(such navmenu) are not natively supported. You have to install plugin in order to manage it
At the end, it does not offer any Frontend UI(backend only) so it is,for now, more expensieve and less stable than WP and there are less provider that offer nodejs hosting

Collapse
nicolus profile image
Nicolas Bailly • Edited

From a NodeJs dev, php speed is not comparable to NodeJs speed...

It doesn't seem completely insane to compare them. There is a lot of overlap between nodeJs and php (wether it's for building a website or a general purpose CLI tool, many of the things written with one could be written with the other).

The thing is, when you're building a website, the backend programming language is almost never the limiting factor. I suspect PHP8 and NodeJS 16 are roughly equivalent in terms of performance (ie: they're both more than fast enough for web usecases, and both a whole lot slower than Rust, Java, or Go), but the truth is I don't care, because the bottleneck is always on I/O operations : Database Queries, APIs, reading or writing files and so on...

I don't have experience with worpress but I suspect if it's slower than other solutions it's probably because of how it handles data in the database, and bot because it's written in PHP.

Collapse
brownio profile image
Antonio Djigo Author • Edited

For me it is, if it takes for me less time to see the changes, even if the only difference is that is is asynchronous, it works faster to for my eyes and the eyes of my users, but I get ur point.

Never noticed navmenu thing, as I normally use a front-end tool like NextJS to handle these things

Collapse
greenroommate profile image
Haris Secic

PHP on nginx is technically asynchronous (or any other server based on such methods) and so are the proper drivers written in C that are just being interfaced to PHP. Most of simple PHP code (which is most of pages) is simply C calls from PHP. You can measure speed yourself by using simple code without any framework in both Node.js and PHP. You'll see some surprises when you actually start measuring yourself instead of just copy pasting statements from other people. I can't really speak about frameworks as both of those languages are away from my scope of interest but I did use them. A good point in terms of "speed" would be to parse 1GB XML (or some similar format) through both languages and then tell me how good node.js is.
I've worked with quite a number of tech stack and by far the worst one I've personally used was Node.js. Anything above simple REST API (or GraphQL) processing small requests (and returning small portions of data) was quite painful. And given security issues in my eyes node.js goes hand in hand with PHP except that with PHP I could actually load 1GB file and process it without server CPU hitting 200%. I think most people comparing these things have no idea what their speaking of they just read stuff and accept as true without any interest going into details of why and how.
I get that you plug in WP and Strapi and see Strapi as faster but that's not even close to enough to compare languages like that.
To be clear I dislike them both equally so there's no biased response toward the PHP.

Thread Thread
hasnaindev profile image
Muhammad Hasnain

Amazing answer! I love unbiased views that are supported by actual statistics and experience.

Collapse
shealavington profile image
Shea Lavington

Did you consider all your headless options or jump straight to Strapi?

I always found I hit a pay-wall, there's always something that needs paying for with them.

There are a few other alternatives that work just as well, in some cases better, and without ANY pay-walls—everyone should make sure to research all alternatives to Strapi before committing to it 🙂

If Strapi is for you, great, however there are some more free alternatives with just as much oomph!

Collapse
adampatterson profile image
Adam Patterson

Prismic looked to offer a lot for free, worth a look for sure.

Collapse
brownio profile image
Antonio Djigo Author

Only Ghost, but it does not have internationalisation. :C

Collapse
mickaelchanrion profile image
Mickael Chanrion

You have Prismic for multilingual sites

Thread Thread
brownio profile image
Antonio Djigo Author

Strapi recently added this to its list of features, but thanks, will give it a look :)

Collapse
alescgithub profile image
Alesc

Which alternatives?

Collapse
brownio profile image
Antonio Djigo Author

jamstack.org/headless-cms/ Here you'll see the alternatives

Thread Thread
alescgithub profile image
Alesc

Good! Thanks

Collapse
shealavington profile image
Shea Lavington

I advocate quite a bit for Directus, no pay-walls, forward thinking, your data is your data, but, Antonio posted a good resource to look at!

directus.io/

Collapse
lowell130 profile image
Stew

Strapi Is great i discovered it a year ago, it's headless CMS and now I know that WordPress can be use like a headless cms. WordPress Is a very powerful system, from my side the majority problem of it is MySQL

Collapse
brownio profile image
Antonio Djigo Author

Agree, although they are dropping Mongo support in a bit, if that's the case that brought you to Strapi. I'm currently using Postgre

Collapse
damienpirsy profile image
Matteo Vignoli

Using Wordpress as headless CMS is like buying a sportscar, covering it with a sheet and using it only for the trunk storage.

Collapse
larsejaas profile image
LarsEjaas • Edited

Although the analogy actually is quite funny 😄 The ironny is that headless Wordpress can actually and up being the CMS that pushes JamStack mainstream. If you take someone with NO coding skills whatsoever and ask them to publish something great looking on a Jamstack page I would say headless Wordpress is a great option.
You can do instant previews and the Gutenenberg editor makes it possible to create some great looking content - if the developer that made the frontend has integrated it correctly. There IS a lot of companies where even stuff like MarkDown is to complicated to work with...

Collapse
lowell130 profile image
Stew • Edited

Bravo, classica risposta da programmatore

Thread Thread
damienpirsy profile image
Matteo Vignoli

Bravo, classica risposta da frustrato

Thread Thread
Sloan, the sloth mascot
Comment deleted
Collapse
tanzimibthesam profile image
Tanzim Ibthesam

The thing is if WordPress does your job why switch to something due to what people said? Isn't it being manipulated ? As much as I don't like WordPress for web applications for many things like blog it's definitely go to thing. WordPress is definitely not underrated it's quite popular and almost go to solution for every almost every small business Google blogs Microsoft blogs, Techcruch are using WordPress. For making money with WordPress you need to know Theme and Plugin Development then you can work for firms who make WP themes and plugins. Yup for building a more custom thing with unique features you need to switch. But if you are switching to something why not built something like with Node/Django/Laravel where you can have custom control of everything rather than going for a hyped tool. Anyways

Collapse
fr0tt profile image
fr0tt

If you want more control and already know Laravel I can recommend Twill for that matter.

Collapse
ivanjeremic profile image
Ivan Jeremic • Edited

For me both are a nogo anymore, WP is very limited and Strapi not stable at all and missing important things. In the end what I always end up write everything In NextJS + database of choice. If client or I need visual admin backend then I make a protected route.

Collapse
brownio profile image
Antonio Djigo Author

What do you mean by not stable, and what do you miss about it?

Collapse
rodolfoberrios profile image
Rodolfo Berrios

Interesting that you mention PHP but you never put context. WordPress core was made ages ago and is not fair to mention PHP as a cause of their bad architecture.

P.S. You may want to discover the world of async php and application runners.

Collapse
avirankatz profile image
Aviran Katz

I've been using strapi for a production web app (for over two years), and I highly recommend it.

Collapse
aliakakis profile image
Antonios Liakakis

We used strapi for a cms based website. Its an adequate option if you are building something simple. Which means that your models are not overly complex and you do not need too much customization. Moreover, it lacks certain plugins which you might have to build by yourself.

For a free product is quite good but have a look around before you commit.

Collapse
hasnaindev profile image
Muhammad Hasnain • Edited
  1. I don't even know why you mention PHP, lets drop that.

  2. It could be faster but developers or users make it slow, that doesn't mean WordPress is slow.

  3. No. Not if you know what you are doing. Enqueueing scripts is simple WordPress mechanic to insert script tags. You could use WebPack and other tools for code splitting, React, Svelte, Vue and almost everything else, that's what makes JS ecosystem so amazing!

  4. I don't see any evidence for that. Unless you use low quality or nulled plugins, then sure. Even Facebook was storing passwords as strings up until a few years ago. Hackers are going to find a way in anyway. Although that doesn't mean one should not take steps to make the platform secure.

  5. Peer pressure. "Senior" developers. I understand. Use right tool for the right job. I'm a MERN stack developer turned a WordPress and Shopify developer. Don't give any thought to what others think. People are building multi-million dollar businesses on these platforms even in 2021.

  6. Most of the time is spent on code-maintenance rather than creating new and exciting features. Get used to it. If you are creating something from scratch and doing the same thing the same way, the problem is yours. You can make it fun if you break the norms and the conventions.

Although, I'm not against Strapi. I love WordPress and Strapi both, they're amazing tools. You could use WordPress as a headless CMS too. It really depends upon your needs and what you require. Keep writing!

Collapse
codyseibert profile image
Cody Seibert

So I recently wanted to setup a site for my wife. I started looking into Strapi because I thought going headless CMS would give me more flexibility on the frontend, but after realizing how much extra time I'd have to spend on building and designing the frontend, I decided to just try wordpress instead. I was able to setup a wordpress site in 5 minutes on a VM which my wife can now customize how she wants. People hate on wordpress, but it's a great tool to get quick results. JAM stack is a cool concept, but wordpress is live which means updates happen instantly when I click the "publish" button on my wordpress site vs having to regenerate my entire Gatsby or next site. Coding is all about tradeoffs, and the time saved using wordpress is nice.

Collapse
przemek profile image
Przemyslaw Michalak

If you want to switch to strapi you should definitely have a look at this:
dev.to/przemek/front-end-studio-po...
This tool has be designed exactly for it
Here is also example of use case:
dev.to/chrisczopp/how-to-build-a-f...
Let me know what do you think

Collapse
mkimont profile image
Matt Kimek • Edited

You put WordPress in cache, not install plugin which you don't need (write your own is easy) and you have security, Google high score as no additional css/js.
Cached version are faster than any js sites (read about preload)
You devs always have high specs machine and don't see how this js sites are slow for customers.
Node is good for enterprise sites as you need to maintain this npm packages which you using which have security flow really often (read about that too)
Plus most important devops side of security node.js : find me a devops node.js engineer who know how to secure node ex. FS ( good article about in check airbnb blog)
Plus info about node servers and troubleshooting them - not a lot of them.

This seems like an advert for me...

PS. I'm not fun of any framework, any npm packages, any Web tools. if you don't need to use them, don't use them

Collapse
wa7sa34cx profile image
Alex Black

Why did you add so many annoying GIFs? 🤬

Collapse
raphaelrdc profile image
raphael-rdc

I tried leaving Wordpress too, but my customers just love it.
I care very little for the opinions of other developers and I care a lot for my bank account balance, so Wordpress is fine for me.

Collapse
larsejaas profile image
LarsEjaas

I actually feel headless WordPress would be a great option for companies with very limited tech skills. EVEN THOUGH it just feels kind of odd in the eyes of a developer. But yeah! I totally agree with you! More focus on the end-product and less fighting over the tools!

Collapse
raphaelrdc profile image
raphael-rdc

I think the question is not about the company, but about the market. It makes no sense to offer a highly technological product that your customer cannot afford.
Before thinking about technology, I believe that several issues have to be considered, such as the country where your company operates.
I completely understand the limitation of developers to think more about business and not just follow orders from their manager or their friends in the community. It is very common in companies with large technological skills where I see it to be similar to the behavior of industrial workers.

Thread Thread
larsejaas profile image
LarsEjaas

That makes so much sense! And tech shouldn't be used for the sake of tech, but used when it offers value to your customers. On the flipside I do feel that more interest is emerging in Denmark where I live for JamStack and pages made with JamStack principles. WordPress is still great because it offers a really low entry barrier. As a developer myself I would love to be able to build JamStack pages with a low barrier to the end-users of the page. I genuinely feel headless WordPress IS moving towards this goal.

Collapse
solisoft profile image
BONNAURE Olivier

You could check my open source CMS called fasty.ovh it's based on ArangoDB & openresty/ Lapis
I wanted to create a CMS using this underrated stack ;)

Collapse
arvindpdmn profile image
Arvind Padmanabhan

PHP is still the easiest to deploy on shared hosting. Many shared hosting providers don't support Go, Ruby or Node.js. Python support is often limited to CGI!

Collapse
andrewbaisden profile image
Andrew Baisden

Some valid points here i want to play around Strapi and get a feel for it currently trying sanity.io

Collapse
mikem1 profile image
Mike

Was impressed with strapi at first but just like iPhones as soon as you detour off the beaten path hit the wall of the fishbowl

Collapse
adammarton profile image
Adam Marton

sounds like you don't know what are you talking about

Collapse
lewiscowles1986 profile image
Lewis Cowles

Oh man... I hope you're happy with Strapi, but the "other Devs hate on it..."

Who cares about those Devs. Just avoid talking about WordPress with them.

Collapse
kamittransient profile image
kamit-transient

Is there any features lock-in in open source community version?