I started separating the admin from the "theme" by using the wordpress rest api (admin running in a subdomain). While this might seem overkill at first but I find that there's a lot less documentation to read and I can reuse a lot more code from other projects without any changes.
I love using the rest API like this. The main downside is you lose the inability to use many Wordpress plugins.
I.e., if your users want to insert a poll into a page, before you could probably install a plugin that integrates with the editor and admin panel. With this approach, you'll (probably) need to build that functionality yourself. So, your content and users need to be just right to do this.
Most of my WP sites don't do a lot. Can you use the rest API to handle the contact form and search? that was I could just use a static generation from wp itself. The wp admin wouldn't even need to be publically accessible then.
Do you have any detailed notes on how you set this up? I haven't used WP in a long time, to be honest, so not sure how their rest api works? Is it straight forward? Would love to read about this setup you do, sounds great.
The REST API is included with WordPress 4.7+ and on by default. Docs here: https://developer.wordpress.org/rest-api/ (if you find anything missing, I'd love to know)
This looks pretty cool. A couple years back, I built a similar starter theme and CLI package for WP dev. Back then CoffeeScript and Grunt were the norm, so it's a bit outdated now. But the CLI actually grew from a scaffold like you have now, to being able to deploy over SSH using Capistrano, database and all, which was really nice.
I don't do much WP dev anymore (thankfully moved to using Rails, Go and Node), but when I do I usually use that old project for deployment. I'll be sure to check this out, as the services architecture looks like a nice change of pace. I tried Bedrock/Sage in the past, but it was just too much for me and made some things harder than they should be.
Added links to my old projects below in case anybody is curious,
One thing I really find myself having a hard time working with WordPress themes is that many of them are bloated and require so many plugins. The amount of css/js files that are required to load a page in a premium WordPress theme averages around 30+ files (at least from what I have seen working with WordPress themes).
>The amount of css/js files that are required to load a page in a premium WordPress theme averages around 30+ files
HTTP/2 alleviates most of this, but there are plugins that can concatenate and minify css/js. It is a shame though that most of the attractive themes are so bloated.
> It is a shame though that most of the attractive themes are so bloated.
The target audience just doesn't care (or dont even know). Theme authors want to solve as many problems as possible to increase the chances someone buys their theme. It's in their best interest to sell something with everything but the kitchen sink (V5.0 now with kitchen sink!)
Sure. But it's more than that. For example, they take 3 pieces of functionality and make them all emit separate js/css. Often with copy/paste code duplication for common functions. Or pull in some huge 3rd party library to use one tiny piece of it that you could do in vanilla js anyway.
A simple (to install) solution for this is Google PageSpeed Module - https://developers.google.com/speed/pagespeed/module/. It's like a proxy in front of your website that will serve optimized / minified / concatenated versions of the theme and such. It inlines small stuff, resizes images where needed, all that good stuff.
I don't have it on my current webserver though, I'm not comfortable manually having to compile nginx, it seems like there's a lot that can go wrong there.
I built a custom gulpfile that uses composer to manage the updating of WP and plugins along with building and FTP transfer a while back that I've been using for about a year. I should have built a swanky page and open-sourced it then :(. Composer sure makes WP development much easier to integrate with build systems. This is totally the way to go as long as clients prefer using WP to something more full-featured or server intensive. I'll have to check this out when I decide that webpack has some advantage over gulp/rollup. Right now I'm able to get smaller packages and do more easier with gulp, so I'm in no hurry.
I'd say "sort of". It does support custom field types and custom post types. But you have to either write code, or use some 3rd party plugin to manage/use them.
Same here, I built and oversee 3 WordPress online stores that together do more than $1m/month during peak season (summer).
WordPress has the ability for pages as well as posts (along with versioning of those items). User account management with permissions. Custom fields. What exactly does "true CMS" mean?
And I'd argue the easiest-to-use admin area out there, or so my clients lead me to believe.
I have moved wordpress stores to other e-commerce platforms and seen an instant improvement in sales.
Thats why wordpress is a blog and not a CMS because the only content it handles well are blog posts and basic wall of text pages. A CMS will not limit or put a definition on the content it manages, thats up to you. As an example, how complicated would it be to model the content of a store, store manager and then the relation ships between them, this is basic stuff for any other CMS.
If you don't show your clients anything else they will think its great. My clients say the same thing about wordpress, until they see something else then they wonder why anyone uses wordpress.
I think this is an outdated perspective. You can easily train the WordPress CMS to handle any content you could possibly want to throw at it, including your above example (which would take like ten minutes, tbh), for sure. Took a bit of time to figure out all the moving pieces, but WP is a fully mature CMS at this point.
Interested in what other CMS's you would recommend? You aren't being very specific.
Which platforms? What was different about them that made them better than WP?
>because the only content it handles well are blog posts and basic wall of text pages
Unless you use post types. Now since 4.7 post types can apply to everything, including page templates. Have you tried using this and failed before you made your comment?
That's like saying WordPress is a great CMS to manage the content for your forum, using a plethora of great plugins or custom post types to output the content in a forum-like view.
I've used WordPress for years. It's great for a simple blog, but not any kind of complex CMS, IMHO. After adding a few plugins, maintaining it is a nightmare; and I won't get into the database design underneath.
Another vote for Wagtail: my team has moved to it and have found it to be wonderful. It is the first time our tech, content, UX and marketing teams all agree on a CMS being wonderful. Streamfield is an absolutely killer feature. Our writers love the editor interface, which was clearly designed by and for content creators, and not by a bored developer like me.
Check out Wagtail. It takes a little bit more planning to get started, but wow, does it pay off in the long run.
It is truly free and open-source, released under the BSD license.
Good question. I like perch its quick and easy to build with, I moved from wordpress to perch last year and it has cut development time in half.
It's super flexible no need for dodgy third part plugins that's no longer maintained. Instead of plugins I just build everything I need custom with the tools perch provides, I end up with something thats perfect for the client and its a lot faster than trying to modify some third party plugin.
Clients are initially scared of perch, they want wordpress because thats what they are used to and "thats what every one else uses". Five minutes into their perch training their attitude is "This is great. Why does every one else use wordpress?".
Sure its not free like wordpress but its only £50 and its worth every penny, you will easily make that money back in development costs in a day.
It meets the original definition of open source as in the source code is open and modifiable, you know the opposite of closed source.
If you mean the OSI definition of open source which defines how free the licence is, rather than how open the source code is then I suggest you check out the FSF they are the original OSI and advocate for free software and generally don't feel the need to change an existing definition and make it theirs.
If you have the code to modify then its open source, thats all that open source is it has nothing to do with the license unless you are talking about an OSI license in which case its just an OSI license and nothing to do with the source code or its openness.
Wagtail (www.wagtail.io) all the way. We at Overcast use this for all our clients, ranging from small sites with a couple of pages to enterprise sites with thousands of pages. Very simple but very powerful admin interface and treads the line very nicely between simplicity for programmer vs simplicity for the end user.
It's simple, non-tech admin staff are familiar with the interface (and can be easily trained), there's a vast ecosystem of plugins and integrations for it, it's easy to hire people or teams who have experience working with it. WP has its flaws and an upper limit to what it's capable of, but it's often a very pragmatic choice for small to medium sized content-driven websites.
I hear this a lot, but I've found it to be untrue. When I used to do wordpress development, a large part of my job was to customize admin pages so the non-tech staff could actually use it. The default wordpress admin interface leaves a lot to be desired.
Sure, but the admin customizations are pretty damn simple once you figure out the few commands you need (registering custom post types, adding & customizing options pages, removing unnecessary tabs per user role, etc). The fact is, it has the market share, so neophytes are at least somewhat familiar with the interface. That is a true advantage.
Also, ACF Pro is your best friend in the CMS customization area & it easily dumps custom fields into the WP REST API for use in app frontends like ngx or React. I'm working on an app & CMS with this stack now and frankly, it's fantastic.
(registering custom post types, adding & customizing options pages, removing unnecessary tabs per user role, etc)
Thats my point you don't need to do any of that with a CMS it just works out of the box. People may be familiar with the admin interface but that doesn't mean its good, just that they havent seen anything better, if the admin interface is as good as something like perch you wont have to train the clients (we do anyway) its all just intuitive.
I cant reply to your other comment but I do still have to work with wordpress and I also use ACF Pro, it sucks so many plugins made by third party developers who have went bust and left me to maintain their garbage code.