Building a WaaS Platform with WordPress Multisite – [Part 1]

We’re excited to announce that we launched NoCodeWP last week, a WaaS (Website as a Service) platform that leverages the power of WordPress Multisite to offer customers an easy way to build and manage websites without any coding knowledge.

In this post series, we’ll explain why we chose WordPress Multisite as the foundation for our platform, and how we’ve built NoCodeWP to offer our users a wide range of features and functionality.

(The very first POC when I start to work on NoCodeWP)

Why WordPress Multisite?

WordPress Multisite is a feature that allows you to manage multiple websites from a single WordPress installation. This makes it an ideal foundation for a WaaS/SaaS platform, as it allows you to offer website-building services to customers.

WordPress.com, Edublogs.org are well-known large-scale WordPress multisite examples existing today. And there are lots of other multisite installations that exist in the niche, such as restaurantengine.

With WordPress Multisite, you can create a network of websites that share the same WordPress core files and database. This makes it easier to manage updates and security patches across all of your sites. Of course, this can be available with multi-tenant regular WordPress installation as well, but in that case, managing licenses and the new account provision process can be challenging. So we chose WordPress multisite.

A Better Admin Experience

One of the key advantages of using WordPress Multisite for NoCodeWP is the improved admin experience it provides for our users. On a standard WordPress installation, users with admin access have a wide range of options and controls, including the ability to install themes and plugins, modify code, and manage the entire site.

While this level of control is great for advanced users, it can be overwhelming and confusing for beginners. That’s where WordPress Multisite comes in. With Multisite, site admins and super admins are two different things, allowing for a more streamlined and intuitive admin experience. (Also, we made some customizations to hide the unnecessary things from the regular admins, including some “admin notices”)

On NoCodeWP, our users don’t need to be tech-savvy or have any coding knowledge to build and manage their websites. By using WordPress Multisite , we’re able to provide our users with a better admin experience, simplifying the backend of their sites, offering a wide range of features “ready-to-use” and allowing them to focus on what really matters.

We highly recommend leveraging WordPress Multisite as the foundation for your WaaS platform, just like we do with NoCodeWP.

Challenges of Using WordPress Multisite

While WordPress Multisite can be a powerful tool for building a WaaS platform, it does come with some challenges.

First of all, you really need to be careful about which features to provide and which plugins to use. Even though some plugins or theme providers say it works compatible with multisite, it doesn’t mean it works PROPERLY with multisite.

The Page Builder

For the NoCodeWP, the first and most important decision is choosing which page builder to use. Elementor is popular, and it’s a good pagebuilder overall. However, Elementor doesn’t allow to use of DIY services, and you will likely be competing with their hosted solution.

On the other hand, Beaver Builder gives more freedom, and allows to make a website builder platform, which is GREAT!

I usually consider the licensing option first, but Beaver Builder‘s uniqueness is not limited to that. It also performs well with multisite network-wide activation. And, the HTML markup generated by Beaver Builder is (generally) better than other builders.

They also focus on doing what they do best, rather than trying to be an all-in-one plugin, which is a good approach.

Other Plugins…

On a single WordPress installation, you just need to make a decision on behalf of the single WordPress. However, on the network you need to think about all use cases and the experience. You can’t ditch a plugin easily (technically, you can do, but it can make your users mad)

Here is the current list of plugins that exist on our platform: https://nocodewp.io/docs/plugins-and-integrations/plugin-list/

Unfiltered HTML

Unfiltered HTML is a powerful capability in WordPress that allows users to include any HTML code they want in their posts and pages. This can be useful for developers and power users who want to customize their content in more advanced ways than what the WordPress editor allows.

However, when building a WaaS platform using WordPress multisite, the default behavior is that regular site admins don’t have unfiltered_html capability by default. This can be a major hurdle for users who want to customize their websites using advanced HTML or CSS, as they are limited by the restrictions imposed by WordPress.

In order to solve this problem, we made some changes to authentication. When you logged into your site, you will be only logged into your site, not the entire network. And the authentication cookies are generated differently for each site. This way we can allow paid site admins to have unfiltered_html capability safely.

The unfiltered_html capability seems a small detail, but when you are providing a service to end-user, they don’t/shouldn’t care about how things work; they just focus on the outcome. And imagine webflow (or other no-code tools) is giving permission to embed 3rd party js/html code safely, but WordPress doesn’t. So, this was one of the things needs to get solved.

Analytics

We believe in respecting our users’ privacy and keeping their data secure. That’s why we’ve chosen to use Plausible Analytics, a privacy-focused web analytics tool that doesn’t track personal data or use cookies.

Rather than relying on a third-party service, we’ve opted to host Plausible Analytics ourselves using a self-hosted instance. This gives us greater control over our users’ data.

The integration is fairly simple with Plausible’s API

	add_action( 'wp_insert_site', __NAMESPACE__ . '\\provision_analytics' );
	add_action( 'wp_uninitialize_site', __NAMESPACE__ . '\\remove_analytics' );

Pseudocode

function provision_analytics(){
// create a new site on plausible
// generate a shared-links
// add shared-links as site meta
} 
function remove_analytics(){
// make DELETE request for the site
}

Hosting Plausible Analytics yourself requires some system administration and knowledge of other technologies, including PostgreSQL. If you’d rather not deal with the maintenance of your analytics infrastructure, you can opt to use Plausible’s hosted solution at https://plausible.io/. This allows you to take advantage of Plausible’s privacy-focused web analytics without the need for technical expertise or server administration.

The Payment Integration & Account Provisioning

We know that payment integration and account provisioning are critical components of any WaaS platform. To ensure that our users can seamlessly sign up for NoCodeWP and begin using our platform, we’ve developed our own plugin to handle account provisioning when a payment is made.

To facilitate payments, we use Stripe’s hosted checkout solution. This allows users to securely make payments using their preferred payment method, while also providing a seamless checkout experience that’s optimized for conversion. Also, using the stripe customer dashboard allows customers to self-manage their payment details, invoices, and subscriptions in one place.

To ensure that our plugin is notified of successful payments and can provision user accounts accordingly, we integrate with Stripe’s webhook system. This allows us to receive real-time notifications when a payment is made and take action automatically, such as creating a new user account and setting up the site.

While we initially tried using the WP Ultimo plugin for this purpose, we found that it didn’t meet our needs and didn’t work well for us. So, we decided to develop our own solution.

The “My Account” page looks like this: easy to understand and functional.

We hope this article has helped you understand the benefits and challenges of using WordPress multisite for a WaaS platform, and we invite you to try out NoCodeWP for yourself and experience the power of WordPress multisite in action. (you can try for free on the staging environment)

This is the first part of how we built NoCodeWP. The next part will be more technical šŸ™‚

If you have questions, feel free to ask below in the comment section. If you need maintenance & support for your multisite, you can check our plans.

2 thoughts on “Building a WaaS Platform with WordPress Multisite – [Part 1]”

Leave a Comment

Get peace of mind! We take care of hosting, support, and maintenance for your WordPress.

Company

About

Contact

Legal