FLASH SALE Get 20% OFF everything using the coupon code: FLASH20 View WordPress Plugins →

How I Planned, Blocked Out and Built a SaaS from Scratch Using WordPress

on in Blog
Last modified on

Article featured on Indie Hackers.

What Is SpeedFactor?

This is the story of SpeedFactor, a speed and performance tracking SaaS. At its core, the app measures a bunch of metrics and lays them out in nice charts and graphs. It also calculates CMS speed, host speed and tracks several security metrics. It’s the perfect companion for any SEO agency or freelancer.

How Did I Get the Idea?

It all started when planning to send several hundreds of emails to potential web development clients to show them how slow their sites were. I needed to automate this process and run Google Lighthouse and send emails to each of them.

While there are plenty of ways to automate Google Lighthouse (Python, NodeJS and so on), none of these is really straightforward for a marketing person or an SEO agency or freelancer. So I created a basic interface and automated Google Lighthouse. Emails were also automated via SendGrid and plugged into HubSpot. Overall, a pretty stable setup.

However, I felt that Google Lighthouse was not enough, and I needed more metrics and more security indicators. So, SpeedFactor was born, and, while pretty basic, it got a security audit and an SEO evaluation of the homepage (dubbed SEOFactor). I did not send any emails yet, but the audit was running daily and storing all values. This gave me the idea of showing an evolution chart, and, in the fortunate event of getting the web development contract, I could show a before and after comparison and even build a case study, helping me to further promote my service. Win-win.

So I have added the charts.

Why WordPress?

As part of my full-time job, I am working with WordPress on a daily basis. So it was pretty obvious to me that, if I wanted multi-user capabilities, I needed a CMS. The idea was for me, as an admin, to check the overall functionality, for a marketing person to check email progress and for the users/clients to check their progress (pretty basic at that point).

Why reinvent the wheel then, when WordPress has multi-user capabilities and pretty good database layer. Using an optimized version of the CMS (no fancy features, no emojis, no oEmbeds, no jQuery, no unnecessary fluff) I built SpeedFactor as a plugin and a theme bundle.

Next, I needed a way to plug the SendGrid API and the HubSpot API and, in the future, a payment gateway, so WordPress was, again, the right choice, considering the multitude of plugins available (Stripe and PayPal).

How Does It Work?

SpeedFactor started as a Google Lighthouse project, but right now, Lighthouse is only 30% of the metrics. I’ve added more manual checks, more server checks, a beacon feature measuring and calculating the speed difference between the host and the actual CMS and more security checks.

Every morning it runs all audits and stores all metrics. Users have access to all these audits (some of them depend on the pricing plan) and the app grew to a standalone SaaS. No more sending emails to potential clients. Just on-demand metrics.

It’s also useful for when implementing tracking codes or changing things around or adding images or stylesheets or scripts. It shows the site performance evolution and the impact of the changes.

Where Is It Now?

From a development/coding point of view, it’s feature complete. It requires a bit of maintenance and research to stay up to date with metrics and audits, such as the recently added Core Web Vitals from Google. Other than that, I use it myself for around 100 sites hosted on various hosts and networks, so I know when something doesn’t work or needs to be tweaked or changed.

Again, from a coding point of view, I look at it once a month with fresh eyes and refactor/rewrite or improve its features.

It’s a one-man SaaS and I try to keep it simple. I use other tools myself, such as Google PageSpeed Insights or GTmetrix, and I’m only enhancing or improving what’s there to suit my personal and my clients’ needs.

Related posts