Table of contents
- The WordPress plugins inferno
- The collateral damage of a bundled experience
- Switching to Publii
- Creating an advanced content site with a modern JAMSTACK approach
- Using Google Sheets or Airtable to build content sites
- Adopting the Jamstack headless approach
- The advent of headless CMS
- The front end challenge for non-coders
- Gastby, Next, Vue,... for coders only
- The opportunity to build a post-WordPress open web
I have a love and hate relationship with WordPress. I love the way this open source project developed from humble beginnings. I love Matt Mullenweg's approach to building a company at Automattic. I love their baseline.
We are passionate about making the web a better place.
And to be honest, I'm still using WordPress for a few projects, including for client work. I switched to another stack (Publii) for this particular website two years ago. But I'm increasingly tired of the poor performance induced by the bloat of WP plugins layered on top of one another to achieve some key features on my most sophisticated endeavours. WordPress is great for blogging and simple presentation sites. It's not meant to be used for more advanced web apps, such as directories and listing sites, even if there are tons of themes and plugins marketed for that purpose (re: pure e-commerce projects, I advise you to opt for Shopify, Big Commerce or Ecwid, rather than WP Woo Commerce).
The WordPress plugins inferno
If you want to create a site featuring custom post types (events, real estate properties, books, movies,...), you'll need either to create those CPTs by code (I'm not a php coder) or add a dedicated plugin to generate your CPTs, such as CPT UI. Then you'll need to create the fields for you custom post types. You'll probably use ACF (Advanced Custom Fields). And if you want to easily manage the import of data from a Google Sheet or a CSV, you'll install WP All Import. To easily build your pages, your best choice in 2021 will probably be Elementor Pro. Of course you'll use Yoast SEO or a similar plugin to optimize your SEO. As well as some other plugins for security, GDPR cookie disclaimer, media management, etc. I've seen many WordPress sites equipped with 30+ plugins... The issue is that most of those plugins will load some stuff (JS, CSS) on all your pages, even when they're not used on most of them. If you want to control what's loaded on specific pages, you'll have to... install another plugin.
The collateral damage of a bundled experience
Besides the bloat caused by layers of plugins, the issue with WordPress is that it bundles by default the backend and the frontend, the CMS and the end-user experience. This can be mitigated by CDNs and other caching strategies but it will never be optimal and the performance of your site will always decrease when it grows in complexity.
After using WordPress for five years, I started looking for alternatives. I won't mention Wix, Squarespace or Weebly since they all suffer from the same "bundle issue", which makes it easy for non-developers to publish a site (one-stop-shop for CMS + frontend) but inevitably impacts the overall performance (+ it locks you in an infinite relationship with the provider. At least, WordPress, fully open source, can be installed anywhere).
Switching to Publii
My first initiative was to move my personal blog from WP to Publii, a static site generator built upon Vue.JS. The site itself is hosted on Amazon S3. The only issue I would see is that each new post update requires a rebuild, not of the whole website but of a lot of components, since I'm using the Related Posts feature, which forces Publii to rebuild all post-level connections when you publish a new article. This can take a few minutes (this blog features 142 articles at time of writing). Besides this, the UX is great. You get a clean native app to create your content and just have to push a button to publish it on the web. You can even pick Netlify to host your site for free, on a custom domain. There's also an increasing selection of beautiful premium themes. Kudos to the team!
Creating an advanced content site with a modern JAMSTACK approach
The Publii solution is fine for simple sites but what about more advanced content sites? Such as (Amazon) affiliate sites or directories / wikis, for instance digital content marketplaces? Well, it's not that straightforward... except if you're a developer.
Using Google Sheets or Airtable to build content sites
Let me digress to tell you how I usually create content sites. My main interface in the curation phase, when I collect and organize data (text and images) is Google Sheets. I've developed a very efficient workflow using the various tabs of a document (for instance to create drop down menus for my curators, fed by a list in a specific tab). I also use Integromat to connect my sheets to Dropbox or Google Drive to retrieve the URLs of visual assets, which are referenced in my sheets. I'm also using a dedicated script for spintax and a few add-ons to enrich my data. When a project is ready for publication, I have two options. Either import it to WordPress via URL of the sheet published as a CSV or export a static CSV file and import it via WP All Import. The first option enables me to schedule regular imports. But the data is duplicated. In the staging phase, it's in my Google Sheet. In production, it moves to WordPress.
I've noticed the multiplication of SaaS enabling you to directly create a site from a Google Sheet. Sheet2Site, one of the pioneers in the field which has just been sold on MicroAcquire.
A similar project was developed by Maarten Belmans around Airtable, Table2Site (update: I've also seen the site was recently sold on MicroAcquire). The approach is to leverage the APIs of those mainstream spreadsheet / database tools to connect them to simple frontend templates where the data is displayed. I love the concept but I'm not convinced at this stage by the templating features. Most sites that have been built with Sheet2Site or Table2Site feel very gimmicky, more demos than mature projects. I know how difficult and time consuming it is to work on consumer-grade products so I can't blame the developers for the current state of their tools.
But you would need much more advanced capabilities to switch from an Elementor WordPress site to a solution like Sheet2Site or Table2Site. Non-coders will miss the freedom to create advanced pages from scratch, on the bootstrap model, row by row, column by column, module by module. You need that sort of granularity.
There are also a lot of SaaS focused on abstracting the Google Sheets API, offering some additional services:
NoCode API does it both for Google Sheets and Airtable, as well as for other web services.
Adopting the Jamstack headless approach
At this stage, I think we should avoid repeating the same mistakes which led to the current chaotic state of the WordPress ecosystem (despite the undisputed fact that WordPress powers...40% of all websites). As much as it would be tempting to package all sorts of features in a "theme for Google Sheets" or "theme for Airtable", I think that we should leverage the benefits of the Jamstack approach, offloading most interactive features to API-based services, instead of bundling them into the mothership app as most WordPress plugins do, adding layers of painful bloat to the core app.
In my opinion, we need a Zapier / Integromat approach to web design, where themes would be super lightweight gateways to an infinite world of APIs, with an open standard method to declare dynamic fields in the template layout and a open source GUI to connect third-party services. There could be commercial operators developing the "connecting UI", offering a range of premium add-ons (cookieless analytics, multisite management, advertising management, etc.).
A typical example is the way you should handle form entries. The template should only offer the input field(s) and the validation button, all the data capture and further processing should be managed through a dedicated solution, accessed via a simple endpoint (e.g. Basin or Getform). Search is also a great example, with services like Algolia indexing your content at their end to offer a blazing fast search experience to your users.
The advent of headless CMS
As far as content management is concerned, there are already plenty of options for headless CMS, decoupled from the front end, increasingly embraced by the enterprise world. To name a few: Contentful, Strapi or Storyblok. I could also mention no-code database solutions such as Xano or Supabase. They all give you access to your content via well documented APIs. A similar experience can be achieved with Google Sheets and Airtable.
But where do you publish this well organized content?
The front end challenge for non-coders
The no-code movement is on the rise. Creative entrepreneurs are increasingly using simple tools at their disposal to engineer smart hacks between various web services, leveraging the power of APIs and pivot platforms such as Integromat and Zapier to develop MVPs and even established products.
We see premium wikis launched on Notion, like NewsletterOS, which I've already mentioned in another article. Billing for one-off purchases or subscriptions has never been so easy. You can use the amazing Gumroad platform or Memberstack, Ghost, a modern competitor to WordPress, has launched its own membership features, to enable you to turn an audience into a business. Substack offers a similar solution focused on newsletters. There's even a dedicated service to turn a series of Notion boards into a website running on a custom domain: Super. It's an amazing time for creators!
But what if you want to offer something more advanced that a landing page advertising an info product or a series of articles monetized by a subscription? What if you want to compile actionable data in a table and expose it on the web?
You could sign up for one of the headless CMS providers listed in the previous section. They all boast the fact that they decouple content management from the visual experience, giving you full freedom on your design. That's all true. But there's something they usually forget to mention, something missing in the equation. There's no marketplace for off-the-shelf solutions to display data from Strapi, Contentful, Xano, Airtable or Google Sheets on the open web (besides the very limited X-to-Site examples I mentioned earlier). There's no Elementor-like experience for headless CMS users. I do believe this is a huge opportunity. I'm convinced that if Elementor customers (which now powers 4.5+M websites) had a solid plug & play WYSIWYG option to switch from WordPress to another stack, a lot of the most demanding users would consider it immediately.
Gastby, Next, Vue,... for coders only
Today if you search for "Google Sheets + Gatsby", you'll end up on a few articles like this one. I wouldn't say that they require a PhD in Computer Science but they're clearly not written for the masses. You have to get your hands dirty in code to create an advanced template in Gatsby or Vue or Next, three of the most popular frameworks today.
If you take a look at the showcase of sites powered by Next, you'll see the likes of TikTok, Twitch and Hulu. These are not DIY projects, so clearly the tech can be used for ambitious pursuits. But the only help you'll get from Next.JS at this stage is a basic boilerplate which looks like this.
Good luck to go from that barebones starter pack to any of the examples listed in the showcase gallery...
I tried yesterday to watch the 3h30' crash course tutorial embedded below. I learned a lot, Colby Fayock is a very nice teacher, but I got completely lost at 2/3 of the video, despite considering myself as decently "computer-savvy". The common issue with talented developers like Colby is that they assume far too many prerequisites. If you don't have a solid coding background, a lot of the concepts developed in this video will sound totally cryptic.
Same experience on Gatsby. They have a very nice cloud offering (if you don't want to take care of the hosting management which, to be honest, isn't the most challenging part of the adventure) but if you visit the community section of the starters gallery, here's the kind of "template" you'll get for Google Sheets.
Not the most exciting UI, you'll agree... Not to mention the plumbing skills required to connect Google Sheets to this template.
Circling back to WordPress, Gatsby dedicates a full section of its website to the wonders of connecting a Gatsby frontend to a WordPress CMS, via WP Rest API, transforming WordPress into a headless CMS. They showcase a few examples of this modern implementation, incl. SitePoint's blog. But you won't be able to make it happen if you're not a developer. There are a few Gatsby WordPress starter packs but you won't achieve anything substantial beyond the scope of a simple blog. If your use case is limited to blogging, I would advise you either to stick to a basic WordPress implementation (the default themes are fast enough and you won't be slowed down by a bunch of plugins) or to switch to Publii.
The opportunity to build a post-WordPress open web
There's a huge gap between the efforts (and the money) invested in the headless CMS cluster of the Jamstack ecosystem and the lack of accessibility for non-coders of the front end frameworks (Gatsby, Vue, Next, Jekyll, Hugo, Nuxt,...), which, in my opinion, hinders the adoption of those technologies by a mainstream audience, cementing the walled gardens built by the likes of Wix, Weebly or Squarespace while preventing hordes of frustrated WordPress users like me from picking a more performant solution.
I'm sure there will be ambitious entrepreneurs out there ready for the challenge. This might be a good direction for Brizy.cloud for instance, if they resist the urge to bundle everything, which is always a natural temptation if you want to lock in your users for the long run. They've just announced a beta for their version of advanced custom fields. Webflow is usually one of the favourite web publishing options touted by no-code advocates. It offers the possibility to connect an external DB to populate the fields of a collection (NoCode API leverages this opportunity in their own offering). But for some reason Webflow limits its sites to 100 pages, which won't get you very far if you want to develop a directory. Back to square one...
If you're a developer sharing my vision for a post-WordPress open web for the masses , feel free to reach out for a chat, I'd love to have your opinion.