{"id":16960545,"url":"https://github.com/randomfractals/vega-unfurl","last_synced_at":"2026-04-27T22:31:32.566Z","repository":{"id":44837363,"uuid":"219958969","full_name":"RandomFractals/vega-unfurl","owner":"RandomFractals","description":"Slack app for Vega Editor links preview","archived":false,"fork":false,"pushed_at":"2022-12-11T12:15:54.000Z","size":603,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-08T20:34:06.260Z","etag":null,"topics":["app","editor","link","slack","unfurl","vega"],"latest_commit_sha":null,"homepage":"https://glitch.com/~vega-unfurl","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RandomFractals.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-06T09:26:23.000Z","updated_at":"2020-01-22T22:00:08.000Z","dependencies_parsed_at":"2023-01-26T23:01:20.464Z","dependency_job_id":null,"html_url":"https://github.com/RandomFractals/vega-unfurl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RandomFractals/vega-unfurl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomFractals%2Fvega-unfurl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomFractals%2Fvega-unfurl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomFractals%2Fvega-unfurl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomFractals%2Fvega-unfurl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RandomFractals","download_url":"https://codeload.github.com/RandomFractals/vega-unfurl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomFractals%2Fvega-unfurl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32358509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["app","editor","link","slack","unfurl","vega"],"created_at":"2024-10-13T22:49:13.213Z","updated_at":"2026-04-27T22:31:32.551Z","avatar_url":"https://github.com/RandomFractals.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vega-unfurl\nSlack app for [Vega Editor](https://vega.github.io/editor) links preview ...\n\n# Usage Example\n\n1. Paste this [Vega-Lite](https://vega.github.io/vega-lite/) \nStacked Bar Chart JSON spec example into online [Vega Editor](https://vega.github.io/editor):\n\n```json\n{\n  \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.json\",\n  \"title\": \"Weather by Month\",\n  \"description\": \"Stacked Bar Chart\",\n  \"data\": {\"url\": \"https://vega.github.io/vega-datasets/data/seattle-weather.csv\"},\n  \"mark\": \"bar\",\n  \"encoding\": {\n    \"x\": {\n      \"timeUnit\": \"month\",\n      \"field\": \"date\",\n      \"type\": \"ordinal\",\n      \"axis\": {\"title\": \"Month of the year\"}\n    },\n    \"y\": {\n      \"aggregate\": \"count\",\n      \"type\": \"quantitative\"\n    },\n    \"color\": {\n      \"field\": \"weather\",\n      \"type\": \"nominal\",\n      \"scale\": {\n        \"domain\": [\"sun\", \"fog\", \"drizzle\", \"rain\", \"snow\"],\n        \"range\": [\"#e7ba52\", \"#c7c7c7\", \"#aec7e8\", \"#1f77b4\", \"#9467bd\"]\n      },\n      \"legend\": {\"title\": \"Weather type\"}\n    }\n  }\n}\n```\n\n2. Click Share in Vega Editor to copy url-encoded Vega(-Lite) spec.\n\n3. Paste Vega spec URL into a Slack channel in a workspace with installed Vega Unfurl Slack app.\n\nYou should see that shared url-encoded vega(-lite) spec link expended with new Slack message attachment containing vega chart title, description, vega json schema link, data links, view/save `.vg/.vl.json` links \u0026 image preview:\n\n![Vega Unfurl Example](https://github.com/RandomFractals/vega-unfurl/blob/master/images/vega-unfurl-example.png?raw=true \n \"Vega Unfurl Example\")\n\nFor this particular Stacked Bar Chart example those links are:\n\n- schema: [vega-lite | v4](https://vega.github.io/schema/vega-lite/v4.json)\n- data: https://vega.github.io/vega-datasets/data/seattle-weather.csv\n- view/save: [vg.json](https://vega-unfurl.glitch.me/vg.json/vega-lite/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6ALQAbZskoAWOgCtY3AHaQANOCh5mY5NigB1ZOhbIATmHYBPMAFllLNRsgATZAlONCW5XsgBlPHR4AGtkZzAAIXRzAGFEaLxHCBdjTBxgSFZTMV98IhJyKloGZjZOHiFaEWdU2GQ8WFIawL4jAh0RAHc2lFM6eFgKSABfdWSMU2DfdmikqGQleG5nRiVqPVAIZIAPDY0tzUZUZABVJWZfVHtEOYPIADNGZDFnX2bdMYPNS0JdHEhuKYVkp0DlPnd0NtGLANpAtHgdL47EoWGBuPcwCYwJYjKYRvswKMCZBLHsvlB0NRqKZhHg-lAlqwUbctnCfvTIABHVjoFHMYyMKiQAlEu5LMSAslfB5PF6+brGXos5J4dm+JTcVCrUHKqAIUH0zbkqDOTXoVZ6ADakFgTLUUHu3HWqhNHgAXm7ES7IKZzSpvbANZ1IABdcHS31renWgDEyAA7DMAKwAJntkBj8HjWaz6Zj6GQWeQAA48wBGe7xxPSPMATmkADZE68QwSIKLpTpqAtXuk4doOYZFWZMWrhiKNOPx0A) | [vl.json](https://vega-unfurl.glitch.me/vl.json/vega-lite/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6ALQAbZskoAWOgCtY3AHaQANOCh5mY5NigB1ZOhbIATmHYBPMAFllLNRsgATZAlONCW5XsgBlPHR4AGtkZzAAIXRzAGFEaLxHCBdjTBxgSFZTMV98IhJyKloGZjZOHiFaEWdU2GQ8WFIawL4jAh0RAHc2lFM6eFgKSABfdWSMU2DfdmikqGQleG5nRiVqPVAIZIAPDY0tzUZUZABVJWZfVHtEOYPIADNGZDFnX2bdMYPNS0JdHEhuKYVkp0DlPnd0NtGLANpAtHgdL47EoWGBuPcwCYwJYjKYRvswKMCZBLHsvlB0NRqKZhHg-lAlqwUbctnCfvTIABHVjoFHMYyMKiQAlEu5LMSAslfB5PF6+brGXos5J4dm+JTcVCrUHKqAIUH0zbkqDOTXoVZ6ADakFgTLUUHu3HWqhNHgAXm7ES7IKZzSpvbANZ1IABdcHS31renWgDEyAA7DMAKwAJntkBj8HjWaz6Zj6GQWeQAA48wBGe7xxPSPMATmkADZE68QwSIKLpTpqAtXuk4doOYZFWZMWrhiKNOPx0A)\n\nYou can also use Vega Unfurl slack app document handlers to save that bar chart [svg](https://vega-unfurl.glitch.me/svg/vega-lite/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6ALQAbZskoAWOgCtY3AHaQANOCh5mY5NigB1ZOhbIATmHYBPMAFllLNRsgATZAlONCW5XsgBlPHR4AGtkZzAAIXRzAGFEaLxHCBdjTBxgSFZTMV98IhJyKloGZjZOHiFaEWdU2GQ8WFIawL4jAh0RAHc2lFM6eFgKSABfdWSMU2DfdmikqGQleG5nRiVqPVAIZIAPDY0tzUZUZABVJWZfVHtEOYPIADNGZDFnX2bdMYPNS0JdHEhuKYVkp0DlPnd0NtGLANpAtHgdL47EoWGBuPcwCYwJYjKYRvswKMCZBLHsvlB0NRqKZhHg-lAlqwUbctnCfvTIABHVjoFHMYyMKiQAlEu5LMSAslfB5PF6+brGXos5J4dm+JTcVCrUHKqAIUH0zbkqDOTXoVZ6ADakFgTLUUHu3HWqhNHgAXm7ES7IKZzSpvbANZ1IABdcHS31renWgDEyAA7DMAKwAJntkBj8HjWaz6Zj6GQWeQAA48wBGe7xxPSPMATmkADZE68QwSIKLpTpqAtXuk4doOYZFWZMWrhiKNOPx0A) || [png](https://vega-unfurl.glitch.me/png/vega-lite/N4KABGBEAkDODGALApgWwIaQFxUQFzwAdYsB6UgN2QHN0A6agSz0QFcAjOxge1IRQyUa6ALQAbZskoAWOgCtY3AHaQANOCh5mY5NigB1ZOhbIATmHYBPMAFllLNRsgATZAlONCW5XsgBlPHR4AGtkZzAAIXRzAGFEaLxHCBdjTBxgSFZTMV98IhJyKloGZjZOHiFaEWdU2GQ8WFIawL4jAh0RAHc2lFM6eFgKSABfdWSMU2DfdmikqGQleG5nRiVqPVAIZIAPDY0tzUZUZABVJWZfVHtEOYPIADNGZDFnX2bdMYPNS0JdHEhuKYVkp0DlPnd0NtGLANpAtHgdL47EoWGBuPcwCYwJYjKYRvswKMCZBLHsvlB0NRqKZhHg-lAlqwUbctnCfvTIABHVjoFHMYyMKiQAlEu5LMSAslfB5PF6+brGXos5J4dm+JTcVCrUHKqAIUH0zbkqDOTXoVZ6ADakFgTLUUHu3HWqhNHgAXm7ES7IKZzSpvbANZ1IABdcHS31renWgDEyAA7DMAKwAJntkBj8HjWaz6Zj6GQWeQAA48wBGe7xxPSPMATmkADZE68QwSIKLpTpqAtXuk4doOYZFWZMWrhiKNOPx0A) for sharing with your vega data viz team.\n\n# Dev Log\n\nSee this dev.to post for more info:\n\nhttps://dev.to/tarasnovak/vega-unfurl-slack-app-13i8\n\n\u0026 [#vegaUnfurl](https://twitter.com/search?q=%23vegaUnfurl\u0026src=typed_query) tag on Twitter for the latest \u0026 greatest updates on this front :) ...\n\n# References\n\n[Everything you ever wanted to know about unfurling ...](https://medium.com/slack-developer-blog/everything-you-ever-wanted-to-know-about-unfurling-but-were-afraid-to-ask-or-how-to-make-your-e64b4bb9254)\n\n[All will be revealed ...](https://medium.com/slack-developer-blog/all-will-be-revealed-ebcad7c531f0)\n\n[Unfurling links in messages](https://api.slack.com/docs/message-link-unfurling)\n\n[Slack Events API](https://slack.dev/node-slack-sdk/events-api)\n\n[Developing Slack apps locally](https://slack.dev/node-slack-sdk/tutorials/local-development)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomfractals%2Fvega-unfurl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandomfractals%2Fvega-unfurl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomfractals%2Fvega-unfurl/lists"}