Lighthouse integration proposal

Hello! I’ve been using Ghost for a while now and really love it… so much that I was a gold sponsor for a minute :slight_smile:

The “Problem”

Website performance is becoming critical for SEO and in fact will become a part of Google’s search algorithm change next year as announced. Google recommends utilizing projects like Lighthouse and Web Vitals to measure performance in the lab and field respectively. With the default theme, my Ghost blog performs very excellent in these tools. It’s quite possible that when users add heavy assets, inject code, or custom themes performance could degrade without knowing. I think it would be great to provide some feedback in the admin about the performance of their Ghost blog. Even though it’s easy to run Lighthouse in Chrome, performance scores vary based on the environment, so they may not be accurate.

Proposal

As the founder of Foo, a website to provide Lighthouse and Web Vitals as a service, I’d like to propose adding a Foo integration or even adding a widget in the “Labs” sidebar… or on its own directly in the admin UI so users have a glimpse of their blogs web page performance, SEO, accessibility, etc. This integration or “widget” could also provide periodic monitoring (maybe once a day or week) and reflect the most recent scores. We would need to update Foo to accommodate this, but I’d be happy to do so. I’d also be happy to make agreed upon changes as a PR in Ghost repo/s (with some guidance). My idea is that this addition in Ghost would be free for users without needing an account with Foo for minimal monitoring (by default), in exchange for subtle language to allow users to create Foo accounts and upgrade to premium for more than one page of monitoring (nothing obnoxious). Foo is undergoing a big redesign, but currently this is what a dashboard looks like for a single page. I was thinking the widget would show the most recent scores of the home page and a subtle link to the Foo dashboard (for a history of scores and detailed reporting).

Foo has become a trusted, highly available service (thanks to Kubernetes) that I’m confident could handle the volume of usage this would introduce.

Shopify does something similar as seen below.

With some feedback, and approval from Ghost stakeholders I could provide a more detailed proposal with wireframes. I’d just like to gather some feedback in the questions below first.

Questions

  • Does something like this already exist or is it something that is being worked on?
  • Could you see this being a nice integration?
  • Could you see this being a part of “core” admin (as a standalone in the sidebar or within the “Labs” section)? (sorry if I’m misusing that terminology)
  • If either of the above possibilities seem like a good idea - where would I start?

Sounds like a very good idea! It’s one of those: If Shopify/Stripe does it, it might be best practice.

@adamhenson : I use Github Actions to build my Docker Image for Ghost. Could I get a Lighthouse score within my CI? I know Gatsby is proud to tell they build 100% results for their jamstack websites.

Hi @pascalandy and thanks - yes, Foo has a GitHub Action to run Lighthouse in your CI. It can even post scores as comments in PRs, and upload reports to AWS. Slack notifications, etc.

If I’m able to add it as an integration - the score in the widget could reflect manual runs and those that are triggered from CI.

Wondering it @Hannah and / or other core contributors have feedback and can provide steps on how I can get started (if we’re on the same page).

Sound like a match! Thanks :stuck_out_tongue:

Thanks for your feedback @pascalandy!

The blocker for me is that I can’t find documentation about the process of creating an integration. Hoping a contributor can chime in here and let me know where I should start.

I think it’s not available yet. I don’t know how the ghost team will name this (apps, plugin, add-on …)

Yep, apparently “integrations” are “manually curated internally”… but I was hoping to get on the list to be considered for curation. From what I gathered, there isn’t an official process. I was told to open a thread in the forum… but after that, not really sure what happens. Oh well.