Website Performance for the modern age.

The beginning of the journey…

Every story has to start somewhere and for Speed.to that beginning is here with this first post.

We’ve traditionally built software behind closed doors, toiling away in the dark for months on end. This time, we are going to build a SaaS product from scratch and document every step of the way.

The SaaS business building process is arduous and we have a long way to go before the actual work of selling the software begins, so take this as a heads up that the next several months of speed.to blog posts are going to be fairly technical in nature. Once the software is live, I imagine the content and tone may shift towards growth, marketing and sales… but for now, we’ll document the development process.

Speed.to is going to be a WordPress-friendly website performance monitoring and optimization tool. Coming from an agency background, we know the pains of monitoring and measuring website performance across a fleet of sites. With the upcoming rollout of Core Web Vitals as a ranking factor, managing all things web performance will be that much more important.

Enter speed.to. What will eventually one day hopefully be a large SaaS platform monitoring the performance of a website near you.

We aren’t exactly at ground zero but here’s an overview of the features you can expect:

  • WordPress plugin and native WP integration
  • Stand alone dashboard for non WordPress sites
  • Synthetic Performance Monitoring
    • Geographically targeted Lighthouse (Page Speed Insights) tests
    • Geographically targeted WebPageTest.org tests
    • Automated tests and reporting
  • Real User Monitoring (RUM) clientside js snippet for field data gathering
  • Template/site wide issue analysis
  • Cumulative Layout Shift (CLS) visualization
  • Performance Alerts
  • SERP & Competitor performance tracking
  • Google Analytics & GSC integrations

As time goes on our plans may change or evolve but for now the list above translates to a fairly complex system with a number of moving parts we’ll have to orchestrate together.

Here’s the tech stack:

  • PHP – for WordPress plugin
  • Ruby on Rails – primary web application and API for WP Plugin
  • Vue.js – front end javascript library for UI components
  • Postgres – Database for the data
  • Nginx – log collecting endpoint for user experience collecting js snippet & rails application server reverse proxy
  • Linux (Ubuntu) – server(s) operating system
  • Redis – in memory data store for caching, background jobs, etc
  • WPT Private Instances – for web page test automation
  • Lighthouse – page speed insight tests instances
  • SQS – amazon simple queues for application message passing across infrastructure
  • S3 – amazon s3 for file storage, test storage, backups, logs, etc
  • Core Web Vital js library – for gathering CWV metrics via our js embed widget

We’ll also lean heavily on two internally developed libraries for fast and light tables and standardization around development patterns. We really like tables.

The core technologies powering speed.to (Rails, Postgres, Nginx, Redis, SQS, Vue) are battle tested and mature solutions deployed across millions of environments worldwide. Perhaps more importantly, all of the solutions listed above are what we know best as a team.

New entrants include ViewComponent, a Ruby on Rails view framework I’ve been interested in giving a spin, as well as Fusion Charts, a paid graphing library. I’ve also been looking at two newer technologies in the ruby/rails-sphere: HotWire and StimulusJS. I’ll make a future post if we do choose to introduce any other interesting libraries.

Thus far, we’ve done a lot of initial work on laying the foundation of the application and are just starting to set up our own infrastructure for PSI and WPT (currently using the APIs to dev out the data models) but it’ll be at least several months until things are polished enough for beta testers.

I’ll follow up with a more detailed overview of our ideation -> design -> development process but here is a sneak peak at a view coming to life.

Page level synthetic test timeline view on paper:

Pen & paper birth

The same view but mocked up in Balsamiq:

Mocked up in Balsamiq

The same page, live in development with some stubbed data and some live data:

Implemented UI in progress

I’ll leave you with that for now. We’ll be publishing every other week or so and don’t have a firm outline and what the topics will be so if you have any specific questions or would like to know more about anything speed.to related, opt in to our ‘early access‘ list and we’ll keep you updated as posts go live.

See you next time.

– Nate Fischer