{"id":13906175,"url":"https://github.com/calibreapp/geckoboard","last_synced_at":"2025-07-18T03:33:23.237Z","repository":{"id":22490973,"uuid":"94168504","full_name":"calibreapp/geckoboard","owner":"calibreapp","description":"Receive Calibre snapshot webhooks, push to Geckoboard datasets.","archived":true,"fork":false,"pushed_at":"2023-07-10T14:12:15.000Z","size":412,"stargazers_count":24,"open_issues_count":8,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-07T23:47:09.739Z","etag":null,"topics":["calibre","dashboard","geckoboard","metrics","performance","performance-dashboard"],"latest_commit_sha":null,"homepage":"https://calibreapp.com/docs/geckoboard","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/calibreapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-06-13T04:21:26.000Z","updated_at":"2023-10-16T00:51:07.000Z","dependencies_parsed_at":"2024-04-09T07:44:19.054Z","dependency_job_id":"825ff776-155a-42e9-925c-cd5bb32269ea","html_url":"https://github.com/calibreapp/geckoboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calibreapp%2Fgeckoboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calibreapp%2Fgeckoboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calibreapp%2Fgeckoboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calibreapp%2Fgeckoboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/calibreapp","download_url":"https://codeload.github.com/calibreapp/geckoboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226344556,"owners_count":17610159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["calibre","dashboard","geckoboard","metrics","performance","performance-dashboard"],"created_at":"2024-08-06T23:01:30.720Z","updated_at":"2024-11-25T14:31:00.483Z","avatar_url":"https://github.com/calibreapp.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Calibre Metrics on a Geckoboard Dashboard 📈\n[![Calibre metrics on a Geckoboard preview](dashboard-preview.png)](https://youtu.be/6GsDtYFeUdA)\n\n## [📚 Follow the step by step setup guide](#step-by-step-walk-through)\n## [🏫 Watch the 1:30 video step by step setup guide](https://youtu.be/6GsDtYFeUdA)\n\n### Tldr; setup guide\n\n* Get your [Geckoboard API key](https://app.geckoboard.com/account)\n* Deploy this app to Heroku [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/calibreapp/geckoboard)\n* Visit the url of the heroku app you just deployed to find the webhook url (`\u003cyour-deployed-app\u003e.herokuapp.com/webhook`)\n* For each site that you want to report metrics from, create a new webhook (Calibre→Site→Settings→Integrations) and paste in the `webhook URL`\n* You‘re done. Time to make the web fast. 🎉\n\n### Settings\n\n* **GECKOBOARD_API_KEY** - The API key from your Geckoboard account\n* **METRIC_WHITELIST** - _(Optional configuration)_ Eg: `visually-complete,oncontentload` (Full list available below). \n\n---\n\n### Metrics Calibre outputs\n\nAs of writing, Calibre outputs the following metrics. From time to time, new metrics will become available and this list will be updated.\n\n* `console-warnings`\n* `speed-index`\n* `visually-complete`\n* `firstrender`\n* `lighthouse-best-practices-score`\n* `lighthouse-accessibility-score`\n* `lighthouse-performance-score`\n* `lighthouse-pwa-score`\n* `first-contentful-paint`\n* `first-meaningful-paint`\n* `dom-size`\n* `estimated-input-latency`\n* `first-interactive`\n* `consistently-interactive`\n* `json-size-in-bytes`\n* `image-size-in-bytes`\n* `font-size-in-bytes`\n* `js-size-in-bytes`\n* `css-size-in-bytes`\n* `html-size-in-bytes`\n* `page-wait-timing`\n* `page-size-in-bytes`\n* `asset-count`\n* `onload`\n* `oncontentload`\n\n---\n\n## Step by step walk through\n\nAll the links and reference that you need are available at the top of this README. \n\n\n![2](https://user-images.githubusercontent.com/924/27894419-562e0428-624f-11e7-8c52-5da90a295176.png)\n\n\nVisit the [Geckoboard account details](https://app.geckoboard.com/account) page, copy your API Key. \n\nClick this deploy button: \n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/calibreapp/geckoboard)\n\nName the application, something like `yourcompany-calibre-geckoboard`. \n\n\n![3](https://user-images.githubusercontent.com/924/27894368-00afc522-624f-11e7-9928-45652668bc2a.png)\n\nPaste in your Geckoboard API Key.\n\n\n![4](https://user-images.githubusercontent.com/924/27894374-00e49e14-624f-11e7-836c-97b950a01625.png)\n\n\n![5](https://user-images.githubusercontent.com/924/27894429-5e678466-624f-11e7-8da6-f9b852836783.png)\n\n**Optional step** - Add a comma separated list of metrics that you’d like sent to Geckoboard. (Leaving this blank means that Calibre will deliver ALL of the metrics that it records to Geckoboard)\n\n\n\n![6](https://user-images.githubusercontent.com/924/27894375-00fc8bdc-624f-11e7-9b8f-d85e11368e6f.png)\n\n\nClick Deploy. \n\nOnce the app has been deployed, click the view button.\n\n\n![7](https://user-images.githubusercontent.com/924/27894377-01010e6e-624f-11e7-9652-9e5c02f58ec3.png)\n\n\nCopy the '/webhook' URL.\n\n\n![8](https://user-images.githubusercontent.com/924/27894376-00ff0e66-624f-11e7-8db8-f27096a5b900.png)\n\n\nGo to your Calibre account.\n\nFor each site that you want to report metrics from, create a new webhook (Calibre → Site → Settings → Integrations) and paste in the `webhook URL`\n\n\n![9](https://user-images.githubusercontent.com/924/27894367-0074fb0e-624f-11e7-9882-8c548f16373f.png)\n\n\nCheck \"Snapshot\", and save the notification.\n\n\n![11](https://user-images.githubusercontent.com/924/27894373-00d7f70e-624f-11e7-8afc-058fcb76a60c.png)\n\n\nAt the end of every snapshot Calibre will send the collected metrics to this app using the webhook you just set up. This app will format those metrics for Geckoboard and send it using the Geckoboard API key.\n\nOnce a snapshot has been completed, visit your Geckoboard account and click 'Add widget'.\n\n\n![12](https://user-images.githubusercontent.com/924/27894369-00cf08ba-624f-11e7-897f-d6b78e1cdf0d.png)\n\n\nChoose 'datasets' as the source. You should now see Calibre metrics 👍\n\n\n![13](https://user-images.githubusercontent.com/924/27894371-00d0501c-624f-11e7-8cd1-d213cf049d07.png)\n\n\nFor timeseries charts, it can be valuable to 'split' metrics by 'Device profile'. In the screenshot example below, you’ll notice that we have two profiles \"Chrome Desktop\" and \"iPhone 6, 3G connection\".\n\n\n![14](https://user-images.githubusercontent.com/924/27894372-00d382c8-624f-11e7-9f84-e385a1c741ee.png)\n\nYou did it! Great work. 🏆\n\n---\n\n## Troubleshooting\n\nIf you’ve set everything up, run some snapshots and there appears to be no new Calibre datasets in your Geckoboard account, try running `heroku logs --tail --app YOUR_APP_NAME_HERE` to get a log from the deployed application.\n\nIf you think you’ve discovered a bug, issue or have ideas for how to improve calibre-geckoboard, please file an issue or raise a PR. (ps, We’ll send stickers and eternal 👏 for PRs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalibreapp%2Fgeckoboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalibreapp%2Fgeckoboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalibreapp%2Fgeckoboard/lists"}