{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/post/2022-javascript-typescript-trending-history/",
    "result": {"data":{"site":{"siteMetadata":{"title":"WEB EGG","author":"Leko - CTO at Yuimedi"}},"markdownRemark":{"id":"c323e62d-83e9-5118-a8b8-bd6f0451cb6c","excerpt":"今年も GitHub トレンドから 2022 年の JavaScript/TypeScript を振り返ります。去年の記事はこちらです。 — GitHub のトレンドで振り返る 2021 年の JavaScript | WEB EGG 集計方法 本記事の集計期間は 2022/01/01〜2022/12/0…","html":"<p>今年も GitHub トレンドから 2022 年の JavaScript/TypeScript を振り返ります。去年の記事はこちらです。</p>\n<p>— <a href=\"https://blog.leko.jp/post/2021-javascript-typescript-trending-history/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">GitHub のトレンドで振り返る 2021 年の JavaScript | WEB EGG</a></p>\n<h2 id=\"集計方法\" style=\"position:relative;\"><a href=\"#%E9%9B%86%E8%A8%88%E6%96%B9%E6%B3%95\" aria-label=\"集計方法 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>集計方法</h2>\n<p>本記事の集計期間は 2022/01/01〜2022/12/07、対象言語は JavaScript および TypeScript です。<br>\nなお <strong>GitHub がそのリポジトリをなんの言語と見なしてトレンドに掲載したかをもとに集計対象を決定していることにご留意ください。</strong> 別言語で書かれた Rust 製の JS 向けのツールや CSS フレームワークなどは基本的に対象外となります。</p>\n<p>集計に利用したデータですが、GitHub は過去のトレンドを閲覧する方法を提供していないため、独自の仕組みで GitHub トレンドのアーカイブを生成しそのデータを利用しました。毎日 UTC 0 時ごろにデータ取得処理が走り、日毎のディレクトリの中にその時点でのトレンドの内容を CSV 化した<code>言語名.csv</code>が作成されます。</p>\n<p>当記事では集計期間の全ての<code>javascript.csv</code>と<code>typescript.csv</code>をマージし、リポジトリの作成日やリポジトリのトピック、今年に獲得した star 数などのいくつかのメタ情報を追加取得する集計スクリプトでサマリーデータを生成しました。</p>\n<ul>\n<li>トレンドのアーカイブ（CSV）は<a href=\"https://github.com/Leko/github-trending-archive/tree/main/archive/raw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>\n<ul>\n<li>JS/TS に限らず<a href=\"https://github.com/Leko/github-trending-archive/tree/main/packages/collector/src/main.ts#L10\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>に定義された言語が蓄積されています</li>\n</ul>\n</li>\n<li>集計スクリプトは<a href=\"https://github.com/Leko/github-trending-archive/blob/main/packages/summarize/src/main.ts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>\n<ul>\n<li>CLI 引数で集計期間と言語を指定したサマリーデータが生成できるので、もし機会があれば使ってみてください</li>\n</ul>\n</li>\n<li>実際に生成されたサマリーデータは<a href=\"https://docs.google.com/spreadsheets/d/1ZSdw70KbQasTbYF251Sv6paGhMSC8qSB7SgnY0h2d_c/edit?usp=sharing\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a></li>\n</ul>\n<h2 id=\"2022-年に作られた2022-年から流行ったリポジトリ\" style=\"position:relative;\"><a href=\"#2022-%E5%B9%B4%E3%81%AB%E4%BD%9C%E3%82%89%E3%82%8C%E3%81%9F2022-%E5%B9%B4%E3%81%8B%E3%82%89%E6%B5%81%E8%A1%8C%E3%81%A3%E3%81%9F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA\" aria-label=\"2022 年に作られた2022 年から流行ったリポジトリ permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2022 年に作られた・2022 年から流行ったリポジトリ</h2>\n<p>まずは今年作られた・今年から流行ったリポジトリの紹介です。リポジトリの作成日を考慮せずトレンドの掲載回数やスター数だけで集計すると既知のリポジトリばかりになるので今年からトレンドになったリポジトリに絞って紹介します。</p>\n<p>抽出条件:</p>\n<ul>\n<li>2022/01/01 時点でスター数が 100 未満</li>\n<li>集計期間のスター数の差分が+5000 以上</li>\n<li>今年獲得したスター数が大きい順にソート</li>\n</ul>\n<p>一覧:</p>\n<ul>\n<li><a href=\"https://github.com/AykutSarac/jsoncrack.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AykutSarac/jsoncrack.com</a> +20216(1 → 20217)</li>\n<li><a href=\"https://github.com/spacedriveapp/spacedrive\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">spacedriveapp/spacedrive</a> +15812(10 → 15822)</li>\n<li><a href=\"https://github.com/pyscript/pyscript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">pyscript/pyscript</a> +15041(7 → 15048)</li>\n<li><a href=\"https://github.com/facebook/lexical\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/lexical</a> +12455(9 → 12464)</li>\n<li><a href=\"https://github.com/t3-oss/create-t3-app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">t3-oss/create-t3-app</a> +11632(33 → 11665)</li>\n<li><a href=\"https://github.com/toeverything/AFFiNE\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">toeverything/AFFiNE</a> +11215(6 → 11221)</li>\n<li><a href=\"https://github.com/lensterxyz/lenster\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lensterxyz/lenster</a> +9544(25 → 9569)</li>\n<li><a href=\"https://github.com/alibaba/lowcode-engine\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">alibaba/lowcode-engine</a> +8610(6 → 8616)</li>\n<li><a href=\"https://github.com/faker-js/faker\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">faker-js/faker</a> +8175(14 → 8189)</li>\n<li><a href=\"https://github.com/upscayl/upscayl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">upscayl/upscayl</a> +7138(53 → 7191)</li>\n<li><a href=\"https://github.com/apihero-run/jsonhero-web\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">apihero-run/jsonhero-web</a> +7026(6 → 7032)</li>\n<li><a href=\"https://github.com/total-typescript/beginners-typescript-tutorial\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">total-typescript/beginners-typescript-tutorial</a> +6882(5 → 6887)</li>\n<li><a href=\"https://github.com/divamgupta/diffusionbee-stable-diffusion-ui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">divamgupta/diffusionbee-stable-diffusion-ui</a> +6782(17 → 6799)</li>\n<li><a href=\"https://github.com/formkit/auto-animate\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">formkit/auto-animate</a> +6261(5 → 6266)</li>\n<li><a href=\"https://github.com/vercel/satori\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/satori</a> +6028(5 → 6033)</li>\n<li><a href=\"https://github.com/BishopFox/unredacter\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">BishopFox/unredacter</a> +5928(0 → 5928)</li>\n<li><a href=\"https://github.com/alyssaxuu/omni\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">alyssaxuu/omni</a> +5749(0 → 5749)</li>\n<li><a href=\"https://github.com/ciderapp/Cider\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ciderapp/Cider</a> +5591(65 → 5656)</li>\n<li><a href=\"https://github.com/actualbudget/actual\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">actualbudget/actual</a> +5561(1 → 5562)</li>\n<li><a href=\"https://github.com/Kindelia/HVM\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Kindelia/HVM</a> +5383(2 → 5385)</li>\n<li><a href=\"https://github.com/Sanster/lama-cleaner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Sanster/lama-cleaner</a> +5201(71 → 5272)</li>\n<li><a href=\"https://github.com/tremorlabs/tremor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tremorlabs/tremor</a> +5033(3 → 5036)</li>\n</ul>\n<h3 id=\"aykutsaracjsoncrackcom\" style=\"position:relative;\"><a href=\"#aykutsaracjsoncrackcom\" aria-label=\"aykutsaracjsoncrackcom permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>AykutSarac/jsoncrack.com</h3>\n<blockquote>\n<p>🔮 Seamlessly visualize your JSON data instantly into graphs; paste, import or fetch!<br>\n<a href=\"https://github.com/AykutSarac/jsoncrack.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AykutSarac/jsoncrack.com</a></p>\n</blockquote>\n<p>JSON の構造をグラフィカルに可視化できる GUI ツールです。AWS Cloudformation とか読めない巨大 JSON(YAML)に使えそうな予感はしますが、 JSON を可視化するだけのアプリが 2 万 stars まで流行った文脈は汲み取れませんでした…。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.8562874251497%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'288\\'%20viewBox=\\'0%200%20400%20288\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M18%2013l-1%205v5h366V13l-183-1-182%201\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/1d88282f0873c2d2331e783ae3ad8b4e/5251b/2022-12-16-20-07-17.webp 167w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/7390e/2022-12-16-20-07-17.webp 334w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/7c056/2022-12-16-20-07-17.webp 668w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/0a92e/2022-12-16-20-07-17.webp 1002w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/7fa3c/2022-12-16-20-07-17.webp 1336w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/33c6a/2022-12-16-20-07-17.webp 2624w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/1d88282f0873c2d2331e783ae3ad8b4e/21521/2022-12-16-20-07-17.png 167w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/86d36/2022-12-16-20-07-17.png 334w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/74866/2022-12-16-20-07-17.png 668w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/d69c4/2022-12-16-20-07-17.png 1002w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/9685e/2022-12-16-20-07-17.png 1336w,\n/static/1d88282f0873c2d2331e783ae3ad8b4e/89587/2022-12-16-20-07-17.png 2624w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/1d88282f0873c2d2331e783ae3ad8b4e/74866/2022-12-16-20-07-17.png\"\n            alt=\"2022 12 16 20 07 17\"\n            title=\"2022 12 16 20 07 17\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Looking to understand or explore some JSON? Just paste or upload to visualize it as a graph with <a href=\"https://t.co/HlKSrhKryJ\">https://t.co/HlKSrhKryJ</a> 😍 <br><br>Thanks to <a href=\"https://twitter.com/aykutsarach?ref_src=twsrc%5Etfw\">@aykutsarach</a>! <a href=\"https://t.co/0LyPUL8Ezz\">pic.twitter.com/0LyPUL8Ezz</a></p>&mdash; GitHub (@github) <a href=\"https://twitter.com/github/status/1519363257794015233?ref_src=twsrc%5Etfw\">April 27, 2022</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<p>UML 記述でおなじみの<a href=\"https://plantuml.com/ja/json\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PlantUML でも JSON の可視化（下記画像）</a>ができますが、それより洗練された UI に見えます。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 633px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 31.736526946107784%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'127\\'%20viewBox=\\'0%200%20400%20127\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M137%207l-1%2027c0%2028%200%2028%207%2028%202%200%203%200%203%202h2c1-2%207-2%2059-2%2055%200%2058%200%2059-2%202-2%203-49%201-52-1-2-3-2-65-2l-65%201m2%201l-1%206v5h68V8l-34-1-33%201m68%205v6h59v-5c0-4%200-6-2-6l-29-1h-28v6M8%2011c-2%201-2%205-2%2054l1%2055c2%202%20104%202%20106%200%202-3%201-107-1-109-2-1-101-2-104%200m0%203l-1%206v4h74V12H45c-33%200-37%200-37%202m74%204v6h31v-4c0-8%201-8-16-8H82v6m56%209v6h68V21h-68v6m69%200v6h59V21h-59v6M7%2032l1%206h73V26H7v6m75%200v6h31V26H82v6m56%208v6h68V35l-34-1h-34v6m69%200v6h59V34h-59v6M7%2045l1%206h73V39H7v6m75%200v7l15-1h16V39H82v6m56%209v6h68V48h-68v6m69%200v6h59V48h-59v6m84-1l-1%2011c0%209%200%209-2%208-2%200-3%200-3%202%200%203%201%203%202%202%203-1%203-1%203%201l2%203h100c2-1%202-2%202-13l-1-14c-2-2-100-2-102%200M7%2059v6h4c4%200%205%200%205-4%200-3%200-4%202-4s2%200%202%204l-1%204h62V53H7v6m75%200v6h31V53H82v6m229-5l-19%201-1%205v6h39V53l-19%201m20%200v12h62V55l-31-1h-31M7%2072l1%207h73V66H7v6m75%201v6h31V66H82v7m209%200l1%206h38V67h-39v6m41-5l-1%206v5h61l1-2v-9l-31-1-30%201m-137%205l-1%206c0%206%200%207-3%205-1-1-2%200-2%202s1%203%202%202c3-2%203-1%203%205l1%207h5l8-1c1-2%202-24%200-26h-13m1%201l-1%206v6h12V74l-6-1-5%201M7%2086l1%207h73V80H7v6m75%201v6h31V80H82v7m113%205c0%207%201%207%208%207%203%200%204-1%204-5v-6c1-1%200-1-6-1h-6v5m96%200l-1%203c0%202%200%202-3%201-1-1-2-1-2%202%200%202%201%202%203%201%202%200%202%200%202%2010l1%2010h50l52-1c1-1%202-22%200-25%200-2-6-2-51-2l-51%201m1%201l-1%206v6h39V92h-19l-19%201m39%205l1%207h61V94l-1-2h-61v6M7%20100v6h74V94H7v6m75%200v6h31V94H82v6m209%2011c0%207-1%207%2021%207h18v-12h-39v5m40%201l1%206h29l31-1%201-6v-5h-62v6M7%20112l1%207%2037%201h36v-13H7v5m75%202v6h14c17%200%2017%200%2017-8v-5H82v7m112-1h-2c-2-2-2-1-2%202%200%202%200%202%202%202%201-1%202-1%202%201%200%203%202%204%209%204%209%200%2011-1%2011-5%200-5-1-6-11-6-6%200-8%200-9%202m2%200l-1%204%201%203h16v-7l-7-1-9%201\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/73656197e1436749414d18f079636ffc/5251b/2022-12-16-20-10-24.webp 167w,\n/static/73656197e1436749414d18f079636ffc/7390e/2022-12-16-20-10-24.webp 334w,\n/static/73656197e1436749414d18f079636ffc/5c300/2022-12-16-20-10-24.webp 633w\"\n              sizes=\"(max-width: 633px) 100vw, 633px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/73656197e1436749414d18f079636ffc/21521/2022-12-16-20-10-24.png 167w,\n/static/73656197e1436749414d18f079636ffc/86d36/2022-12-16-20-10-24.png 334w,\n/static/73656197e1436749414d18f079636ffc/bce72/2022-12-16-20-10-24.png 633w\"\n            sizes=\"(max-width: 633px) 100vw, 633px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/73656197e1436749414d18f079636ffc/bce72/2022-12-16-20-10-24.png\"\n            alt=\"2022 12 16 20 10 24\"\n            title=\"2022 12 16 20 10 24\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h3 id=\"spacedriveappspacedrive\" style=\"position:relative;\"><a href=\"#spacedriveappspacedrive\" aria-label=\"spacedriveappspacedrive permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>spacedriveapp/spacedrive</h3>\n<blockquote>\n<p>Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.<br>\n<a href=\"https://github.com/spacedriveapp/spacedrive\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">spacedriveapp/spacedrive</a></p>\n</blockquote>\n<p>Spacedrive は 仮想分散ファイルシステム(VDFS)という技術ベースにした Rust 製のクロスプラットフォームなファイルマネージャーです。UI だけ刷新した単なる better Finder な訳ではなく、VDFS を利用しクラウド上にあるデータ（Google Drive, Google Photos, iCloud, etc)も同様のインターフェースで閲覧できるものだそうです。Desktop 版は Tauri, モバイルは RN、web 版も提供されているなど各種デバイスに対応しているようです。<br>\nSpacedrive app 自体は Not for me ですが、VDFS の概念（<a href=\"https://www2.eecs.berkeley.edu/Pubs/TechRpts/2018/EECS-2018-29.pdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">UC Berkeley の論文（英語）</a>）は面白く、分析や集計のプログラムでクラウドベンダーの差異を透過的な API で扱えるのは便利そうなので深掘りしてみたいと思います。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 52.69461077844312%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'210\\'%20viewBox=\\'0%200%20400%20210\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M1%203v204c1%202%204%202%20199%202h198l1-2c2-3%202-13%202-104a2540%202540%200%2000-2-101L200%201C5%201%202%201%201%203m7%2018c-3%202%201%203%2016%202a120%20120%200%200019%200h4l-1-1-2-1H8m-3%209v5l1%204h54v-9l-27-1-28%201m75%2041c-2%201-1%2015%200%2016l12%201h10v-8l-1-8c-2-1-20-2-21-1m33%202c-1%203-1%2013%201%2014l11%201h10v-8c0-9%201-9-12-9l-9-1-1%203m33-2v9l1%208h9l11-1c2-1%202-12%201-14-2-2-21-4-22-2m-1%2027c-1%205%200%205%2012%206l12-1a26%2026%200%20000-5c0-2-23-1-24%200m-65%2048c-2%201-1%2015%200%2016h21v-15c-1-1-20-2-21-1m32%203l1%209%201%205h8c13%200%2013%200%2013-9%200-8%201-8-12-8l-10-1-1%204m4%2027v3h16v-7h-16v4m-23%2024c0%203%202%204%205%203h8l7-1h1c1%202%207%201%207-1s-1-2-2-2H96c-3-1-3-1-3%201\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/77cd6891f677e5ad64680a31fcbec7ec/5251b/2022-12-16-20-22-11.webp 167w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/7390e/2022-12-16-20-22-11.webp 334w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/7c056/2022-12-16-20-22-11.webp 668w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/0a92e/2022-12-16-20-22-11.webp 1002w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/7fa3c/2022-12-16-20-22-11.webp 1336w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/ecfd6/2022-12-16-20-22-11.webp 2405w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/77cd6891f677e5ad64680a31fcbec7ec/21521/2022-12-16-20-22-11.png 167w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/86d36/2022-12-16-20-22-11.png 334w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/74866/2022-12-16-20-22-11.png 668w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/d69c4/2022-12-16-20-22-11.png 1002w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/9685e/2022-12-16-20-22-11.png 1336w,\n/static/77cd6891f677e5ad64680a31fcbec7ec/e5c3b/2022-12-16-20-22-11.png 2405w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/77cd6891f677e5ad64680a31fcbec7ec/74866/2022-12-16-20-22-11.png\"\n            alt=\"2022 12 16 20 22 11\"\n            title=\"2022 12 16 20 22 11\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h3 id=\"pyscriptpyscript\" style=\"position:relative;\"><a href=\"#pyscriptpyscript\" aria-label=\"pyscriptpyscript permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>pyscript/pyscript</h3>\n<blockquote>\n<p>Home Page: <a href=\"https://pyscript.net\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://pyscript.net</a> Examples: <a href=\"https://pyscript.net/examples\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://pyscript.net/examples</a><br>\n<a href=\"https://github.com/pyscript/pyscript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">pyscript/pyscript</a></p>\n</blockquote>\n<p><a href=\"https://pyodide.org/en/stable/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Pyodide</a>という CPython を WASM 化した Python インタプリタを積んだ Custom Element を使って、<code>&#x3C;py-script></code>というタグに Python のコードを書いて実行できるようにしたもの。matplotlib などで生成したチャートを DOM に append したり pandas などのライブラリを読み込んで実行したり、外部ファイル化した Python を HTTP 経由で読み込んで実行できます。</p>\n<h3 id=\"facebooklexical\" style=\"position:relative;\"><a href=\"#facebooklexical\" aria-label=\"facebooklexical permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>facebook/lexical</h3>\n<blockquote>\n<p>Lexical is an extensible text editor framework that provides excellent reliability, accessibility and performance.<br>\n<a href=\"https://github.com/facebook/lexical\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/lexical</a></p>\n</blockquote>\n<p>オープンソースで拡張性の高い WYSIWYG エディタが作れるフレームワークだそうです。ぱっと見かなり高機能そう。昔流行った<a href=\"https://draftjs.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Draft.js</a>みたいだなと思ったら、Draft.js 側に「<a href=\"https://github.com/facebook/draft-js#status\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">For users looking for an open source alternative, Meta have been working on migrating to a new framework, called Lexical. It’s still experimental, and we’re working on adding migration guides, but, we believe, it provides a more performant and accessible alternative.</a>」と書いてあり、Lexical が代替となったようです。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 41.31736526946108%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'166\\'%20viewBox=\\'0%200%20400%20166\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M234%207l1%201c2%200%201%2011-1%2012l-1-4c0-3%200-4-2-5-4%200-6%200-6%202s2%203%203%201c0-2%202-1%202%201l-1%201h-3l-4%201-1%201-2%201-2-2c0-3%202-4%204-3%201%202%202%201%202-1-2-4-9-1-9%204%200%204%205%207%208%204l3-1%208%202c7%200%207%200%207-2l-1-8c0-6%200-6-2-6l-3%201m-63%202l-5%201h-5v12h5l5%201c0%202%205%201%205-1l1-6-1-6c0-2-5-3-5-1m16%205c-3%204%203%2011%207%207h2c2%202%205%201%205-1l1-2%201%202c0%202%201%202%206%202s6-1%204-2l-1-5v-4h-4c-4%200-5%200-5%202l-1%202v-3c0-1-4-2-6%200h-1c-2-2-6-1-8%202M3%20164c0%202%2022%202%20198%202l197-1c-1-2-395-3-395-1\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/bb04d66166193fe7f86de32035e98c41/5251b/2022-12-16-20-58-21.webp 167w,\n/static/bb04d66166193fe7f86de32035e98c41/7390e/2022-12-16-20-58-21.webp 334w,\n/static/bb04d66166193fe7f86de32035e98c41/7c056/2022-12-16-20-58-21.webp 668w,\n/static/bb04d66166193fe7f86de32035e98c41/0a92e/2022-12-16-20-58-21.webp 1002w,\n/static/bb04d66166193fe7f86de32035e98c41/7fa3c/2022-12-16-20-58-21.webp 1336w,\n/static/bb04d66166193fe7f86de32035e98c41/995bd/2022-12-16-20-58-21.webp 2230w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/bb04d66166193fe7f86de32035e98c41/21521/2022-12-16-20-58-21.png 167w,\n/static/bb04d66166193fe7f86de32035e98c41/86d36/2022-12-16-20-58-21.png 334w,\n/static/bb04d66166193fe7f86de32035e98c41/74866/2022-12-16-20-58-21.png 668w,\n/static/bb04d66166193fe7f86de32035e98c41/d69c4/2022-12-16-20-58-21.png 1002w,\n/static/bb04d66166193fe7f86de32035e98c41/9685e/2022-12-16-20-58-21.png 1336w,\n/static/bb04d66166193fe7f86de32035e98c41/15171/2022-12-16-20-58-21.png 2230w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/bb04d66166193fe7f86de32035e98c41/74866/2022-12-16-20-58-21.png\"\n            alt=\"2022 12 16 20 58 21\"\n            title=\"2022 12 16 20 58 21\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h3 id=\"t3-osscreate-t3-app\" style=\"position:relative;\"><a href=\"#t3-osscreate-t3-app\" aria-label=\"t3 osscreate t3 app permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>t3-oss/create-t3-app</h3>\n<blockquote>\n<p>The best way to start a full-stack, typesafe Next.js app<br>\n<a href=\"https://github.com/t3-oss/create-t3-app\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">t3-oss/create-t3-app</a></p>\n</blockquote>\n<p><a href=\"https://github.com/t3-oss/create-t3-app#the-t3-stack\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">T3 Stack</a>というスタックでアプリが作れるボイラープレートです。T3 Stack が初耳だったので調べたところこれらの 3 つの <code>~ty</code> をコンセプトに、Next とか Prisma とかを利用してアプリを作るスタックのことみたいですね。</p>\n<blockquote>\n<p>T3 Stack においては以下 3 つの思想に焦点が当てられている。</p>\n<ul>\n<li>simplicity(簡潔さ)</li>\n<li>modularity(モジュール性)</li>\n<li>full-stack typesafety(フルスタックの型安全)</li>\n</ul>\n<p>— <a href=\"https://zenn.dev/mikinovation/articles/20220911-t3-stack\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">フロントエンド界隈で新しく提唱されている T3 Stack について調べてみた</a></p>\n</blockquote>\n<h3 id=\"toeverythingaffine\" style=\"position:relative;\"><a href=\"#toeverythingaffine\" aria-label=\"toeverythingaffine permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>toeverything/AFFiNE</h3>\n<blockquote>\n<p>There can be more than Notion and Miro. AFFiNE is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.<br>\n<a href=\"https://github.com/toeverything/AFFiNE\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">toeverything/AFFiNE</a></p>\n</blockquote>\n<p>説明文曰く Notion と Miro を合体させた次世代のリアタイ編集できるナレッジベースです。Notion を無限平面にして、手書きやシェイプを置けるようにしたツールのように見えるけど、まだ Coming Soon な機能が多く Notion っぽい WYSIWYG しか 試すことはできませんでした。</p>\n<p>来年あらためてどんな感じにアップデートされたかチェックしてみようと思います。</p>\n<h3 id=\"lensterxyzlenster\" style=\"position:relative;\"><a href=\"#lensterxyzlenster\" aria-label=\"lensterxyzlenster permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>lensterxyz/lenster</h3>\n<blockquote>\n<p>Lenster is a decentralized, and permissionless social media app built with Lens Protocol 🌿<br>\n<a href=\"https://github.com/lensterxyz/lenster\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lensterxyz/lenster</a></p>\n</blockquote>\n<p>Lens Protocol という SNS の根幹機能を提供するプロトコルを利用した SNS です。</p>\n<blockquote>\n<p>Lens Protocol とは</p>\n<p>Lens Protocol は、分散型のレンディングサービスとプロトコルを開発する AAVE による分散型のソーシャルグラフ（人と人との関係図）とそこに紐づくコンテンツを扱うためのプロトコルで、ソーシャルメディアのためのプロトコルといわれることもあります。</p>\n<p>— <a href=\"https://gaiax-blockchain.com/lens-protocol\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Lens Protocol – Aave が開発する分散型ソーシャルグラフプロトコル</a></p>\n</blockquote>\n<h3 id=\"alibabalowcode-engine\" style=\"position:relative;\"><a href=\"#alibabalowcode-engine\" aria-label=\"alibabalowcode engine permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>alibaba/lowcode-engine</h3>\n<blockquote>\n<p>An enterprise-class low-code technology stack with scale-out design / 一套面向扩展设计的企业级低代码技术体系<br>\n<a href=\"https://github.com/alibaba/lowcode-engine\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">alibaba/lowcode-engine</a></p>\n</blockquote>\n<p>いわゆる<a href=\"https://studio.design/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">STUDIO</a>のようにローコードでホームページやダッシュボードを作るためのエンジンっぽいですが、デモの UI が中国語なので読めなくて使い方がよくわかりませんでした…。</p>\n<h3 id=\"faker-jsfaker\" style=\"position:relative;\"><a href=\"#faker-jsfaker\" aria-label=\"faker jsfaker permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>faker-js/faker</h3>\n<blockquote>\n<p>Generate massive amounts of fake data in the browser and node.js<br>\n<a href=\"https://github.com/faker-js/faker\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">faker-js/faker</a></p>\n</blockquote>\n<p>2020 年に起きた Faker.js の Marak 氏の一件（覚えてない方は下記）を Faker.js Team が落ち着かせて、公式の org に移管し、Issue のトリアージ・修正が完了し今年の 1 月に公式ブログ（<a href=\"https://fakerjs.dev/about/announcements/2022-01-14.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">An update from the Faker team | Faker</a>）を発表していたようです。</p>\n<blockquote>\n<p>— <a href=\"https://note.com/takahiroyte/n/nd6cceae3af04\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">OSS のゆく道：Faker.js の顛末｜ Takahiro Ito ｜ note</a></p>\n</blockquote>\n<h3 id=\"upscaylupscayl\" style=\"position:relative;\"><a href=\"#upscaylupscayl\" aria-label=\"upscaylupscayl permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>upscayl/upscayl</h3>\n<blockquote>\n<p>🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy.<br>\n<a href=\"https://github.com/upscayl/upscayl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">upscayl/upscayl</a></p>\n</blockquote>\n<p>AI を用いて低画質な画像を高画質化できるデスクトップアプリです。</p>\n<p>試しに私のアバター（下記）を 40px まで縮小し、2 回 upscale した結果がこちらです\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 40px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'400\\'%20viewBox=\\'0%200%20400%20400\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M101%204l4%207%202%202%203-2c1-2%202-3%202-7V0h-11v4m75-2c0%201-1%204-3%205-4%205-7%205-13%202-7-4-10-4-19-2-6%202-8%202-11%201-5-1-9%200-12%204-1%202-3%202-7%202-7%201-15%207-20%2018-5%2012-6%2014-9%2015-4%203-5%206-5%2028-1%2027-2%2032-6%2038-3%204-3%205-2%2011%201%2016%200%2024-6%2026l-4%202-10%201v7c0%209%200%209%206%209%205%201%208-1%208-5%200-2%201-3%202-3s2%205%200%207l-2%205c-3%2010-11%2011-15%202-2-6-6-3-5%205%200%206%200%207-7%2010l-5%205-6%205-7%205c-3%203-3%203-10%203H0v192h10c8%200%209%200%209-2%200-5%2016-25%2019-25l4-4c11-17%2017-21%2035-19%2020%202%2034%201%2044-2s28-5%2042-5c7%200%2027-2%2041-5l7%203%205%204c2%200%205-7%206-15l4-9%203-6%206-8c6-7%207-12%206-23a54%2054%200%20013-23c1-3%201-4%204-4%204%200%209%203%2011%208%209%2017%2010%2018%2024%2015%2010-2%2013-2%2018%202%204%203%204%203%2012%203%204%200%206%200%2014%206%2011%207%2013%208%2028%201%2016-7%2017-7%2018%205%200%209%200%209%206%2013%204%203%205%203%2013%203h8v32l-1%2031-6-2c-17-8-26-7-26%204%200%204%200%204%204%205l10%203%2012%202h7v6a5138%205138%200%20000-166v21h-22l-29%203c-9%203-14%203-17-1l-2-4-5-11-5-15c-1-6-4-9-12-9-22%200-48-2-55-3-6-2-7-3-10-6l-7-6-7-5-9-4c-11-2-11-3-11-23%200-14%200-16-2-21-3-7-3-7%201-16%208-17%208-25%201-72-2-12-2-17-1-35V0h-16c-15%200-16%200-16%202m-56%2052c-3%201-4%204-1%208%202%204%203%2010%202%2011h-7c-8-2-9-1-13%208-4%207-4%208-4%2017l-1%2014-3%2010v6l7%204c9%207%2012%208%2022%209l12-1c4-3%203-4-6-9l-10-6c-6-8-6-10%201-13l16-5%206%204%208%206c7%201%209%203%2010%207%201%203%200%204-5%209-8%207-8%2011%202%2014%205%201%207%201%2010-2%201-2%204-4%207-5l6-2v-11l2-15c3-8%202-12-1-20-4-11-7-12-13-6-3%203-4%204-8%204-5%200-7-2-7-8v-5l-6-2c-5-2-5-3-9-9-5-11-10-15-17-12m14%2039c-3%201-4%205-1%208%202%202%204%202%209-1%204-2%206-5%204-6-1-1-9-2-12-1m-89%2016l-2%207%204%2013%208-4%201-1c1%200%202-2%202-5%201-4%201-4-1-6-5-4-7-6-7-8%200-3-4-1-5%204M1%20161l-1%206c0%205%200%206%202%206l6%203c7%205%2012%203%2015-3l3-4c3-1%203-4%202-6-2-2-5-1-5%202-1%203-5%204-12%203-3%200-4-1-4-4-1-3-1-3-4-3H1m283%20162c-3%200-10%2012-11%2018l-3%209c-4%207-2%209%2010%2012%209%202%2011%205%2010%209-1%205%205%207%209%203%205-6%205-8%202-17l-2-16c0-7-1-12-5-15l-8-4-2%201m57%2069c-5%202-7%204-7%206s1%202%2012%202h11v-3c-2-6-10-9-16-5\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/f3b499758fd4ee3380097d94a9d1040b/37acc/2022-12-16-21-53-21.webp 40w\"\n              sizes=\"(max-width: 40px) 100vw, 40px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/f3b499758fd4ee3380097d94a9d1040b/6cb0f/2022-12-16-21-53-21.png 40w\"\n            sizes=\"(max-width: 40px) 100vw, 40px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/f3b499758fd4ee3380097d94a9d1040b/6cb0f/2022-12-16-21-53-21.png\"\n            alt=\"2022 12 16 21 53 21\"\n            title=\"2022 12 16 21 53 21\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 160px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'400\\'%20viewBox=\\'0%200%20400%20400\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M103%204a5620%205620%200%20010%2014l5-1%202-1%202-1c1-1%202-1%201-3l3-1c3%201%204%201%206-1%202-3%203-4%203-1h4c2-2%203-6%201-6l-1-1c0-2-2-2-13-2h-13v4m62-2l2%204c2%206%202%207-3%207a80%2080%200%2000-29-1c-6%200-8%201-16%204l-12%204c-8%200-23%2025-25%2043a1212%201212%200%2001-4%2046c0%2014%200%2015-2%2017s-3%204%200%204l4%201c4%202%205%201%205-5%201-7%202-10%205-6v20l-1%2011-3%202h-4c-1-2%200-11%201-13l-1-4-1-3h-3c-1-1-2-1-2%201s-4%206-6%206c-2%201-3%206-3%2017%201%208%201%2011-1%2013l-1%206c0%207-8%2011-13%207a1924%201924%200%2000-4-138l-1-32c-1-6-2%2020-3%2091a2447%202447%200%2001-3%2082l-10%207c-11%2010-17%2013-24%2013H0v194h10c9%200%209%200%208-2-2-2-2-4-1-6l17-20%2013-14c9-11%2011-11%2043-12l31-1%2047-4%2030-3c14-2%2017-2%2019%205%202%205%204%204%205-2%200-11%206-27%2012-35s8-12%206-13c-2-2-1-18%201-24l2-10c2-10%205-9%2015%204l10%2012c5%205%205%205%201%205-2%200-3%201-3%202s5%202%207%200l4-1%206-1c6-3%2010-3%2017%200l14%204c8%200%2014%202%2014%204%200%204%205%206%2018%206l8%201v-3c1-2%206-7%208-7l2%202c1%201%201%201%203-1%205-4%208%202%208%2016l1%2010%2013%201h11v72h-37c-4%202-2%203%206%203h20l11%201v5a5390%205390%200%20000-168v22h-15c-21%200-32%201-42%204l-8%202-2-2-2-5c0-1-1-5-3-7l-3-9c-1-6-5-16-7-18-2-3-21-5-53-5l-17-1-6-5c-7-7-15-12-24-15l-7-3a612%20612%200%20013-98c-3-15-4-32-4-59V0h-22c-21%200-23%200-23%202m-45%2053c-2%202-2%202-1%204l2%202%202%203c1%201%201%201-1%201-2-1-5%200-8%202l-5%202%203%202h5l4%201h6c4%200%208%202%207%204s-2%202-6%202c-16-2-20-2-26-1s-6%201-7%2022c0%2018%200%2019%203%2027l3%209%2017%205%208%202c6%202%2013%202%2022%201%2010-1%2010-1%2010-4l1-5%202-4c0-3-7-2-14%203-6%204-7%204-13-1-3-3-7-4-10-5-4-1-6-2-8-6-5-5-5-7-2-9s15-4%2016-2l4%201%207%203c3%202%206%202%2010%202%206-1%2015%200%2017%201l-2%203c-3%203-3%206%201%2010s4%204%201%208l-2%203%202%203%203%202%203-2c5-4%208-20%207-47%200-9-4-18-9-21-4-3-4-2-7%201l-2%203%202%204c6%208%201%2014-5%207l-4-3-3-2-3-2%203-3%202-4c-1-2-7-4-12-4l-5-2-5-3-4-2h3c3%200%203-1%203-4%200-8-9-12-15-7m23%2038l-8%201c-8%200-9%205-3%208%204%201%2011%202%2011%200l-2-3c-2-3-2-3%204-3s8-1%205-3c-2-2-3-2-7%200m47%2050l-2%203h-3v3l2%207%203%208v4c0%202%203%205%205%205v-3c-1-1%200-3%202-3s2%202%201%205c-1%202-1%202%201%203s2-1%200-11l-2-13v-2l-1%202c-2%204-4%201-3-5%200-4-1-5-2-5l-1%202m89%20183c-5%204-6%208-6%2017l1%207-5%201c-6%203-6%207%201%208l11%203c6%201%2023%200%2025-1%201-2-2-3-6-3s-4%200-4-2l3-23c0-4-2-6-8-8-7-3-8-2-12%201m60%2064l-5%202%201%203c2%204%205%205%2013%205%207%200%208-1%209-6v-4c1-2-12-2-18%200\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/856da4d15c80b7d7e74b4ec40d2da05d/60a22/2022-12-16-21-53-52.webp 160w\"\n              sizes=\"(max-width: 160px) 100vw, 160px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/856da4d15c80b7d7e74b4ec40d2da05d/69538/2022-12-16-21-53-52.png 160w\"\n            sizes=\"(max-width: 160px) 100vw, 160px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/856da4d15c80b7d7e74b4ec40d2da05d/69538/2022-12-16-21-53-52.png\"\n            alt=\"2022 12 16 21 53 52\"\n            title=\"2022 12 16 21 53 52\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span>\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 640px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'400\\'%20viewBox=\\'0%200%20400%20400\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M45%2015a7182%207182%200%20001%20165c1%202%201%202-5%205l-12%208c-10%209-15%2012-23%2013H0v194h9l8-1-1-2c-2%200-1-4%202-8%201-3%207-9%2013-15l14-16c6-8%209-10%2017-11%208-2%2035-3%2043-1l6-1%2051-5a548%20548%200%200050-4c3%201%206%205%206%207l2%202%201-3c-2-8%208-31%2018-44%202-3%202-3%201-4-3-2-3-19%200-27l3-8%201-6c3-3%207%200%2015%2011l11%2012%203%204%203%201%204-1%204-2%203-1h3c2%200%205%200%209%202l15%204c9%201%2014%203%2014%205%200%204%203%205%2017%205l8%201%201-3c0-3%201-4%203-4l2-2c0-1%203-1%204%201s4%201%204-1c1-2%201-2%203%200l3%201%201%2012v13h4l13%201h9v75h-11l-26-1c-2-1-4%200-4%202l20%201h21v5a5280%205280%200%20000-168v21h-19c-21%201-29%202-40%204-8%202-10%202-10-4l-2-6-6-16-4-14c-2-1-21-3-46-4l-26-1-5-4c-5-7-12-11-22-15l-9-4v-30l-1-30c-1%200-1-4%202-9%202-5%202-6%202-19%200-9-1-14-2-16l-1-41V0h-47l-1%203c-2%203-1%205%200%203%202-2%203-1%202%202v3l1%201-3%201h-17c-17%200-22%201-34%207l-7%201h-1l1-2%203-2%203-1%205-3%205-3%203-1c5%201%207-2%205-7%200-2-1-2-14-2h-13l-2%2020c2%201%201%206-2%208-5%203-11%2013-13%2021a315%20315%200%2000-5%2082c0-3%200-3%202-2%202%203%201%208-3%208l-2%202h-1c-1-1-1-1-1%201-1%202-1%202-2%201-1-2-1-2-1%200l-1%2010-1-3c-1-7-3-6-3%202l-1%2010%201%204c2%202%201%206-4%2016-2%203-8%205-11%203l-2-2-1-27a1500%201500%200%2000-2-118c-1-37-2-48-2-21m78%2037l-2%202-2%201v1l1%202%201%203%201-1c-1-2%200-3%202-1l-1%202%202%201h8v-3c2-2%201-3-2-4l-4-3h-4m-8%2013c-5%202-6%203-6%205h8c2-1%203-1%204%201l3%201%204-1%201-2c-1-3-5-6-6-4h-8m19%2011c-2%202-3%202-7%201a181%20181%200%2000-18-1h-6c0%201-4%202-6%201-3-3-5%2039-1%2045v2l1%201%201%203v1l1%203c0%201%200%202%202%201l1%202c-1%202-1%202%203%201l5%201%208%202%207%202c3%202%2016%203%2016%202l2-1h8c2%200%203%200%203-2l2-3c1-1%202-2%201-3l1-3%201-1c0-3-8-2-11%201l-4%202-1%202c-1%202-1%202-2%201l-3-1-2-1c-1-2-9-8-13-8-6-1-13-9-12-13%201-3%2016-7%2018-4%201%202%2017%206%2022%206h11c7%201%207%202%205%204-3%204-3%205%200%208l2%204v6c-2%202%200%205%203%204l3%201%201%201c1-1%202-7%202-19a72%2072%200%20012-17V96c-1-11-4-18-10-19-2-1-2-1-1%202s1%203-2%202c-4%200-4%200-1%203%202%202%203%209%201%207l-2%201c0%202-4%201-5-1l-6-4c-5-2-6-3-3-6%202-2%202-5%200-5l-2-1-1-1h-10c-2-1-3%200-4%202m11%2015l-8%201-6%201c0%201-1%202-3%202-2%201-2%201%200%203s13%205%2015%204l-2-3c-4-2-3-4%203-3%208%200%209-1%206-4-3-2-3-2-5-1m-59%2028l-1%2012-2%2012v4l2%202-1%201h-1l-1%202%201%202%202-1%201-1c1%200%202-1%202-3v-6c1-7%201-25-1-26l-1%202m104%2023c0%202%200%203-2%203-3%201-3%207%202%2025l3%204h4l-2-3h-1c-3%200-4-5-4-12%202-14%202-19%201-19-2-1-2%200-1%202m119%20168c-3%202-4%205-2%206%203%203%2015%200%2015-3%200-4-8-5-13-3m-31%2015c-5%203-6%2010-5%2019%201%205%200%206-6%207-2%200-2%201-2%204s0%204%203%204l9%202%2020%201c10-1%2012-1%2013%201%201%201%201%201%201-1s-2-3-11-3h-6l2-6c3-9%204-22%202-25-3-4-15-6-20-3m29%2041l-5%204-6%203c-4%203-20%203-27%201l-4-1c1%202%208%204%2019%204%2016%200%2017%200%2022-7%204-5%205-8%201-4m35%2022l-3%201h-7l1%203%202%204c1%202%202%202%205%202s4%200%203%201%200%201%205%201%206%200%205-1-1-1%201-1c1%200%202-1%202-4l2-5c0-2-1-2-7-2l-9%201\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/19a9381624c0918a12627dd69b2489ce/5251b/2022-12-16-21-54-09.webp 167w,\n/static/19a9381624c0918a12627dd69b2489ce/7390e/2022-12-16-21-54-09.webp 334w,\n/static/19a9381624c0918a12627dd69b2489ce/0ba47/2022-12-16-21-54-09.webp 640w\"\n              sizes=\"(max-width: 640px) 100vw, 640px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/19a9381624c0918a12627dd69b2489ce/21521/2022-12-16-21-54-09.png 167w,\n/static/19a9381624c0918a12627dd69b2489ce/86d36/2022-12-16-21-54-09.png 334w,\n/static/19a9381624c0918a12627dd69b2489ce/6af66/2022-12-16-21-54-09.png 640w\"\n            sizes=\"(max-width: 640px) 100vw, 640px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/19a9381624c0918a12627dd69b2489ce/6af66/2022-12-16-21-54-09.png\"\n            alt=\"2022 12 16 21 54 09\"\n            title=\"2022 12 16 21 54 09\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<p>流石に元画像が小さすぎたのか、ちょっと想像したのと違いました。<br>\n元画像をリサイズせずにオプションをデジタルアートに変えて実行した結果はこちらです。微妙な違いですがちゃんと高画質になっている。柴犬の 🍞 感が増してもっちりしています。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'400\\'%20viewBox=\\'0%200%20400%20400\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M42%208a1778%201778%200%20003%2097c-1%2011-1%2014%201%2019l1%2015v15l-1-13v-11l-1%208-2%209c-1%201%201%2016%202%2017v1l-1%203c0%203%200%203-1%202-1-2-1-2-1%201l-2%204v1l-1%201c-2%201-2%201%201%201%204%200%205-1%203-2-1-1%202-1%206-1%205%200%208%201%209%202l4%201c2%200%202%200%202%202l-1%202h-5c-5%200-19%203-22%205l-8%205c-13%2012-15%2013-18%2011-4-2-5-1-5%202l-1%204-1-1c1-1%200-4-2-4-1-1-1%2013-1%2098v98h7c9%200%209%200%2013-9%203-7%205-11%2013-16l5-4%204-5%205-8c3-8%209-10%2032-10%2019%200%2037-1%2048-4%2011-2%2026-3%2044-3l23-2c6-1%2010-1%2013%201l2%201h1l3%201%205%203%203%202h-6c-6%200-15%203-15%204l-1%201c-2%200-2%200-2%202%201%202%201%202-2%203-2%200-3%201-3%202%201%201%202%203%202%201l2-1c2%200%206-3%206-5l12-6c2%200%202%201%202%203%200%204%204%205%208%203l2-2-3-2-2-4v-4c-2-3-1-10%203-18l3-8c0-2%2010-15%2012-16l1-4c0-4%202-5%203-2%200%201%201%201%204-1%201-1%201-1-1-1-6%201-9-14-5-26l3-7h1c-1-2%201-5%203-5%205%200%2019%2020%2017%2024v10l9-7h-2c-2%200-2%200-1-1h25l13%204c8%201%2014%203%2019%206%208%204%2013%208%2010%208-2%200-2%201%200%205%201%203%203%204%204%201%201-2%201-2-1-4-1-1-1-2%2012-8%2013-7%2016-8%2019-6s3%205%200%204c-2%200-2%200-1%202%202%202%202%209%200%2016-1%202%2010%205%2020%206h9v63l-2%201-2%202h-6v-8h-11c-2%200-3-1-6-4-5-5-7-11-7-23-1-9-2-12-5-12v3l2%2010%201%2015c0%207-1%2015-5%2020l-1%202a281%20281%200%200140%209%205217%205217%200%20002-167v20l-9%201h-14a76%2076%200%2000-37%207h-5l-2-5a748%20748%200%2000-14-33c-5-7-6-7-39-8h-30l-3-4c-7-7-10-10-14-11l-9-3-10-4-3-1-1-21a140%20140%200%20015-56c2-7%202-11%200-14-2-2-3-6-1-7v-1c-2-2-3-11-4-52V0h-27v5c0%208-2%2010-2%202V0h-8v11l-6%201c-8%201-13-1-9-4l3-4%201-4h-3c-4%200-4%200-5%205l-2%206%201-6V0h-8v8h-5c-4-1-5-1-7%202-3%202-3%202-3%200%201-2%201-2-1-1l-1-3c1-3%201-3-2-2-2%201-3%203-1%203s2%203%200%205c-1%202-1%202%201%202l-1%201c-5%201-5%200-6-8l-1-7c-1%200-1%206%201%2013%200%202%200%203-2%203-2%201-2%200-2-6V1l-3-1c-3%200-3%200-2%204l-1%2015-1-9-1-10h-7v26c-2%204-9%209-10%207l-1-14c0-14-1-19-2-19l-1%2020c0%2019%200%2020-2%2029l-3%2018c0%205%200%207-1%205l-1-2-1-2-1-2v2l1%203v1l-1%203-1-5V60l-1-4c0-2%200-3-1-2%200%202%200%202-1%201v-3a750%20750%200%2000-2-52l-1%2039a924%20924%200%2001-1%2074%20772%20772%200%2000-3-18v30l-5-1h-5l-1-6-1-6v14l-1-5v-12c0-5%200-10-2-15V78c0-6%200-10-2-16-2-8-2-9-1-14l1-13-1-22V0h-6v8m78%2044l-5%201%207%202c8%201%2014%204%2015%206%200%203-3%203-9%201-7-4-10-4-14-3-2%200-2%200%203%202l5%201h-5c-4%200-5%201-7%203-3%203-5%2010-4%2011l10%204v-1c-2-1-2-1%200-1l6-1c4-2%206-1%204%201-3%202-1%203%203%201%207-4%204-12-5-16l-2-1c3%200%207%202%2011%204%204%203%2010%205%2011%203%201-1-2-8-3-8l-5-5c-7-6-10-7-16-4m-7%2015l-2%203c-1%202-1%202%202%202h15l1-1%202-1-2-1-5-1c-3-2-9-3-11-1m33%204v6l1%201c-1%201%203%206%205%206v-2c0-2%200-2%202-2l6%202c5%201%207%203%205%204h4l2-1-2-2c-2-2-11-5-15-5l-3-1c0-2-1-2-3-1v-5h-2m-45%202c-4%205-7%2038-6%2048%202%209%205%2014%209%2014%202%200%205%201%207%203%208%205%209%205%2012%203%204-1%2014-3%2015-2%201%202%2010%206%2013%206l6-2c4-4%201-6-7-7l-10-2-12-2c-11%200-10%200-10-1%200-4-2-7-5-6-2%200-2%200-1-2l1-3%201-5c1-3%203-5%205-3l2-1c7-6%2016-5%2024%202%205%204%205%204%206%202l1-1%202%203%203%206c0%203%202%207%205%2010l1%205c0%205%201%206%205%206l3%202c1%201%201%201%203-2%204-5%205-10%207-22a10026%2010026%200%20011-27l-1-3c-1-3-7-7-9-5-5%203-17%202-23-3l-3-1c0%201-2%200-3-2-3-5-4-6-11-2-11%206-22%204-29-5l-2-1m28%2019c-2%200-3%201-4%203s-1%204%201%202h1l3%201%203%202c2%202%205%202%209%201l4%201c3%202%204%200%201-4-2-5-11-8-18-6m-75%2034c-2%202-1%2015%201%2019l1%2011c-1%2010%200%2020%202%2016l1-1c0%202%201%203%203%202v-19c-1-8-1-8%202-10%203-1%204-3%202-3l-1-7v-8H54m-43%206l-3%203H6l-3-1-3-1%201%2011%203%2021c3%2011%204%2015%202%2015v-2c0-3-2-6-3-4H2l-1-1c-2%200-1%205%200%207%203%202%208%201%207-1l1-1%201%203h6c2-1%202-1%200-1-1%200-2-1-2-3s1-3%202-2%202%202%201%203h1l2-2h2c1%202%206%201%2013-1%205-2%205-2%200-2l-2-2c0-1-7%200-10%202-2%202-5-7-5-16l-1-7-2-5-2-3v-2c2%200%201-5-1-6-2%200-2-1%202-2%204-2%202-3-3%200m151%2027l-5%204c-3%201-8%207-8%2010-1%209%2014-4%2015-13%201-6%201-6-2-1m147%20153c-5%201-6%203-3%205l3%201%203%202c2%201%203%201%209-1%206-3%206-3%202-6-4-2-8-2-14-1m-29%2010c-5%202-7%205-7%2012%201%206%200%207-1%209l-2%203-1%201-2%203-2%204c-2%201-3%205-1%205l1-1h10l1-1v1c-1%202-1%202%201%204l3%204c0%203%206%203%208%200l2-1h4c3-1%203-1%202%201%200%202%200%202%202%202l3-1h1l3-2%203-1%201-1%201-3h-2c-3%202-4%200-7-6l-3-8v-6l1-4c2-2%202-2%201-5-4-8-13-12-20-9m-177%2031c-6%201-8%202-3%202%206%200%2011%207%208%2011v8c0%206%200%207%202%209s3%201%201-2v-3l1-2v-4c1-4-2-20-3-20l-6%201m167%2017c11%209%2024%2011%2033%205l8-4c3-2%202-2-1-1l-10%201c-9%200-12%200-11%203s-5%202-13-2c-8-5-10-5-6-2m75%2017l-6%203c-2%202-4%203-7%203l-6%203-5%201h-19c-14%200-22-2-31-6-5-3-7-2-3%200%202%201%203%203%202%203l2%201c1-1%204%200%206%201%208%203%2015%204%2048%204h32l1-4c1-6-4-10-7-5-2%202-4%201-3-1%200-3-1-4-4-3\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/62b55c84119d28bf0a9a7e6f0570e6cd/5251b/2022-12-16-22-01-01.webp 167w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/7390e/2022-12-16-22-01-01.webp 334w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/7c056/2022-12-16-22-01-01.webp 668w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/0a92e/2022-12-16-22-01-01.webp 1002w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/7fa3c/2022-12-16-22-01-01.webp 1336w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/78de1/2022-12-16-22-01-01.webp 1840w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/62b55c84119d28bf0a9a7e6f0570e6cd/21521/2022-12-16-22-01-01.png 167w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/86d36/2022-12-16-22-01-01.png 334w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/74866/2022-12-16-22-01-01.png 668w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/d69c4/2022-12-16-22-01-01.png 1002w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/9685e/2022-12-16-22-01-01.png 1336w,\n/static/62b55c84119d28bf0a9a7e6f0570e6cd/161ec/2022-12-16-22-01-01.png 1840w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/62b55c84119d28bf0a9a7e6f0570e6cd/74866/2022-12-16-22-01-01.png\"\n            alt=\"2022 12 16 22 01 01\"\n            title=\"2022 12 16 22 01 01\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h3 id=\"apihero-runjsonhero-web\" style=\"position:relative;\"><a href=\"#apihero-runjsonhero-web\" aria-label=\"apihero runjsonhero web permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>apihero-run/jsonhero-web</h3>\n<blockquote>\n<p>JSON Hero is an open-source, beautiful JSON explorer for the web that lets you browse, search and navigate your JSON files at speed. 🚀<br>\n<a href=\"https://github.com/apihero-run/jsonhero-web\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">apihero-run/jsonhero-web</a></p>\n</blockquote>\n<p>前述の jsoncrack.com のように JSON の構造を可視化できるツールですが、こちらの方は可視化というよりナビゲーションに特化しており、ぱんくずで jump したりができるようです。</p>\n<p><video src=\"https://jsonhero.io/build/_assets/JsonHero2-TQVVSEFW.mp4\" width=\"100%\" autoplay muted></video></p>\n<p><a href=\"https://jsonhero.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://jsonhero.io/</a></p>\n<h3 id=\"total-typescriptbeginners-typescript-tutorial\" style=\"position:relative;\"><a href=\"#total-typescriptbeginners-typescript-tutorial\" aria-label=\"total typescriptbeginners typescript tutorial permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>total-typescript/beginners-typescript-tutorial</h3>\n<blockquote>\n<p>An interactive TypeScript tutorial for beginners<br>\n<a href=\"https://github.com/total-typescript/beginners-typescript-tutorial\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">total-typescript/beginners-typescript-tutorial</a></p>\n</blockquote>\n<p>Web 上のテキストエディタで、TypeScript の初心者向けのチュートリアルを提供しているプログラミング学習サービス。エディタに型チェック機構を搭載しており、型エラーを解消すると次に進めるようになってます。</p>\n<h3 id=\"divamguptadiffusionbee-stable-diffusion-ui\" style=\"position:relative;\"><a href=\"#divamguptadiffusionbee-stable-diffusion-ui\" aria-label=\"divamguptadiffusionbee stable diffusion ui permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>divamgupta/diffusionbee-stable-diffusion-ui</h3>\n<blockquote>\n<p>Diffusion Bee is the easiest way to run Stable Diffusion locally on your M1 Mac. Comes with a one-click installer. No dependencies or technical knowledge needed.<br>\n<a href=\"https://github.com/divamgupta/diffusionbee-stable-diffusion-ui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">divamgupta/diffusionbee-stable-diffusion-ui</a></p>\n</blockquote>\n<p>Stable Difusion の面倒な環境構築を、このアプリをインストールするだけで完了させるデスクトップアプリ。説明文で<code>on your M1 Mac</code>と言ってますがダウンロードページを見ると Intel でも動くようになってるようです。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.25748502994013%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'284\\'%20viewBox=\\'0%200%20400%20284\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M9%2022c-2%201-1%2010%201%2010%203%202%2050%201%2051%200V22c-1-1-51-2-52%200m331%2086v14h44l1-7-1-7h-44M77%20145c-3%200-4%201-5%202l-2%202c-3%200-3%203%200%205%202%202%202%202%201%203l-2%203c0%202-2%201-5-1s-4-3-4-1l-3%205a23%2023%200%2000-4%2010l-2%202c-2%201-2%201%201%202l4%202c0%203-8-2-10-5-2-6-1-7%203-13%203-5%204-8%201-4l-5%204c-2%201-2%201-2-3l1-5c1-2%201-2-1%200l-2%204c0%202%200%202-1%201v7c0%209-1%2010-3%203-1-5-3-3-2%201%200%204%200%204-5%201l-2-3%203-3c1-2%201-3%204-3s4-1%203-3h-3c-2%202-1%200%200-2%202-2%201-4-2-4-2%201-2%200-1-1v-3l4-1c3-2%203-2-8-2l-12%201-1%2052%201%2055%2052%201c49%200%2052%200%2053-2%203-2%203-102%200-106-1-2-1-2-21-2l-23%201m71%201c-3%202-3%20104%200%20106a838%20838%200%2000105%200l1-19v-18h-8l-9-1-1-36v-34h-43c-38%200-44%200-45%202m209-1v34l-1%2035-41%201h-39v18c0%2017%200%2019%202%2020%203%201%20104%201%20105-1v-46a26268%2026268%200%2001-3-60v3l-2%207c0%204%200%205-1%204l-1%201v1l-2-1c0-1-1-1-2%201l-2%201h-1c-3%202-5-1-5-9v-6c2%203%206%203%209%200l3-3h-19\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/fafa3a8e7c0fc58f409bef18b383a58e/5251b/2022-12-16-22-16-56.webp 167w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/7390e/2022-12-16-22-16-56.webp 334w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/7c056/2022-12-16-22-16-56.webp 668w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/0a92e/2022-12-16-22-16-56.webp 1002w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/7fa3c/2022-12-16-22-16-56.webp 1336w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/2eb6a/2022-12-16-22-16-56.webp 1598w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/fafa3a8e7c0fc58f409bef18b383a58e/21521/2022-12-16-22-16-56.png 167w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/86d36/2022-12-16-22-16-56.png 334w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/74866/2022-12-16-22-16-56.png 668w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/d69c4/2022-12-16-22-16-56.png 1002w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/9685e/2022-12-16-22-16-56.png 1336w,\n/static/fafa3a8e7c0fc58f409bef18b383a58e/ae28e/2022-12-16-22-16-56.png 1598w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/fafa3a8e7c0fc58f409bef18b383a58e/74866/2022-12-16-22-16-56.png\"\n            alt=\"2022 12 16 22 16 56\"\n            title=\"2022 12 16 22 16 56\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<p>自分のアバターを使って試してみましたが Image to Image もできました。誰やねんって感じですが要素としては全て揃ってます。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 77.24550898203593%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'308\\'%20viewBox=\\'0%200%20400%20308\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M22%2014c-2%201-2%208-2%20133l1%20134c5%203%2017%203%20179%203s174%200%20179-3l1-134c0-129%200-132-2-133H22m19%2037h-6v25l1%2024c2%200%203-2%201-18l-1-24v-6h4c2%200%203%200%202%201v10l1%204a687%20687%200%20002%2029c2%200%202%200-1%202l-3%201%202%202%202%203h-1c-1-1-1%200-1%203s0%204%203%206c4%203%205%202%204-8-2-16-2-30%200-20V70c0-18%200-20-2-20l-7%201m14%200c-2%200-2%201-2%209l3%2023c2%202%202%202%202-5s0-7%201-2l1-11c0-10%200-15-1-14l-1%203v4l-1-4c0-3-1-3-2-3m58%2016v52l4%201%205%202%203%202c2%203%204%203%2015%203%2013%201%2013%201%2016%2010%203%206%203%206%206%206l12-1h9V50h-70v17m182%2023v26l3%203%205%206c2%203%202%203%2010%203%2020-1%2023%200%2022%202-1%201-2%202-5%202-4%200-5%202-2%206%202%203%204%203%2018%201h5v-36l-1-37-29-1h-27l1%2025M72%2079l-2%208c-1%2012%202%2016%206%208%202-5%207-6%2011-4l3%201c1%201%206%206%206%208%201%203%204%203%204%201%202-6%202-15%201-16-2-3-4-2-4%200s0%202-4%201l-5-4c-1-4-3-4-6-1-2%202-7%202-7%200s-3-3-3-2m188%207c-2%203-2%203-1%2010%200%209%201%2011%204%208l5-1c4-1%204-1%203-5s1-6%205-5c3%200%203%200%202-2-1-7-12-10-18-5m-10%2015l-3%207-3%203-5%206c-2%202-3%203-6%203s-3%200-3%204c0%203%200%203%203%203s7-4%207-7l4-5%205-9%204-7c2-2%203-3%201-3-1-1-3%201-4%205M46%20117h-6l-5%201v4c0%205%203%205%209%201l6-4%201-1h3c3%200%203%200%202-1H46m79%2031l-1%208c0%204%200%205-2%208-4%205-6%2011-5%2015%201%203%201%204-1%204l-2-1c0-2-3-1-4%201l-4%202%201-3%206-2%203-1c0-1-7-3-8-2l-14%201c-15%201-27%203-21%203l3%201v10c0%202%200%202-1%200l-1-4c0-4%200-5-2-5l-3-1-7-2c-5%200-6%200-8%202s-2%202-1%203v1c-2%200-11%208-11%2011l-1%202h49a789%20789%200%200079-2c-1%202%200%202%207%202l7-1-12-4c-3-1-3-1-2-3v-9c0-6%201-8%202-7h1l-1%206%201%204c2%201%202%201%202-3s0-5%201-4l2%201h4l1%203c1%203%201%201%201-6v-9h-3c-7%200-8-1-7-6%200-3%200-4-2-4l-9%205-1%202-1-3c0-1-6-4-12-5-6-2-12-3-12-1l-1%201c-2%201-2%201-2-1%200-3-4-10-6-10l-2%203m213%200l-1%203c1%201-3%207-5%207s-6%206-8%2011c-1%205-1%205%203%202%203-1%208-8%208-10l1-3%203-5c3-6%204-6%202%200l-1%206c2%200%203-1%204-7%200-5-2-6-6-4m-36%205l-3%202c-4%200%201%2011%207%2016%204%204%208%205%207%203l-2-3c-2-4%200-14%203-14%202%200%203%200%203-2%200-3-2-4-4-1h-1c0-2-1-2-4-2h-4l-2%201m33%2012c-1%204-12%2017-14%2017-3-1-4%201-4%202%201%202%203%202%2012%202%2012%200%2012%200%2011-2v-6c1-4%200-10-2-14-2-1-2-1-3%201m-41%205l-4%208-1%206c0%202%201%202%208%202%2015%202%2017%201%2015-4l-1-4c0-2%200-2-1-1%200%201-1%201-5-3a34%2034%200%2001-6-8c-2-1-2%200-5%204m-25%201l-8%201c-9%200-12%205-4%207%209%201%2017%204%2016%206l2%201%206-2c6-1%204-4-3-4l-5-1%206-1%204-1h2c1%203%203%202%201-1l-1-1h-2l-3-2c-2%200-2%200%200-2%201-2%201-2-3-2l-8%202m-132%200l-1%204-2%205c-2%203-2%204%200%204l3%202c3%202%2013%201%2013-1l-1-1c-1%201-3-5-3-8%200-5-6-8-9-5m114%2011c-1%202-5%203-7%201l-4-1c-3-1-3-1-3%201%200%203%200%203%208%203h21l-4-3c-5-3-9-4-11-1\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/e0c7952a19a785f5646ba9fc26fd0a74/5251b/2022-12-16-22-49-59.webp 167w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/7390e/2022-12-16-22-49-59.webp 334w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/7c056/2022-12-16-22-49-59.webp 668w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/0a92e/2022-12-16-22-49-59.webp 1002w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/7fa3c/2022-12-16-22-49-59.webp 1336w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/bfbdb/2022-12-16-22-49-59.webp 2242w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/e0c7952a19a785f5646ba9fc26fd0a74/21521/2022-12-16-22-49-59.png 167w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/86d36/2022-12-16-22-49-59.png 334w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/74866/2022-12-16-22-49-59.png 668w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/d69c4/2022-12-16-22-49-59.png 1002w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/9685e/2022-12-16-22-49-59.png 1336w,\n/static/e0c7952a19a785f5646ba9fc26fd0a74/6578c/2022-12-16-22-49-59.png 2242w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/e0c7952a19a785f5646ba9fc26fd0a74/74866/2022-12-16-22-49-59.png\"\n            alt=\"2022 12 16 22 49 59\"\n            title=\"2022 12 16 22 49 59\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h3 id=\"formkitauto-animate\" style=\"position:relative;\"><a href=\"#formkitauto-animate\" aria-label=\"formkitauto animate permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>formkit/auto-animate</h3>\n<blockquote>\n<p>A zero-config, drop-in animation utility that adds smooth transitions to your web app. You can use it with React, Vue, or any other JavaScript application.<br>\n<a href=\"https://github.com/formkit/auto-animate\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">formkit/auto-animate</a></p>\n</blockquote>\n<p>react-sprint のようなアニメーションを入れるライブラリ。特定のライブラリに依存せず動作するのが特徴なようです</p>\n<h3 id=\"vercelsatori\" style=\"position:relative;\"><a href=\"#vercelsatori\" aria-label=\"vercelsatori permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>vercel/satori</h3>\n<blockquote>\n<p>Enlightened library to convert HTML and CSS to SVG<br>\n<a href=\"https://github.com/vercel/satori\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/satori</a></p>\n</blockquote>\n<p>Vercel が開発する、HTML と CSS を SVG に変換するツール。レイアウトの計算には React Native でお馴染みの Yoga が使われているようです</p>\n<p>Vercel で HTML/CSS から OG 画像を生成するユーティリティの<a href=\"https://www.npmjs.com/package/@vercel/og\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vercel/og</a>でも内部的に Satori が使われているようです</p>\n<p>こちらに作者による解説スレッドがあります。</p>\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">Some tech details and stories behind <a href=\"https://twitter.com/vercel?ref_src=twsrc%5Etfw\">@vercel</a>’s OG image generation and Satori lib...<br><br>There’s been a demand to generate dynamic and fancy OG images for a long time. And we have some solutions but they all seem to be a little “limited”.</p>&mdash; Shu (@shuding_) <a href=\"https://twitter.com/shuding_/status/1579607964549513217?ref_src=twsrc%5Etfw\">October 10, 2022</a></blockquote> <script async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>\n<h3 id=\"bishopfoxunredacter\" style=\"position:relative;\"><a href=\"#bishopfoxunredacter\" aria-label=\"bishopfoxunredacter permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>BishopFox/unredacter</h3>\n<blockquote>\n<p>Never ever ever use pixelation as a redaction technique<br>\n<a href=\"https://github.com/BishopFox/unredacter\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">BishopFox/unredacter</a></p>\n</blockquote>\n<p>文字にモザイクをかけた画像から、元のテキストを復元できるツールなようです。デモ動画（Gif）を見る限りモザイクをかけた画像を生成し元画像との差分を検知する総当たりをしてるようです。</p>\n<p><img src=\"https://github.com/BishopFox/unredacter/raw/main/img/wow_such_secrets.gif\" alt=\"\"></p>\n<h3 id=\"alyssaxuuomni\" style=\"position:relative;\"><a href=\"#alyssaxuuomni\" aria-label=\"alyssaxuuomni permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>alyssaxuu/omni</h3>\n<blockquote>\n<p>The all-in-one tool to supercharge your productivity ⌨️<br>\n<a href=\"https://github.com/alyssaxuu/omni\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">alyssaxuu/omni</a></p>\n</blockquote>\n<p>Chrome のタブや履歴、お気に入りから検索できるランチャー的な Chrome 拡張です。とても便利そうですがタブを探すだけなら Chrome のショートカット<code>⌘+shift+A</code>で曖昧検索できるので個人的には使い道はなさそうです</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.65269461077844%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'294\\'%20viewBox=\\'0%200%20400%20294\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M0%20147v147h401V0h-11c-8%200-10%200-9%201%201%202%200%203-3%203-2%200-2%200-1-1l1-2-189-1H0v147m76-66l-1%203c1%204%208%204%2010%201l2-1-1%202v1l2-2c0-2%200-2%201-1s1%201%201-1v-2l1%203c0%203%200%203%204%203%203%200%203-1%203-4v-3h-5l-5%201h-1c-2-1-4%201-3%203l-1%201-2-2c0-3-4-4-5-2m71%200v5l3-2c0-2%201-2%201-1l-1%203v1l2-2%202-2v2c-1%202-1%202%207%202s8%200%208-2l-1-3v-1c1-1%200-1-3-1s-4%200-3%201v1c-1%201-2%200-2-1l-3-1c-3%200-3%200-2%201s1%201-1%201l-2-1h-5m-79%2068l-2%201-4-1-4%201h-1c-2-1-4-1-4%201l-1%201v-3l-2-1-2%202%201%201v2c3%201%205%201%205-1l1-1%201%202h2c0%202%203%201%204-1h1c0%202%202%203%202%201h1c1%201%201%201%202-1l1-2v5l1-3c1-2%201-2%202%200%201%203%205%203%205%200s-3-4-3-1c-1%201-1%201-1-1%200-3-2-3-5-1m-45%2036v5h11v-11H23v6m85-3h-2c-1-2-2-1-3%203%200%203%203%204%205%201h2c3%202%209%202%2010%200l1-1%201%202v-2h1l2%202c1%201%205%202%205%200l-1-1v-4c0-1-4-1-5%201h-6c-1-2-2-2-5%200-4%201-4%201-3-1%200-2%200-3-2%200m140%203c0%204%200%204%202%203h9c7%200%207%200%206-3l1-2%201%202%201%202%201-3v-3h-9c-8%200-9%200-8%202v1l-1%202-1%201-1-3v-3l-1%204\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/ba1e7334fa8220d1c654cc97690979fc/5251b/2022-12-16-22-40-04.webp 167w,\n/static/ba1e7334fa8220d1c654cc97690979fc/7390e/2022-12-16-22-40-04.webp 334w,\n/static/ba1e7334fa8220d1c654cc97690979fc/7c056/2022-12-16-22-40-04.webp 668w,\n/static/ba1e7334fa8220d1c654cc97690979fc/0a92e/2022-12-16-22-40-04.webp 1002w,\n/static/ba1e7334fa8220d1c654cc97690979fc/7fa3c/2022-12-16-22-40-04.webp 1336w,\n/static/ba1e7334fa8220d1c654cc97690979fc/9e175/2022-12-16-22-40-04.webp 1428w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/ba1e7334fa8220d1c654cc97690979fc/21521/2022-12-16-22-40-04.png 167w,\n/static/ba1e7334fa8220d1c654cc97690979fc/86d36/2022-12-16-22-40-04.png 334w,\n/static/ba1e7334fa8220d1c654cc97690979fc/74866/2022-12-16-22-40-04.png 668w,\n/static/ba1e7334fa8220d1c654cc97690979fc/d69c4/2022-12-16-22-40-04.png 1002w,\n/static/ba1e7334fa8220d1c654cc97690979fc/9685e/2022-12-16-22-40-04.png 1336w,\n/static/ba1e7334fa8220d1c654cc97690979fc/ccf0c/2022-12-16-22-40-04.png 1428w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/ba1e7334fa8220d1c654cc97690979fc/74866/2022-12-16-22-40-04.png\"\n            alt=\"2022 12 16 22 40 04\"\n            title=\"2022 12 16 22 40 04\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h3 id=\"sansterlama-cleaner\" style=\"position:relative;\"><a href=\"#sansterlama-cleaner\" aria-label=\"sansterlama cleaner permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Sanster/lama-cleaner</h3>\n<blockquote>\n<p>Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people from your pictures or erase and replace(powered by stable diffusion) any thing on your pictures.<br>\n<a href=\"https://github.com/Sanster/lama-cleaner\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Sanster/lama-cleaner</a></p>\n</blockquote>\n<p>動画を見ての通りで画像から不要な箇所を削除できるアプリ。前述の Diffusion Bee（divamgupta/diffusionbee-stable-diffusion-ui）でも同じことができますが、こちらの方が機能を絞っている感じがします。prompt を追加することで別の画像に差し替えるなんかも可能です。</p>\n<p><video src=\"https://user-images.githubusercontent.com/3998421/196976498-ba1ad3ab-fa18-4c55-965f-5c6683141375.mp4\" width=\"100%\" autoplay muted></video></p>\n<h3 id=\"tremorlabstremor\" style=\"position:relative;\"><a href=\"#tremorlabstremor\" aria-label=\"tremorlabstremor permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>tremorlabs/tremor</h3>\n<blockquote>\n<p>The react library to build dashboards fast.<br>\n<a href=\"https://github.com/tremorlabs/tremor\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">tremorlabs/tremor</a></p>\n</blockquote>\n<p>管理画面・ダッシュボード作る系のコンポーネント＆チャートライブラリ</p>\n<h2 id=\"2021-年にもっともスターを獲得したリポジトリ\" style=\"position:relative;\"><a href=\"#2021-%E5%B9%B4%E3%81%AB%E3%82%82%E3%81%A3%E3%81%A8%E3%82%82%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%92%E7%8D%B2%E5%BE%97%E3%81%97%E3%81%9F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA\" aria-label=\"2021 年にもっともスターを獲得したリポジトリ permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2021 年にもっともスターを獲得したリポジトリ</h2>\n<p>次に新しいか否かに関わらず 2021 年もっともスターを獲得したリポジトリを見ていきます。</p>\n<p>抽出条件:</p>\n<ul>\n<li>2022 年に一回以上トレンドに載ったリポジトリ</li>\n<li>今年獲得したスター数が大きい順にソート</li>\n<li>上位 20 件抽出</li>\n</ul>\n<p>ここまでの内容と重複しているものは<del>取り消し線</del>を入れてます</p>\n<ul>\n<li><a href=\"https://github.com/Anduin2017/HowToCook\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Anduin2017/HowToCook</a> +48747(100 → 48847)</li>\n<li><a href=\"https://github.com/kamranahmedse/developer-roadmap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">kamranahmedse/developer-roadmap</a> +42310(178160 → 220470)</li>\n<li><a href=\"https://github.com/awesome-selfhosted/awesome-selfhosted\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">awesome-selfhosted/awesome-selfhosted</a> +39282(71552 → 110834)</li>\n<li><a href=\"https://github.com/trekhleb/javascript-algorithms\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">trekhleb/javascript-algorithms</a> +27881(128347 → 156228)</li>\n<li><a href=\"https://github.com/freeCodeCamp/freeCodeCamp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">freeCodeCamp/freeCodeCamp</a> +24188(333763 → 357951)</li>\n<li><a href=\"https://github.com/microsoft/Web-Dev-For-Beginners\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/Web-Dev-For-Beginners</a> +22791(38100 → 60891)</li>\n<li><a href=\"https://github.com/facebook/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/react</a> +21999(176753 → 198752)</li>\n<li><a href=\"https://github.com/yangshun/tech-interview-handbook\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">yangshun/tech-interview-handbook</a> +21071(62027 → 83098)</li>\n<li><del><a href=\"https://github.com/AykutSarac/jsoncrack.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AykutSarac/jsoncrack.com</a> +20216(1 → 20217)</del></li>\n<li><del><a href=\"https://github.com/AykutSarac/jsonvisio.com\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AykutSarac/jsonvisio.com</a> +20216(1 → 20217)</del></li>\n<li><a href=\"https://github.com/vercel/next.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/next.js</a> +20151(77258 → 97409)</li>\n<li><a href=\"https://github.com/type-challenges/type-challenges\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">type-challenges/type-challenges</a> +17465(10936 → 28401)</li>\n<li><a href=\"https://github.com/supabase/supabase\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">supabase/supabase</a> +16803(25204 → 42007)</li>\n<li><a href=\"https://github.com/30-seconds/30-seconds-of-code\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">30-seconds/30-seconds-of-code</a> +16490(88898 → 105388)</li>\n<li><a href=\"https://github.com/iptv-org/iptv\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">iptv-org/iptv</a> +16406(42598 → 59004)</li>\n<li><a href=\"https://github.com/microsoft/vscode\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/vscode</a> +16349(123528 → 139877)</li>\n<li><a href=\"https://github.com/ryanmcdermott/clean-code-javascript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ryanmcdermott/clean-code-javascript</a> +15876(60300 → 76176)</li>\n<li><a href=\"https://github.com/vitejs/vite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vitejs/vite</a> +15371(34818 → 50189)</li>\n</ul>\n<p>お変わりない顔ぶれです。特に触れたいものはありませんでした。</p>\n<h2 id=\"nodejs-関連のトピックに絞った場合\" style=\"position:relative;\"><a href=\"#nodejs-%E9%96%A2%E9%80%A3%E3%81%AE%E3%83%88%E3%83%94%E3%83%83%E3%82%AF%E3%81%AB%E7%B5%9E%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88\" aria-label=\"nodejs 関連のトピックに絞った場合 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Node.js 関連のトピックに絞った場合</h2>\n<p>次に Node.js に関連したトピックを持ったリポジトリを比較します。</p>\n<p>抽出条件:</p>\n<ul>\n<li>2022 年に一回以上トレンドに載った<code>nodejs-framework</code>, <code>node-js</code>, <code>node</code>, <code>nodejs</code>いずれかのトピックがついているリポジトリ</li>\n<li>集計期間のスター数の差分が +5000 以上</li>\n<li>獲得したスター数が多い順にソートし上位 20 件抽出</li>\n</ul>\n<p>ここまでの内容と重複しているものは<del>取り消し線</del>を入れてます</p>\n<ul>\n<li><del><a href=\"https://github.com/kamranahmedse/developer-roadmap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">kamranahmedse/developer-roadmap</a> +42310(178160 → 220470)</del></li>\n<li><del><a href=\"https://github.com/freeCodeCamp/freeCodeCamp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">freeCodeCamp/freeCodeCamp</a> +24188(333763 → 357951)</del></li>\n<li><del><a href=\"https://github.com/vercel/next.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/next.js</a> +20151(77258 → 97409)</del></li>\n<li><del><a href=\"https://github.com/Asabeneh/30-Days-Of-JavaScript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Asabeneh/30-Days-Of-JavaScript</a> +19604(11037 → 30641)</del></li>\n<li><del><a href=\"https://github.com/30-seconds/30-seconds-of-code\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">30-seconds/30-seconds-of-code</a> +16490(88898 → 105388)</del></li>\n<li><a href=\"https://github.com/withastro/astro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">withastro/astro</a> +14678(8501 → 23179)</li>\n<li><a href=\"https://github.com/goldbergyoni/nodebestpractices\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">goldbergyoni/nodebestpractices</a> +11883(71943 → 83826)</li>\n<li><a href=\"https://github.com/google/zx\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">google/zx</a> +11524(23785 → 35309)</li>\n<li><a href=\"https://github.com/ToolJet/ToolJet\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ToolJet/ToolJet</a> +11156(4210 → 15366)</li>\n<li><a href=\"https://github.com/novuhq/novu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">novuhq/novu</a> +11108(2927 → 14035)</li>\n<li><a href=\"https://github.com/nestjs/nest\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nestjs/nest</a> +10181(42472 → 52653)</li>\n<li><a href=\"https://github.com/medusajs/medusa\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">medusajs/medusa</a> +9889(5450 → 15339)</li>\n<li><a href=\"https://github.com/nodejs/node\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nodejs/node</a> +9303(82658 → 91961)</li>\n<li><a href=\"https://github.com/strapi/strapi\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">strapi/strapi</a> +9204(41222 → 50426)</li>\n<li><a href=\"https://github.com/axios/axios\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">axios/axios</a> +8854(88792 → 97646)</li>\n<li><a href=\"https://github.com/prisma/prisma\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">prisma/prisma</a> +8651(18791 → 27442)</li>\n<li><a href=\"https://github.com/leonardomso/33-js-concepts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">leonardomso/33-js-concepts</a> +8512(44949 → 53461)</li>\n<li><del><a href=\"https://github.com/faker-js/faker\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">faker-js/faker</a> +8175(14 → 8189)</del></li>\n<li><a href=\"https://github.com/payloadcms/payload\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">payloadcms/payload</a> +8148(485 → 8633)</li>\n<li><a href=\"https://github.com/n8n-io/n8n\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">n8n-io/n8n</a> +7791(19067 → 26858)</li>\n</ul>\n<h3 id=\"withastroastro\" style=\"position:relative;\"><a href=\"#withastroastro\" aria-label=\"withastroastro permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>withastro/astro</h3>\n<blockquote>\n<p>Build faster websites with Astro’s next-gen island architecture 🏝✨<br>\n<a href=\"https://github.com/withastro/astro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">withastro/astro</a></p>\n</blockquote>\n<p>最近注目度が上がっている静的サイトジェネレータ。<a href=\"https://blog.leko.jp/post/2021-javascript-typescript-trending-history/#withastroastro\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">去年の記事でも紹介しました</a>。社内の Astro 大好きなメンバーが Astro でブログ作り直したそうなのでぜひみてみてください。</p>\n<blockquote>\n<p>— <a href=\"https://hiroppy.me/blog/migrate-blog-from-hatena\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Astro でサイトを作り直し、ブログをはてなから移管しました - hiroppy’s site</a></p>\n</blockquote>\n<h3 id=\"tooljettooljet\" style=\"position:relative;\"><a href=\"#tooljettooljet\" aria-label=\"tooljettooljet permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ToolJet/ToolJet</h3>\n<blockquote>\n<p>Extensible low-code framework for building business applications. Connect to databases, cloud storages, GraphQL, API endpoints, Airtable, etc and build apps using drag and drop application builder. Built using JavaScript/TypeScript. 🚀<br>\n<a href=\"https://github.com/ToolJet/ToolJet\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ToolJet/ToolJet</a></p>\n</blockquote>\n<p>前述の<a href=\"#alibabalowcode-engine\">alibaba/lowcode-engine</a>や<a href=\"https://support.google.com/looker-studio/answer/6283323?hl=JA\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google Looker Studio</a>（旧 Google Data Studio）に近いローコードソリューションのようです。内部向けツールを作ることに特化しているようで、各種 DB/DWH やクラウドストレージ、SaaS などからもデータを引っ張って画面やダッシュボードが構築できます。</p>\n<h3 id=\"novuhqnovu\" style=\"position:relative;\"><a href=\"#novuhqnovu\" aria-label=\"novuhqnovu permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>novuhq/novu</h3>\n<blockquote>\n<p>The open-source notification infrastructure for products<br>\n<a href=\"https://github.com/novuhq/novu\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">novuhq/novu</a></p>\n</blockquote>\n<p>OSS の通知インフラストラクチャ。アプリケーションのコードから通知をトリガーするメソッドを呼ぶと novu で設定した通りに通知が発行されるというように関心の分離が可能。メール・Push 通知・SMS を送ったりといった自前で実装したくない部分を隠蔽してくれて、なおかつアプリケーションコードからは柔軟な呼び出しができ自由度が高そうな予感がします。複数の溜まった通知をダイジェスト化する仕組みなどもあるようでとても便利そうです。</p>\n<h3 id=\"nestjsnest\" style=\"position:relative;\"><a href=\"#nestjsnest\" aria-label=\"nestjsnest permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>nestjs/nest</h3>\n<blockquote>\n<p>A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript &#x26; JavaScript (ES6, ES7, ES8) 🚀<br>\n<a href=\"https://github.com/nestjs/nest\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nestjs/nest</a></p>\n</blockquote>\n<p>今年から<a href=\"https://yuimedi.notion.site/Yuimedi-3981950c3d324fb183bc8e99279e9375\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">弊社プロダクト</a>にて NestJS を本番投入したのですが、デコレータへの抵抗感を乗り越えればとても宣言的で柔軟で拡張しやすい BFF が DX よく作れます。おすすめです。</p>\n<h3 id=\"payloadcmspayload\" style=\"position:relative;\"><a href=\"#payloadcmspayload\" aria-label=\"payloadcmspayload permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>payloadcms/payload</h3>\n<blockquote>\n<p>Free and Open-source Headless CMS and Application Framework built with TypeScript, Node.js, React and MongoDB<br>\n<a href=\"https://github.com/payloadcms/payload\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">payloadcms/payload</a></p>\n</blockquote>\n<p>OSS のヘッドレス CMS。データストアと REST/GraphQL API の提供のみでなく、Admin UI も提供してくれるところが特徴のようです。</p>\n<h3 id=\"n8n-ion8n\" style=\"position:relative;\"><a href=\"#n8n-ion8n\" aria-label=\"n8n ion8n permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>n8n-io/n8n</h3>\n<blockquote>\n<p>Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services.<br>\n<a href=\"https://github.com/n8n-io/n8n\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">n8n-io/n8n</a></p>\n</blockquote>\n<p>GUI でワークフローを組み立てられるオートメーションツール。Zapier の OSS クローンという感じがしますが、独自のコンポーネントやロジックを追加実装できるようで、こちらの方が拡張性は高そうです。</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 668px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 59.88023952095809%; position: relative; bottom: 0; left: 0; background-image: url('data:image/svg+xml,%3csvg%20xmlns=\\'http://www.w3.org/2000/svg\\'%20width=\\'400\\'%20height=\\'240\\'%20viewBox=\\'0%200%20400%20240\\'%20preserveAspectRatio=\\'none\\'%3e%3cpath%20d=\\'M13%2036v8h3l4-1h1c0%201%200%202%201%201v-3l2%202%203%201c1%200%202-2%202-8v-8H13v8m165%20167l-1%204%201%204h42v-8h-42M14%20223c2%200%202%200%201%201s0%201%202%202a9481%209481%200%2000369-2v-1a17056%2017056%200%2000-372%200\\'%20fill=\\'%23d3d3d3\\'%20fill-rule=\\'evenodd\\'/%3e%3c/svg%3e'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/e808afdfb5576baba2fb6f75e372bbfb/5251b/2022-12-21-19-40-43.webp 167w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/7390e/2022-12-21-19-40-43.webp 334w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/7c056/2022-12-21-19-40-43.webp 668w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/0a92e/2022-12-21-19-40-43.webp 1002w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/2baf0/2022-12-21-19-40-43.webp 1180w\"\n              sizes=\"(max-width: 668px) 100vw, 668px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/e808afdfb5576baba2fb6f75e372bbfb/21521/2022-12-21-19-40-43.png 167w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/86d36/2022-12-21-19-40-43.png 334w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/74866/2022-12-21-19-40-43.png 668w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/d69c4/2022-12-21-19-40-43.png 1002w,\n/static/e808afdfb5576baba2fb6f75e372bbfb/c83ae/2022-12-21-19-40-43.png 1180w\"\n            sizes=\"(max-width: 668px) 100vw, 668px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/e808afdfb5576baba2fb6f75e372bbfb/74866/2022-12-21-19-40-43.png\"\n            alt=\"2022 12 21 19 40 43\"\n            title=\"2022 12 21 19 40 43\"\n            loading=\"lazy\"\n            decoding=\"async\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n    </span></p>\n<h2 id=\"トレンドに上がったリポジトリのトピック\" style=\"position:relative;\"><a href=\"#%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E3%81%AB%E4%B8%8A%E3%81%8C%E3%81%A3%E3%81%9F%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AE%E3%83%88%E3%83%94%E3%83%83%E3%82%AF\" aria-label=\"トレンドに上がったリポジトリのトピック permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>トレンドに上がったリポジトリのトピック</h2>\n<p>今年トレンドに上がったリポジトリのトピックを集計しました。</p>\n<p>抽出条件:</p>\n<ul>\n<li>2022 年に一回以上トレンドに載ったリポジトリ</li>\n<li>外れ値や表記揺れノイズを減らすため 5 つ以上のリポジトリに付けられたトピックのみ抽出</li>\n</ul>\n<p>トピック毎にそのトピックがついたリポジトリ数を円の大きさとしたバブルチャートがこちらになります。なお当記事のサムネイル画像はバブルチャートの中心あたりを一部抜粋したものになります。<a href=\"https://observablehq.com/d/22c17976ec0cb485\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">こちら</a>から SVG で全体を確認できます。</p>\n<h2 id=\"トレンド常連組\" style=\"position:relative;\"><a href=\"#%E3%83%88%E3%83%AC%E3%83%B3%E3%83%89%E5%B8%B8%E9%80%A3%E7%B5%84\" aria-label=\"トレンド常連組 permalink\" class=\"autolink-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>トレンド常連組</h2>\n<p>最後に GitHub のトレンド常連組を載せます。</p>\n<p>抽出条件:</p>\n<ul>\n<li>集計期間内にトレンドに載った日数でソートし上位 20 件抽出</li>\n</ul>\n<p>リポジトリ:</p>\n<ul>\n<li><a href=\"https://github.com/Asabeneh/30-Days-Of-JavaScript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Asabeneh/30-Days-Of-JavaScript</a> (105 回)</li>\n<li><a href=\"https://github.com/freeCodeCamp/freeCodeCamp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">freeCodeCamp/freeCodeCamp</a> (104 回)</li>\n<li><a href=\"https://github.com/vercel/next.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">vercel/next.js</a> (104 回)</li>\n<li><a href=\"https://github.com/angular/angular\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">angular/angular</a> (99 回)</li>\n<li><a href=\"https://github.com/trekhleb/javascript-algorithms\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">trekhleb/javascript-algorithms</a> (96 回)</li>\n<li><a href=\"https://github.com/facebook/react-native\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/react-native</a> (86 回)</li>\n<li><a href=\"https://github.com/github/docs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">github/docs</a> (86 回)</li>\n<li><a href=\"https://github.com/kamranahmedse/developer-roadmap\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">kamranahmedse/developer-roadmap</a> (85 回)</li>\n<li><a href=\"https://github.com/OpenZeppelin/openzeppelin-contracts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">OpenZeppelin/openzeppelin-contracts</a> (82 回)</li>\n<li><a href=\"https://github.com/Azure/azure-rest-api-specs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Azure/azure-rest-api-specs</a> (79 回)</li>\n<li><a href=\"https://github.com/iptv-org/iptv\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">iptv-org/iptv</a> (77 回)</li>\n<li><a href=\"https://github.com/supabase/supabase\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">supabase/supabase</a> (77 回)</li>\n<li><a href=\"https://github.com/sveltejs/kit\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">sveltejs/kit</a> (76 回)</li>\n<li><a href=\"https://github.com/apache/superset\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">apache/superset</a> (72 回)</li>\n<li><a href=\"https://github.com/microsoft/Web-Dev-For-Beginners\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/Web-Dev-For-Beginners</a> (72 回)</li>\n<li><a href=\"https://github.com/facebook/react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">facebook/react</a> (71 回)</li>\n<li><a href=\"https://github.com/angular/angular-cli\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">angular/angular-cli</a> (69 回)</li>\n<li><a href=\"https://github.com/microsoft/playwright\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">microsoft/playwright</a> (69 回)</li>\n<li><a href=\"https://github.com/storybookjs/storybook\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storybookjs/storybook</a> (69 回)</li>\n<li><a href=\"https://github.com/airbnb/javascript\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">airbnb/javascript</a> (68 回)</li>\n</ul>\n<p>今年は SaaS クローン少なめでテクニカルなリポジトリが多く、調べてて楽しいリポジトリが多かったです。良いお年を！</p>","timeToRead":25,"frontmatter":{"title":"GitHubのトレンドで振り返る2022年のJavaScript/TypeScript","tags":["JavaScript","TypeScript","GitHub"],"date":"December 22, 2022","featuredImage":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='270'%20viewBox='0%200%20400%20270'%20preserveAspectRatio='none'%3e%3cpath%20d='M34%202c-2%2011%2014%2014%2018%204%202-5%201-6-9-6-8%200-8%200-9%202m23%200c-4%204-4%207-3%2011%206%2010%2019%207%2019-3%200-9-9-13-16-8m16%200c0%203%204%208%208%2010%206%202%2014-2%2015-9l1-3H85C74%200%2073%200%2073%202m26%200c-3%206%201%2013%207%2015%208%203%2015-3%2015-12V1l-11-1c-9%200-11%200-11%202m24%202c1%208%2010%2013%2017%2011%205-1%2010-7%2010-12V0h-27v4m31-1c-13%2016%206%2038%2023%2027%209-6%2011-18%204-27l-2-3h-23l-2%203m51%201c-3%2011%207%2022%2018%2019%209-2%2014-11%2011-19l-1-4h-27l-1%204m56-3c-2%206%206%2014%2013%2014%206%200%2014-8%2012-13-1-3-24-3-25-1m27%201v7l3%204c8%208%2022%200%2018-10-1-3-1-3-11-3-9%200-9%200-10%202m47%201c-2%204%200%209%205%2011%207%204%2016-4%2013-11-1-3-1-3-9-3s-8%200-9%203m21-2c-2%201-1%206%201%209%206%205%2014%201%2014-6V1l-8-1-7%201m17%201c-1%206%204%209%2010%207%202-1%204-5%203-7s-2-2-6-2c-5%200-6%200-7%202M5%203c-5%205-2%2011%205%2011%206%200%208-7%204-11-3-2-7-3-9%200m13%207l-2%205c0%207%209%2010%2013%205%206-7-5-16-11-10m225%200c-13%206-15%2021-5%2030%2016%2014%2040-6%2028-24-5-7-16-10-23-6m145%201c-3%205%204%2011%209%207l3-1c1%201%201-1%201-3%200-3%200-5-1-4%200%202%200%202-2%200-2-3-7-3-10%201m-13%203c-5%204-2%2012%205%2012%206%200%209-7%205-12-3-2-7-3-10%200M34%2017c-6%206-3%2015%206%2015%205%200%209-4%209-9%200-4-5-9-9-9l-6%203m323-2c-6%203-6%2011%200%2015%208%207%2019-5%2012-13-3-3-9-4-12-2m-79%202c-9%206-9%2019-1%2024%2013%209%2029-7%2020-20-4-6-14-8-19-4M4%2018c-4%205-2%2012%205%2012%206%200%209-7%205-12-3-3-7-3-10%200m116-1c-32%207-37%2050-8%2065%207%204%2023%204%2030%200%2026-14%2026-50%200-62-7-3-15-4-22-3m188%201c-11%207-6%2024%207%2024%205%200%2010-3%2012-8%202-4%202-4%200-9-3-8-12-11-19-7m26%202c-7%206-4%2016%205%2018%207%201%2012-4%2012-11%200-9-10-13-17-7M52%2024c-5%206-4%2013%202%2017%205%203%2011%202%2014-2%2010-10-6-25-16-15m337-2c-6%203-4%2013%204%2013%202%200%206-4%206-7%200-5-6-8-10-6m-197%202c-21%207-33%2026-29%2046%206%2032%2044%2044%2067%2022%2026-24%2010-67-26-69l-12%201M3%2034c-3%201-3%201-3%206%200%208%206%2011%2012%205s0-15-9-11m33%201c-5%202-7%209-4%2015%205%2011%2022%203%2018-8-1-6-9-9-14-7m316%201c-4%204-4%209%200%2013%206%207%2017%201%2015-8-1-7-10-9-15-5m34%202c-4%203-4%208%200%2011%203%203%206%203%209%200%206-7-2-16-9-11M72%2040c-9%203-13%2013-9%2021%207%2014%2029%208%2028-8-1-9-10-15-19-13m258%203c-7%206-3%2019%207%2019%208%200%2013-7%2011-14-3-8-12-11-18-5m-70%201c-15%206-20%2028-9%2040%2014%2014%2036%208%2042-10%205-19-13-37-33-30M16%2045l-4%204c-6%209%207%2019%2015%2011%207-7-1-19-11-15m288%200c-9%205-12%2019-4%2025%2010%209%2025%203%2025-11%200-11-11-18-21-14m69%200c-7%202-8%209-4%2014%204%203%209%203%2012-1s4-5%202-9c-2-2-7-6-8-5l-2%201m-23%2012c-3%202-5%206-3%2010%203%209%2016%209%2019%200%202-6-3-13-9-13-3%200-5%201-7%203m35%200c-3%203-2%208%201%2010%207%206%2016-5%2010-11-3-3-8-3-11%201M45%2056c-11%205-8%2022%204%2024%2014%201%2019-18%207-23-5-2-7-2-11-1M0%2065l1%208h3c4%200%209-4%209-8%200-5-4-8-10-8H0v8m371%200c-4%203-5%207-3%2011%203%206%209%207%2014%202%208-8-3-20-11-13M23%2065c-6%202-8%209-5%2015%204%206%2012%206%2016%201%207-8-2-20-11-16m306%200c-10%204-9%2021%202%2024%2012%204%2021-11%2013-21-4-3-10-5-15-3M78%2072c-21%2010-12%2041%2011%2038%2019-3%2023-30%206-38-5-2-13-2-17%200m312%200c-9%205-3%2020%207%2016h3V76c0-2-5-6-6-5l-4%201M3%2076c-2%201-2%202-2%208%200%207%200%207%203%208%206%203%2012-1%2012-8S9%2073%203%2076m294%202c-11%205-14%2019-7%2029%2011%2016%2035%208%2035-11%200-14-14-24-28-18m56%200c-7%203-8%2013-3%2019%207%206%2016%205%2020-4%205-11-7-21-17-15M43%2084c-6%204-8%2013-4%2019%207%2011%2025%206%2025-7%200-11-12-18-21-12m-23%203c-10%205-7%2021%205%2021%2011%200%2014-16%203-21h-8m110%201a56%2056%200%2000-31%2084c23%2034%2075%2031%2094-4%2011-23%207-49-10-66a56%2056%200%2000-53-14m245%202c-6%206-3%2015%205%2017%2010%201%2016-10%209-17-4-4-10-4-14%200m-136%203c-37%209-50%2056-22%2083%2023%2023%2063%2016%2078-13%2018-38-15-80-56-70m96%202l-5%204c-9%208-3%2023%209%2023s19-14%2011-23c-4-4-9-5-15-4m23%2010c-2%203-3%205-3%208%200%2012%2017%2015%2021%203%204-10-10-19-18-11M5%20106c-9%204-5%2018%206%2018l5-3c9-7%200-21-11-15m384%201c-5%203-6%209-3%2013s6%204%2010%203c4-2%204-2%204-8%200-5%200-6-2-7-3-2-7-2-9-1m-358%201c-8%203-8%2017-1%2021%2013%205%2024-9%2014-18-3-3-9-5-13-3m28%200c-12%206-13%2024%200%2031%2019%209%2034-17%2017-29-4-3-12-4-17-2m316%2014c-5%202-7%2011-3%2015%207%207%2017%203%2017-6%200-7-7-12-14-9m-30%202c-6%203-8%2011-4%2017%209%2013%2028%202%2021-12-2-7-11-9-17-5M9%20128c-9%2010%202%2025%2014%2019%2011-6%207-22-5-22-5%200-6%200-9%203m295%202v2c1%203%2027%203%2027%200%200-2%201-2-17-2h-10m-265%203l-5%203c-9%209-3%2023%2010%2023s17-20%204-25c-4-2-5-2-9-1m349%206c-5%202-7%2010-2%2015s14%201%2014-7c0-6-6-10-12-8m-21%202c-2%200-7%205-8%208-3%2013%2016%2020%2022%207%203-8-4-17-14-15m-300%203c-15%204-15%2025-1%2031%2017%207%2031-16%2017-28-4-5-10-6-16-3m264%201c-11%204-14%2017-7%2025%2010%2011%2027%204%2027-10%200-7-4-13-11-15h-9M5%20149c-6%202-7%2013-2%2017s12%202%2015-5-6-15-13-12m17%2012c-9%207-4%2021%208%2021%208%200%2013-8%2011-15-3-9-13-12-19-6m360-2c-5%203-6%2011-2%2015%203%204%2012%203%2015-2%204-8-6-17-13-13m-81%206c-20%208-16%2035%205%2037%2020%201%2028-25%2010-35-4-3-11-3-15-2M0%20179v9h3c3-1%208-6%208-9%200-5-4-10-9-10-2%200-2%201-2%2010m45-5c-12%207-6%2026%208%2026%2010%200%2017-11%2012-20-4-7-13-10-20-6m350%201c-2%201-5%206-4%209%200%203%204%206%207%206%202%200%202%200%202-8s0-9-5-7m-60%204c-13%207-8%2026%207%2024%2012-2%2015-19%204-24-5-2-7-2-11%200m39%201c-4%202-5%207-4%2011%205%2013%2023%206%2019-7-2-5-10-8-15-4m-185%202c-39%2014-43%2066-7%2084%207%204%207%204%2021%204%2013%200%2013%200%2020-3a46%2046%200%2000-34-85m-177%201c-8%206-4%2018%207%2018%205%200%209-5%209-10%200-8-10-13-16-8m253%207c-8%203-15%2013-15%2023%200%2021%2027%2031%2041%2015%2016-18-3-45-26-38m93%202c-3%202-6%206-6%2010%200%205%207%2010%2012%209%2010-2%2011-15%203-19h-9m34%202c-5%204-2%2013%205%2013%204%200%204%201%201%203-6%202-6%2010%200%2012%203%201%203%202%200%205l-2%204%202%205c2%202%203%204%201%207a359%20359%200%20001-41v-10h-3l-5%202m-363%204c-5%203-6%206-6%2012%201%2010%2014%2015%2021%206%209-10-3-25-15-18m88%201c-16%208-20%2029-7%2042%2019%2021%2053%200%2043-27-4-14-22-21-36-15M4%20201c-3%202-4%2013-1%2016%203%202%209%201%2012-1%206-7-2-19-11-15m306%203c-11%203-15%2016-8%2024%2010%2012%2028%204%2027-11-1-9-11-16-19-13m-256%203c-6%203-8%2013-3%2019%208%2011%2027%200%2022-13-3-7-13-10-19-6m283%200c-9%204-7%2020%202%2023%2012%204%2022-9%2015-20-3-5-12-7-17-3m24%209c-5%205-4%2012%203%2015%208%203%2016-5%2012-13-4-6-10-7-15-2m-282%204c-14%207-8%2029%208%2029%208%200%2015-7%2015-15%200-12-12-19-23-14m302%200c-6%206%201%2017%208%2013%209-4%206-15-2-15l-6%202m-91%2013c-16%206-12%2028%204%2028%208%200%2014-6%2014-14%200-10-9-17-18-14m52%202c-3%202-3%203-3%208%200%2012%2016%2014%2020%202%203-10-9-17-17-10m-289%200c-8%206-5%2016%204%2019%2011%203%2019-11%2010-19-4-3-11-3-14%200m313%200c-8%204-5%2016%205%2016%209%200%2012-12%204-17-4-1-6-1-9%201m-48%200c-6%203-9%2011-7%2017%204%2011%2019%2012%2024%202%206-11-5-24-17-19M2%20236l-1%207v7h3c7%200%2010-7%206-12-2-2-6-3-8-2m17%201c-8%204-6%2016%203%2016s12-12%204-16h-7m365%201c-2%201-2%203-2%206%200%208%2010%2010%2014%203%203-8-5-14-12-9m-131%201c-10%205-12%2019-3%2027%204%204%204%204%2011%204%209%200%2014-3%2017-11%205-14-11-27-25-20m-216%206c-7%203-9%2011-4%2016%209%207%2021-5%2013-13-3-3-6-4-9-3m107%202c-7%202-13%2012-12%2020l1%203h34v-6c0-12-10-20-23-17m-36%205c-4%203-6%207-6%2013l1%205h27v-5c0-9-5-15-14-15l-8%202M3%20254c-5%204-3%2012%204%2012%206%200%209-7%205-12-3-3-6-3-9%200m365%201c-4%205-1%2013%205%2013%205%200%208-2%208-7%200-7-8-10-13-6m-17%200c-5%203-6%207-4%2011%201%204%201%204%207%204l8-1c6-7-3-18-11-14m-333%202c-3%203-4%207-1%2010%204%205%2010%204%2013-1%203-7-6-14-12-9m36%203l-4%206v4h22l-1-4c0-8-11-12-17-6m275%203c-6%206-4%207%207%207h9v-3a9%209%200%2000-16-4m-250-1h-3c-2%200-3%201-3%202%200%203%2026%203%2027%201v-3H79m229%200c-2%202-5%205-5%207l11%201h10c0-7-10-11-16-8m-23%201l-5%204-2%203h11c11%200%2012%200%209-3-3-4-8-5-13-4'%20fill='%23d3d3d3'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.4778761061946903,"src":"/static/064943fa31d971d2b824e86f7fe70144/8eab8/2022-12-18-23-01-40.png","srcSet":"/static/064943fa31d971d2b824e86f7fe70144/1ec58/2022-12-18-23-01-40.png 334w,\n/static/064943fa31d971d2b824e86f7fe70144/ccb4a/2022-12-18-23-01-40.png 668w,\n/static/064943fa31d971d2b824e86f7fe70144/8eab8/2022-12-18-23-01-40.png 1336w,\n/static/064943fa31d971d2b824e86f7fe70144/6abe5/2022-12-18-23-01-40.png 1764w","srcWebp":"/static/064943fa31d971d2b824e86f7fe70144/f7e47/2022-12-18-23-01-40.webp","srcSetWebp":"/static/064943fa31d971d2b824e86f7fe70144/cd98f/2022-12-18-23-01-40.webp 334w,\n/static/064943fa31d971d2b824e86f7fe70144/7535d/2022-12-18-23-01-40.webp 668w,\n/static/064943fa31d971d2b824e86f7fe70144/f7e47/2022-12-18-23-01-40.webp 1336w,\n/static/064943fa31d971d2b824e86f7fe70144/c2c62/2022-12-18-23-01-40.webp 1764w","sizes":"(max-width: 1336px) 100vw, 1336px"}}}}}},"pageContext":{"slug":"/2022-javascript-typescript-trending-history/","previous":{"fields":{"slug":"/ctonight-2022/"},"frontmatter":{"title":"CTO Night & Day 2022に参加してきた","tags":null}},"next":null}},
    "staticQueryHashes": ["2585454260","2954598359"]}