開発技術タグの canonical 辞書。表記揺れ(Next.js / nextjs / ネクストjs)を整理し、機械可読な JSON として配布する。
タグを「書き手による分類」と「集計・正規化のための canonical」の二段で扱うアプリ向けに、後者の辞書として参照されることを想定している。発見動線(タグ一覧 / タグ検索)を構築するためのものではない。
dist/stacks.json を直接 fetch するか、git submodule で取り込む。
import stacks from "dev-stacks/dist/stacks.json";
const entry = stacks.entries.find((e) =>
[e.canonical.toLowerCase(), ...e.aliases.map((a) => a.toLowerCase())].includes(
input.toLowerCase(),
),
);各エントリの形式:
- canonical: "Next.js"
aliases: ["nextjs", "next.js", "next-js", "ネクストjs"]
category: framework
description: "React-based fullstack framework by Vercel"ソースは stacks/*.yaml。カテゴリごとにファイルが分かれている:
languages.yaml— TypeScript, Python, Go, ...frameworks.yaml— Next.js, Rails, Django, ...databases.yaml— PostgreSQL, MySQL, Redis, ...platforms.yaml— Supabase, Firebase, ...cloud.yaml— AWS, GCP, Vercel, ...tools.yaml— Docker, Kubernetes, ...concepts.yaml— OAuth, RLS, CI/CD, ...
ビルド:
npm install
npm run build # stacks/*.yaml → dist/stacks.json- canonical は公式の表記に従う(
Next.jsであってNext.JSではない、PostgreSQLであってPostgresqlではない) - aliases は lower-case を基本に、よくある別表記を入れる
- 公式略称 (
ts,k8s) - URL slug 形式 (
next-js,ruby-on-rails) - 日本語カタカナ (
ネクストjs,ポスグレ) - 旧名・SES 業界呼称
- 公式略称 (
- 同じ canonical を 2 つの YAML に重複させない
PR 歓迎。命名ルールに沿った追加・別名追加・カテゴリ修正など。技術名の歴史的経緯がある場合は description に簡潔に書く。
- GitHub 公式の github/explore (CC-BY-4.0) からの自動取り込みスクリプト
- JSON Schema による PR 自動 validation (GitHub Actions)
- semver でのリリース管理 + npm 公開
CC-BY-4.0. 商用利用可、attribution 要。