From bdcf1f011b190e44ba6b5e9085b6ae9f012e9084 Mon Sep 17 00:00:00 2001 From: Paul Copplestone Date: Mon, 27 Jan 2020 12:48:15 +0800 Subject: [PATCH] Got a very basic chart with our stargazers history --- Makefile | 24 +- web/package-lock.json | 199 +++++++++++++++ web/package.json | 3 +- web/src/css/custom.css | 6 + web/src/data/stars/monorepo_history.json | 302 +++++++++++++++++++++++ web/src/data/stars/realtime_history.json | 302 +++++++++++++++++++++++ web/src/data/stars/schemas_history.json | 42 ++++ web/src/pages/index.js | 4 +- web/src/pages/oss.js | 118 +++++++++ 9 files changed, 992 insertions(+), 8 deletions(-) create mode 100644 web/src/data/stars/monorepo_history.json create mode 100644 web/src/data/stars/realtime_history.json create mode 100644 web/src/data/stars/schemas_history.json create mode 100644 web/src/pages/oss.js diff --git a/Makefile b/Makefile index 7ce09210aa4..79d4d421ce8 100644 --- a/Makefile +++ b/Makefile @@ -2,20 +2,34 @@ REPO_DIR=$(shell pwd) help: @echo "\SCRIPTS\n" - @echo "make contributors.users # pull a list of all contributors" - @echo "make contributors.issues # pull a list of all issue creators" + @echo "make github.contributors # pull a list of all contributors" + @echo "make github.issues # pull a list of all issue creators" + @echo "make github.traction # get a history of stargazers for our individual repos" -contributors.users: +github.users: curl -sS https://api.github.com/repos/supabase/monorepo/contributors \ | jq -r 'map_values({username: .login, avatar_url: .avatar_url}) \ | unique \ | sort_by(.username)' \ > $(REPO_DIR)/web/src/data/contributors/contributors.json -contributors.issues: +github.issues: curl -sS https://api.github.com/repos/supabase/monorepo/issues \ | jq -r 'map_values({username: .user.login, avatar_url: .user.avatar_url}) \ | unique \ | sort_by(.username)' \ - > $(REPO_DIR)/web/src/data/contributors/issues.json \ No newline at end of file + > $(REPO_DIR)/web/src/data/contributors/issues.json + +.PHONY: github.traction +github.traction: \ + github.traction.monorepo \ + github.traction.realtime \ + github.traction.schemas + +github.traction.%: + curl -sS https://api.github.com/repos/supabase/$*/stargazers \ + -H 'Accept: application/vnd.github.v3.star+json' \ + --compressed \ + | jq -r 'map_values({repo: "@supabase/$*", starred_at: .starred_at, user: { login: .user.login, id: .user.id, avatar_url: .user.avatar_url, url: .user.url }})' \ + > $(REPO_DIR)/web/src/data/stars/$*_history.json diff --git a/web/package-lock.json b/web/package-lock.json index 7d76c075e4c..b5ed8adcd5d 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -3357,6 +3357,67 @@ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, + "d3-array": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.4.0.tgz", + "integrity": "sha512-KQ41bAF2BMakf/HdKT865ALd4cgND6VcIztVQZUTt0+BH3RWy6ZYnHghVXf6NFjt2ritLr8H1T8LreAAlfiNcw==" + }, + "d3-color": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.0.tgz", + "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==" + }, + "d3-format": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.3.tgz", + "integrity": "sha512-mm/nE2Y9HgGyjP+rKIekeITVgBtX97o1nrvHCWX8F/yBYyevUTvu9vb5pUnKwrcSw7o7GuwMOWjS9gFDs4O+uQ==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "d3-scale": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.1.tgz", + "integrity": "sha512-huz5byJO/6MPpz6Q8d4lg7GgSpTjIZW/l+1MQkzKfu2u8P6hjaXaStOpmyrD6ymKoW87d2QVFCKvSjLwjzx/rA==", + "requires": { + "d3-array": "1.2.0 - 2", + "d3-format": "1", + "d3-interpolate": "^1.2.0", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" + }, + "d3-time-format": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.3.tgz", + "integrity": "sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==", + "requires": { + "d3-time": "1" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -3378,6 +3439,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decimal.js-light": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.0.tgz", + "integrity": "sha512-b3VJCbd2hwUpeRGG3Toob+CRo8W22xplipNhP3tN7TSVB/cyMX71P1vM2Xjc9H74uV6dS2hDDmo/rHq8L87Upg==" + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -3608,6 +3674,14 @@ "utila": "~0.4" } }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, "dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", @@ -6596,6 +6670,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, + "lodash-es": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", + "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==" + }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", @@ -6781,6 +6860,11 @@ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==" }, + "math-expression-evaluator": { + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz", + "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==" + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -9043,6 +9127,19 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "raf-schd": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz", + "integrity": "sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9383,6 +9480,11 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "react-loadable": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", @@ -9405,6 +9507,18 @@ "prop-types": "^15.6.1" } }, + "react-resize-detector": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-4.2.1.tgz", + "integrity": "sha512-ZfPMBPxXi0o3xox42MIEtz84tPSVMW9GgwLHYvjVXlFM+OkNzbeEtpVSV+mSTJmk4Znwomolzt35zHN9LNBQMQ==", + "requires": { + "lodash": "^4.17.15", + "lodash-es": "^4.17.15", + "prop-types": "^15.7.2", + "raf-schd": "^4.0.2", + "resize-observer-polyfill": "^1.5.1" + } + }, "react-router": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", @@ -9467,6 +9581,17 @@ "shallowequal": "^1.0.1" } }, + "react-smooth": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-1.0.5.tgz", + "integrity": "sha512-eW057HT0lFgCKh8ilr0y2JaH2YbNcuEdFpxyg7Gf/qDKk9hqGMyXryZJ8iMGJEuKH0+wxS0ccSsBBB3W8yCn8w==", + "requires": { + "lodash": "~4.17.4", + "prop-types": "^15.6.0", + "raf": "^3.4.0", + "react-transition-group": "^2.5.0" + } + }, "react-toggle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/react-toggle/-/react-toggle-4.1.1.tgz", @@ -9475,6 +9600,17 @@ "classnames": "^2.2.5" } }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + }, "readable-stream": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", @@ -9493,6 +9629,39 @@ "picomatch": "^2.0.7" } }, + "recharts": { + "version": "2.0.0-beta.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.0.0-beta.1.tgz", + "integrity": "sha512-awJH2DE6JRgp5ymzmH5dKh2Pu6prqZJCr3NRaYCcyub1fBa+fIG3ZlpLyl9hWizHPGEvfZLvcjIM+qgTsr9aSQ==", + "requires": { + "classnames": "^2.2.5", + "core-js": "^3.4.2", + "d3-interpolate": "^1.3.0", + "d3-scale": "^3.1.0", + "d3-shape": "^1.3.5", + "lodash": "^4.17.5", + "prop-types": "^15.6.0", + "react-resize-detector": "^4.2.1", + "react-smooth": "^1.0.5", + "recharts-scale": "^0.4.2", + "reduce-css-calc": "^1.3.0" + }, + "dependencies": { + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" + } + } + }, + "recharts-scale": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.3.tgz", + "integrity": "sha512-t8p5sccG9Blm7c1JQK/ak9O8o95WGhNXD7TXg/BW5bYbVlr6eCeRBNpgyigD4p6pSSMehC5nSvBUPj6F68rbFA==", + "requires": { + "decimal.js-light": "^2.4.1" + } + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -9517,6 +9686,31 @@ "object-keys": "^1.1.0" } }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + } + } + }, + "reduce-function-call": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", + "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", + "requires": { + "balanced-match": "^1.0.0" + } + }, "regenerate": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", @@ -9825,6 +10019,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "resolve": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", diff --git a/web/package.json b/web/package.json index a896fea9cff..e098a935d49 100755 --- a/web/package.json +++ b/web/package.json @@ -14,7 +14,8 @@ "react": "^16.8.4", "react-dom": "^16.8.4", "react-inlinesvg": "^1.2.0", - "react-perfect-scrollbar": "^1.5.3" + "react-perfect-scrollbar": "^1.5.3", + "recharts": "^2.0.0-beta.1" }, "browserslist": { "production": [ diff --git a/web/src/css/custom.css b/web/src/css/custom.css index 2f03a4e4dc4..cef13752079 100755 --- a/web/src/css/custom.css +++ b/web/src/css/custom.css @@ -681,4 +681,10 @@ a.hash-link { .has-hover-pointer:hover { cursor: pointer; +} +.section-md { + margin: 2rem 0; +} +.section-lg { + margin: 5rem 0; } \ No newline at end of file diff --git a/web/src/data/stars/monorepo_history.json b/web/src/data/stars/monorepo_history.json new file mode 100644 index 00000000000..7c3673a7767 --- /dev/null +++ b/web/src/data/stars/monorepo_history.json @@ -0,0 +1,302 @@ +[ + { + "repo": "@supabase/monorepo", + "starred_at": "2019-10-15T09:03:38Z", + "user": { + "login": "kiwicopple", + "id": 10214025, + "avatar_url": "https://avatars0.githubusercontent.com/u/10214025?v=4", + "url": "https://api.github.com/users/kiwicopple" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-15T23:06:09Z", + "user": { + "login": "smiley", + "id": 354181, + "avatar_url": "https://avatars0.githubusercontent.com/u/354181?v=4", + "url": "https://api.github.com/users/smiley" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T00:35:24Z", + "user": { + "login": "simple555a", + "id": 16252870, + "avatar_url": "https://avatars0.githubusercontent.com/u/16252870?v=4", + "url": "https://api.github.com/users/simple555a" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T01:43:42Z", + "user": { + "login": "millette", + "id": 50741, + "avatar_url": "https://avatars1.githubusercontent.com/u/50741?v=4", + "url": "https://api.github.com/users/millette" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T02:03:11Z", + "user": { + "login": "zhiyue", + "id": 4208883, + "avatar_url": "https://avatars3.githubusercontent.com/u/4208883?v=4", + "url": "https://api.github.com/users/zhiyue" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T02:32:30Z", + "user": { + "login": "dan-dr", + "id": 6669808, + "avatar_url": "https://avatars0.githubusercontent.com/u/6669808?v=4", + "url": "https://api.github.com/users/dan-dr" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T02:42:07Z", + "user": { + "login": "jots", + "id": 115140, + "avatar_url": "https://avatars0.githubusercontent.com/u/115140?v=4", + "url": "https://api.github.com/users/jots" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T03:03:14Z", + "user": { + "login": "maxaf", + "id": 99585, + "avatar_url": "https://avatars0.githubusercontent.com/u/99585?v=4", + "url": "https://api.github.com/users/maxaf" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T05:00:57Z", + "user": { + "login": "ysm0622", + "id": 18487241, + "avatar_url": "https://avatars2.githubusercontent.com/u/18487241?v=4", + "url": "https://api.github.com/users/ysm0622" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T05:18:38Z", + "user": { + "login": "lookfirst", + "id": 85355, + "avatar_url": "https://avatars0.githubusercontent.com/u/85355?v=4", + "url": "https://api.github.com/users/lookfirst" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T06:32:11Z", + "user": { + "login": "awalias", + "id": 458736, + "avatar_url": "https://avatars3.githubusercontent.com/u/458736?v=4", + "url": "https://api.github.com/users/awalias" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T07:44:21Z", + "user": { + "login": "jumasheff", + "id": 3319967, + "avatar_url": "https://avatars3.githubusercontent.com/u/3319967?v=4", + "url": "https://api.github.com/users/jumasheff" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T10:41:03Z", + "user": { + "login": "kirushik", + "id": 152719, + "avatar_url": "https://avatars1.githubusercontent.com/u/152719?v=4", + "url": "https://api.github.com/users/kirushik" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T16:32:54Z", + "user": { + "login": "dbohdan", + "id": 3179832, + "avatar_url": "https://avatars3.githubusercontent.com/u/3179832?v=4", + "url": "https://api.github.com/users/dbohdan" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T17:28:29Z", + "user": { + "login": "i-curate", + "id": 30484092, + "avatar_url": "https://avatars0.githubusercontent.com/u/30484092?v=4", + "url": "https://api.github.com/users/i-curate" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T18:23:55Z", + "user": { + "login": "devcat", + "id": 19345643, + "avatar_url": "https://avatars1.githubusercontent.com/u/19345643?v=4", + "url": "https://api.github.com/users/devcat" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-16T23:13:13Z", + "user": { + "login": "knightlore", + "id": 2867563, + "avatar_url": "https://avatars3.githubusercontent.com/u/2867563?v=4", + "url": "https://api.github.com/users/knightlore" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-17T21:17:06Z", + "user": { + "login": "aceiii", + "id": 1176065, + "avatar_url": "https://avatars2.githubusercontent.com/u/1176065?v=4", + "url": "https://api.github.com/users/aceiii" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-18T10:24:43Z", + "user": { + "login": "gtardini", + "id": 934473, + "avatar_url": "https://avatars1.githubusercontent.com/u/934473?v=4", + "url": "https://api.github.com/users/gtardini" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-18T17:17:53Z", + "user": { + "login": "berstend", + "id": 1368633, + "avatar_url": "https://avatars3.githubusercontent.com/u/1368633?v=4", + "url": "https://api.github.com/users/berstend" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-19T02:35:26Z", + "user": { + "login": "bransorem", + "id": 79442, + "avatar_url": "https://avatars1.githubusercontent.com/u/79442?v=4", + "url": "https://api.github.com/users/bransorem" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-20T21:44:51Z", + "user": { + "login": "pindamonhangaba", + "id": 1778376, + "avatar_url": "https://avatars3.githubusercontent.com/u/1778376?v=4", + "url": "https://api.github.com/users/pindamonhangaba" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T07:28:23Z", + "user": { + "login": "rosancoderian", + "id": 5107597, + "avatar_url": "https://avatars1.githubusercontent.com/u/5107597?v=4", + "url": "https://api.github.com/users/rosancoderian" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T13:07:57Z", + "user": { + "login": "sergekov", + "id": 1754566, + "avatar_url": "https://avatars1.githubusercontent.com/u/1754566?v=4", + "url": "https://api.github.com/users/sergekov" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T13:32:14Z", + "user": { + "login": "jzimmek", + "id": 40382, + "avatar_url": "https://avatars2.githubusercontent.com/u/40382?v=4", + "url": "https://api.github.com/users/jzimmek" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T13:39:20Z", + "user": { + "login": "lowrencium", + "id": 6582186, + "avatar_url": "https://avatars0.githubusercontent.com/u/6582186?v=4", + "url": "https://api.github.com/users/lowrencium" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T15:37:44Z", + "user": { + "login": "gregdaynes", + "id": 43543, + "avatar_url": "https://avatars0.githubusercontent.com/u/43543?v=4", + "url": "https://api.github.com/users/gregdaynes" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T16:25:38Z", + "user": { + "login": "Gmora08", + "id": 2798311, + "avatar_url": "https://avatars1.githubusercontent.com/u/2798311?v=4", + "url": "https://api.github.com/users/Gmora08" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-21T18:47:26Z", + "user": { + "login": "willfore", + "id": 11682, + "avatar_url": "https://avatars0.githubusercontent.com/u/11682?v=4", + "url": "https://api.github.com/users/willfore" + } + }, + { + "repo": "@supabase/monorepo", + "starred_at": "2020-01-22T01:36:28Z", + "user": { + "login": "Creamen", + "id": 12526859, + "avatar_url": "https://avatars2.githubusercontent.com/u/12526859?v=4", + "url": "https://api.github.com/users/Creamen" + } + } +] diff --git a/web/src/data/stars/realtime_history.json b/web/src/data/stars/realtime_history.json new file mode 100644 index 00000000000..c0c4d0c8e08 --- /dev/null +++ b/web/src/data/stars/realtime_history.json @@ -0,0 +1,302 @@ +[ + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T12:28:35Z", + "user": { + "login": "BillBrower", + "id": 1717845, + "avatar_url": "https://avatars1.githubusercontent.com/u/1717845?v=4", + "url": "https://api.github.com/users/BillBrower" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T12:29:30Z", + "user": { + "login": "derickwarshaw", + "id": 3732616, + "avatar_url": "https://avatars0.githubusercontent.com/u/3732616?v=4", + "url": "https://api.github.com/users/derickwarshaw" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T12:54:33Z", + "user": { + "login": "s6o", + "id": 5352612, + "avatar_url": "https://avatars3.githubusercontent.com/u/5352612?v=4", + "url": "https://api.github.com/users/s6o" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T13:38:47Z", + "user": { + "login": "zaygraveyard", + "id": 603764, + "avatar_url": "https://avatars0.githubusercontent.com/u/603764?v=4", + "url": "https://api.github.com/users/zaygraveyard" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T14:03:22Z", + "user": { + "login": "rch", + "id": 80840, + "avatar_url": "https://avatars3.githubusercontent.com/u/80840?v=4", + "url": "https://api.github.com/users/rch" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T14:25:55Z", + "user": { + "login": "panphora", + "id": 364330, + "avatar_url": "https://avatars3.githubusercontent.com/u/364330?v=4", + "url": "https://api.github.com/users/panphora" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T14:27:51Z", + "user": { + "login": "geostarling", + "id": 210511, + "avatar_url": "https://avatars3.githubusercontent.com/u/210511?v=4", + "url": "https://api.github.com/users/geostarling" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T14:38:57Z", + "user": { + "login": "zephraph", + "id": 3087225, + "avatar_url": "https://avatars1.githubusercontent.com/u/3087225?v=4", + "url": "https://api.github.com/users/zephraph" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T14:39:47Z", + "user": { + "login": "ranjanprj", + "id": 774370, + "avatar_url": "https://avatars0.githubusercontent.com/u/774370?v=4", + "url": "https://api.github.com/users/ranjanprj" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T14:41:32Z", + "user": { + "login": "bplus", + "id": 50766, + "avatar_url": "https://avatars2.githubusercontent.com/u/50766?v=4", + "url": "https://api.github.com/users/bplus" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T15:20:43Z", + "user": { + "login": "napstr", + "id": 6048348, + "avatar_url": "https://avatars3.githubusercontent.com/u/6048348?v=4", + "url": "https://api.github.com/users/napstr" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T15:45:39Z", + "user": { + "login": "azappella", + "id": 395669, + "avatar_url": "https://avatars1.githubusercontent.com/u/395669?v=4", + "url": "https://api.github.com/users/azappella" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T16:01:31Z", + "user": { + "login": "queer", + "id": 23562067, + "avatar_url": "https://avatars0.githubusercontent.com/u/23562067?v=4", + "url": "https://api.github.com/users/queer" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T16:10:55Z", + "user": { + "login": "rawrmaan", + "id": 872033, + "avatar_url": "https://avatars1.githubusercontent.com/u/872033?v=4", + "url": "https://api.github.com/users/rawrmaan" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T16:18:31Z", + "user": { + "login": "cannadayr", + "id": 11142749, + "avatar_url": "https://avatars1.githubusercontent.com/u/11142749?v=4", + "url": "https://api.github.com/users/cannadayr" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T16:20:34Z", + "user": { + "login": "notpeter", + "id": 145113, + "avatar_url": "https://avatars0.githubusercontent.com/u/145113?v=4", + "url": "https://api.github.com/users/notpeter" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T17:20:34Z", + "user": { + "login": "mechabyte", + "id": 1922389, + "avatar_url": "https://avatars3.githubusercontent.com/u/1922389?v=4", + "url": "https://api.github.com/users/mechabyte" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T17:27:31Z", + "user": { + "login": "flebel", + "id": 120855, + "avatar_url": "https://avatars3.githubusercontent.com/u/120855?v=4", + "url": "https://api.github.com/users/flebel" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T17:27:56Z", + "user": { + "login": "albab", + "id": 3075882, + "avatar_url": "https://avatars1.githubusercontent.com/u/3075882?v=4", + "url": "https://api.github.com/users/albab" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T18:09:19Z", + "user": { + "login": "shamrin", + "id": 510678, + "avatar_url": "https://avatars3.githubusercontent.com/u/510678?v=4", + "url": "https://api.github.com/users/shamrin" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T18:36:28Z", + "user": { + "login": "giovannibonetti", + "id": 3451581, + "avatar_url": "https://avatars3.githubusercontent.com/u/3451581?v=4", + "url": "https://api.github.com/users/giovannibonetti" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T18:42:10Z", + "user": { + "login": "rickgorman", + "id": 4432541, + "avatar_url": "https://avatars2.githubusercontent.com/u/4432541?v=4", + "url": "https://api.github.com/users/rickgorman" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T19:10:08Z", + "user": { + "login": "lulzzz", + "id": 115672, + "avatar_url": "https://avatars0.githubusercontent.com/u/115672?v=4", + "url": "https://api.github.com/users/lulzzz" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T19:13:42Z", + "user": { + "login": "malloryerik", + "id": 10395849, + "avatar_url": "https://avatars3.githubusercontent.com/u/10395849?v=4", + "url": "https://api.github.com/users/malloryerik" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T19:17:28Z", + "user": { + "login": "emcmanus", + "id": 21946, + "avatar_url": "https://avatars3.githubusercontent.com/u/21946?v=4", + "url": "https://api.github.com/users/emcmanus" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T19:28:12Z", + "user": { + "login": "colonelpopcorn", + "id": 13068221, + "avatar_url": "https://avatars3.githubusercontent.com/u/13068221?v=4", + "url": "https://api.github.com/users/colonelpopcorn" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T19:33:08Z", + "user": { + "login": "bictorman", + "id": 729447, + "avatar_url": "https://avatars2.githubusercontent.com/u/729447?v=4", + "url": "https://api.github.com/users/bictorman" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T19:59:11Z", + "user": { + "login": "aanich-assf", + "id": 37088337, + "avatar_url": "https://avatars1.githubusercontent.com/u/37088337?v=4", + "url": "https://api.github.com/users/aanich-assf" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T20:28:39Z", + "user": { + "login": "robstolarz", + "id": 3682844, + "avatar_url": "https://avatars1.githubusercontent.com/u/3682844?v=4", + "url": "https://api.github.com/users/robstolarz" + } + }, + { + "repo": "@supabase/realtime", + "starred_at": "2019-10-25T20:55:41Z", + "user": { + "login": "jeff3yan", + "id": 6830108, + "avatar_url": "https://avatars0.githubusercontent.com/u/6830108?v=4", + "url": "https://api.github.com/users/jeff3yan" + } + } +] diff --git a/web/src/data/stars/schemas_history.json b/web/src/data/stars/schemas_history.json new file mode 100644 index 00000000000..7205bb0bd31 --- /dev/null +++ b/web/src/data/stars/schemas_history.json @@ -0,0 +1,42 @@ +[ + { + "repo": "@supabase/schemas", + "starred_at": "2020-01-16T06:32:23Z", + "user": { + "login": "awalias", + "id": 458736, + "avatar_url": "https://avatars3.githubusercontent.com/u/458736?v=4", + "url": "https://api.github.com/users/awalias" + } + }, + { + "repo": "@supabase/schemas", + "starred_at": "2020-01-16T07:19:24Z", + "user": { + "login": "kiwicopple", + "id": 10214025, + "avatar_url": "https://avatars0.githubusercontent.com/u/10214025?v=4", + "url": "https://api.github.com/users/kiwicopple" + } + }, + { + "repo": "@supabase/schemas", + "starred_at": "2020-01-23T02:16:26Z", + "user": { + "login": "ganeshan", + "id": 115037, + "avatar_url": "https://avatars0.githubusercontent.com/u/115037?v=4", + "url": "https://api.github.com/users/ganeshan" + } + }, + { + "repo": "@supabase/schemas", + "starred_at": "2020-01-23T11:08:46Z", + "user": { + "login": "jgwconsulting", + "id": 1101369, + "avatar_url": "https://avatars2.githubusercontent.com/u/1101369?v=4", + "url": "https://api.github.com/users/jgwconsulting" + } + } +] diff --git a/web/src/pages/index.js b/web/src/pages/index.js index b6dbbc77212..98e3f5ae91a 100755 --- a/web/src/pages/index.js +++ b/web/src/pages/index.js @@ -313,7 +313,7 @@ function Home() { {/* FEATURES */} -
+

