Never in a million years did I think I would be writing a post advocating the use of WordPress. So if you read that title with some skepticism, just hear me out.
Sometimes WordPress gets a bad reputation in the technical community. It’s ease-of-use & huge plugin ecosystem has led to a lot of low-quality projects being built on the platform, however the platform itself is fairly robust and well-built. In fact, many of WordPress’ built-in features could be extremely useful to help get a project off the ground and into the MVP stage quickly. Here’s an outline of what I mean (with links to technical documentation):
- It’s open-source
- Massive user base (40% of the internet…)
- Free updates/bug-fixes/patches (i.e. work your team doesn’t have to do)
- Built-in email/password authentication
- Customized with hooks like check_password & allow_password_reset
- Can be easily overridden to utilize things like Google Authentication (more on this in a later post)
- Built-in user-roles and role-capabilities
- Built-in name-spaced, versioned, validated & extensible REST API
- Create custom endpoints within the rest_api_init hook, using the register_rest_route function
- Secure endpoints with role-capabilities using current_user_can
- Built-in administration dashboard with bulk-actions, import/export, metadata, revisions & rich block-content
- Create custom data types (post types) using register_post_type & read posts using get_posts
- Data (posts) can be hierarchical, faceted (using taxonomies/terms) & use Gutenberg to have rich block-content
- Create meta fields using register_post_meta & allow editing of those fields with add_meta_box
- Built-in block-based content editor
- Allow non-technical users to manage, edit and publish content that matches project style.
- Create custom blocks using register_block_type
- Headless-ready
- Deploy static headless versions of your site with solutions like Simply Static or by rendering the site yourself using wp_remote_get (more on this in a later post)
- Control access to WordPress REST API with proxies like Cloudflare Workers
There’s obviously a lot more to WordPress than what I included above; These are just the common things that get re-invented every time a project gets built. As a platform, I think WordPress embodies the whole point of the MVP: build quickly, get feedback, iterate.