Astrospeed is a performance monitor for your AstroJS codebase.

Overview

astroSpeed



Contributors Stargazers Issues MIT License LinkedIn


Logo

astroSpeed

Performance monitor for Astro & Next.js web applications.
Explore astrospeed.io »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. About
  4. Roadmap
  5. Contributing & Contacts
  6. Acknowledgments & License

Summary

astroSpeed is a data collection and reporting suite that uses the Google Lighthouse SDK to automatically collect application metrics such as Performance and SEO in the background during the development process, after each commit.

sample

Built With

  • Astro
  • React
  • Google LightHouse
  • TypeScript
  • Tailwind

Getting Started

astroSpeed is available in Node Package Manager and Github. The following steps detail installation from NPM.

Prerequisites

  • Node.js - 14.18.0 or higher.
  • Astro - 1.2.0 or higher.
  • Git

Installation & Usage

· watch the install demo here -or- follow instructions below...

  1. Start or open an Astro project.

  2. Install astroSpeed into the project as a dev dependency.

    npm install astrospeed --save-dev
  3. Optional - create astrospeed.config.json in your project's root directory if you want to manually configure astroSpeed. Add 1 or more of the below configurables to the config file, below values indicate the default.

    {
      "endpoints": ["/"],
      "port": 3000,
      "buildCommand": "npm run build",
      "outputDir": "dist",
      "useVite": 1
    }
  4. Commit new changes to your project's git repository. The post-commit Git hook will automatically start the astroSpeed report generation.

    git commit -a -m "your commit message here"
  5. The path to the newly generated astroSpeed report is written to stdout in your terminal (by default under the "astrospeed" folder in your project's root directory).

    git commit -a -m "your commit message here"
    [main 5958617] your commit message here
    1 files changed, 3 insertions(+), 2 deletions(-)
    Astrospeed report in progress...
    Astrospeed report available at <project-directory>/astrospeed/index.html
  6. You've launched! Open the report in a web browser to review the latest Google Lighthouse findings and compare them to previous commits.

  7. Each commit will regenerate the astroSpeed report, appending the latest Google Lighthouse scores to the report.

About

Google Lighthouse

Google Lighthouse is an open-source tool developed by Google for understanding the performance, quality, and correctness of your web apps (see Google Lighthouse on Github). astroSpeed uses Google Lighthouse metrics for Performance, Search Engine Optimization, Best Practices, and Accessibility diagnostics.

Git post-commit hook details

astroSpeed is configured to create a report after every commit using a git hook. astroSpeed's installation script attempts to add a post-commit hook. The installation script will notify you via the terminal if the attempt was successful or not. If successful, the the following line will be added to the file ./.git/hooks/post-commit.

npx astrospeed-snap

npx astrospeed-snap can also be used to generate a new report manually whenever you want. If you would would like to remove the post-commit hook, please don't uninstall astroSpeed. Simply remove the hook by using

npx astrospeed-hookuninstall

If you change your mind later and wish to reinstate the post-commit hook, you can add it back using

npx astrospeed-hookinstall

If you unfortunately decided to stop using astroSpeed, please uninstall the hook BEFORE uninstalling astroSpeed. Failure to do so will result in error messages after every commit about not being able to find astroSpeed. Your commits should still be successful, however. This unfortunate behavior is due to Node Package Manager removing the ability to create post uninstall scripts.

Roadmap

  • Upload report to astroSpeed.io and receive a shareable link.
  • Add Deep-dive performance metrics.
  • Create user authentication on astroSpeed.io.

See the open issues for a full list of proposed features (and known issues).

Contributing

Contributions are welcome! For feature requests, please create a new issue with the "enhancement" tag.

To contribute:

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature'). Be sure to Lint your code!
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request to https://github.com/oslabs-beta/astrospeed/.

Join astroSpeed contributors on LinkedIn.

Acknowledgments & License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

You might also like...

A framewok for building efficient and scalable, cross-platform bots (WhatsApp, Discord, Telegram and more) in a single codebase

A framewok for building efficient and scalable, cross-platform bots (WhatsApp, Discord, Telegram and more) in a single codebase

project... An over-engineered all-in-one bot framewok for building efficient and scalable bots. Yep that's not a typo u heard it right "scalable bots"

Dec 24, 2022

cpace - nodemon for C/C++ files. Monitor for any changes in your [.c] and [.cpp] application and automatically restart it - perfect for development

cpace - nodemon for C/C++ files. Monitor for any changes in your [.c] and [.cpp] application and automatically restart it - perfect for development

cpace cpace is a tool that helps develop [.c] and [.cpp] based applications by automatically restarting them when file changes are detected. The packa

Dec 3, 2022

Simple but Complete & Fast network monitor for your home network

netmon Netmon is an opensource project for protecting and monitoring your home network. Netmon is written to run on a Raspberry PI and is optimized to

Jul 6, 2022

Monitor your code for exposed API keys, tokens, credentials, and high-risk security IaC misconfigurations

Monitor your code for exposed API keys, tokens, credentials, and high-risk security IaC misconfigurations

Spectral VS Code extension The Spectral VS Code extension is a tool for developers that want to catch security issues (such as credentials, tokens and

Dec 19, 2022

Mina Node Monitor

Mina Node Monitor

Mina Node Monitor Mina Monitor is an extended graphical version of the mina client status command with additional indicators. This is a client-server

Dec 18, 2022

A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

Oct 4, 2022

Borscht - A Russian service monitor to track the uptime of domains and services

Borscht - A Russian service monitor to track the uptime of domains and services

borscht 🥣 Borscht is a simple uptime and status monitor of Russian sites and services You can view the public status page here 🔗 About 💡 This proje

Jul 8, 2022

A dockerized uptime monitoring RESTful API server that allows authenticated users to monitor URLs

A dockerized uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about their availability, average response time, and total uptime/downtime.

Oct 7, 2022

Mi Band/Amazfit heart rate monitor with OSC integration for VRChat

Mi Band/Amazfit heart rate monitor with OSC integration for VRChat

Mi Band/Amazfit OSC heart rate monitor for VRChat By Vard Based on Jaapp-'s miband-5-heart-rate-monitor and gzalo's miband-6-heart-rate-monitor Thanks

Jan 1, 2023
Comments
  • cannot find module tree-kill

    cannot find module tree-kill

    followig the guide in the readme, I get an error saying

    Cannot find module 'tree-kill'
    Require stack:
    - /workspaces/portfolio/node_modules/astrospeed/server.js
    
    opened by mandar1jn 0
  • Git hooks

    Git hooks

    Added gitHookUninstall.js updated gitHookInstall.js Changed package.json bin options: astrospeedsnap ---> astrospeed-snap added astrospeed-hookinstall & astrospeed-hookuninstall

    opened by mgon123 0
  • speed up runtime by pre-building report page and appending lighthouse…

    speed up runtime by pre-building report page and appending lighthouse…

    Currently we write lighthouse (and git log) results to json. The json is then consumed by the React app at buildtime so each new commit requires a rebuild the React app to read in the new results json.

    Instead, we can ship pre-built React app that reads in results at runtime. Each new commit writes to results.js. The report html executes both results.js and the React app bundle.js. results.js stores the relevant lighthouse/git data in globals for the React app to access.

    opened by mciluke 0
Owner
OSLabs Beta
OSLabs Beta
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
🗜️ AstroJS compression utilities. Compress CSS, HTML, JavaScript and more.

astro-compress ??️ This Astro integration brings compression utilities to your Astro project. csso html-minifier-terser terser Installation There are

Nikola Hristov 144 Jan 8, 2023
Maintain your API development, documentation and experimentation all within your codebase.

dostman Maintain your API development, documentation and experimentation all within your codebase. This project is a new release! Feel free to contact

Ege Çavuşoğlu 16 Mar 11, 2022
Use PageRank to find the most important files in your codebase.

Deprank Deprank uses the PageRank algorithm to find the most important files in your JavaScript or TypeScript codebase. It uses dependency-cruiser to

codemix 680 Dec 30, 2022
freeCodeCamp.org's open source codebase and curriculum. Learn to code for free.

freeCodeCamp.org's open-source codebase and curriculum freeCodeCamp.org is a friendly community where you can learn to code for free. It is run by a d

freeCodeCamp.org 359.2k Jan 7, 2023
4Web is a collection&creation of codebase, frameworks, libraries dedicated to web development 📦

?? You can also contribute to add / create your own collection in this repository Collection name Description ?? blinke

Raja Rakotonirina 5 Nov 14, 2022
4WEB is a collection & creation of codebase, frameworks, libraries and various resources dedicated to web development 📦🌐

?? Vous pouvez également contribuer à ajouter/créer votre propre collection dans ce référentiel ... Table des matières ?? Codebase ?? NPM packages ??

Raja Rakotonirina 5 Nov 14, 2022
Codú's open-source codebase. A space for coders.

Running the app $ npm install # development $ npm run dev Open http://localhost:3000 with your browser to see the result. You can start editing the p

Codú Community 18 Jan 2, 2023