Use Cases

@@ -325,7 +325,7 @@ function Home() {
{/* OSS */} -
+
diff --git a/web/src/pages/oss.js b/web/src/pages/oss.js new file mode 100644 index 00000000000..01a2f8b46b2 --- /dev/null +++ b/web/src/pages/oss.js @@ -0,0 +1,118 @@ +import React from 'react' +import Layout from '@theme/Layout' +import { AreaChart, Area, Tooltip, XAxis, ResponsiveContainer } from 'recharts' +import useDocusaurusContext from '@docusaurus/useDocusaurusContext' +import monorepo_history from '../data/stars/monorepo_history.json' +import realtime_history from '../data/stars/realtime_history.json' +import schemas_history from '../data/stars/schemas_history.json' + +const history = [] + .concat(monorepo_history) + .concat(realtime_history) + .concat(schemas_history) + +// const now = new Date() +// var data = [] +// // console.log('history', history) +// for (var d = new Date(2019, 10, 1); d <= now; d.setDate(d.getDate() + 1)) { +// let dateString = d.toISOString().split('T')[0] +// data.push({ +// name: dateString, +// '@supabase/monorepo': 1, +// '@supabase/realtime': 2, +// '@supabase/schemas': 3, +// }) +// } + +// this gives an object with dates as keys +const groups = history.reduce((groups, event) => { + const date = event.starred_at.split('T')[0] + if (!groups[date]) { + groups[date] = [] + } + groups[date].push(event) + return groups +}, {}) + +var tally = { + '@supabase/monorepo': 0, + '@supabase/realtime': 0, + '@supabase/schemas': 0, +} +const data = Object.keys(groups) + .sort((a, b) => a > b) + .map(date => { + let monorepo = groups[date].filter(x => x.repo === '@supabase/monorepo').length + let realtime = groups[date].filter(x => x.repo === '@supabase/realtime').length + let schemas = groups[date].filter(x => x.repo === '@supabase/schemas').length + tally['@supabase/monorepo'] += monorepo + tally['@supabase/realtime'] += realtime + tally['@supabase/schemas'] += schemas + return { + name: date, + '@supabase/monorepo': tally['@supabase/monorepo'], + '@supabase/realtime': tally['@supabase/realtime'], + '@supabase/schemas': tally['@supabase/schemas'], + } + }) + +// console.log('groupArrays', groupArrays) + +export default function Oss() { + const context = useDocusaurusContext() + const { siteConfig = {} } = context + + return ( + +
+
+
+
+

Github Stars

+
+ + + {/* Need this to make the Tooltip show the correct "name"? */} + + + + + + + +
+
+
+
+
+
+ ) +}