世界の技術カンファレンス情報をオープンデータで管理!confs.tech を支える conference-data の全貌
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) 世界の技術カンファレンス情報をオープンデータで管理!confs.tech を支える conference-data の全貌
ひとことでいうと
conference-data は、世界中の技術カンファレンス(開発者が集まる国際会議)の情報を、誰でも読み書きできる形でまとめたオープンデータのリポジトリ(ソースコードやデータの置き場)です。JavaScript・Python・Rust・Go など 30 以上の技術分野にわたる数千件のデータが、GitHub(ギットハブ)というサービス上で無償公開されています。このデータは confs.tech というカンファレンス検索サービスの中身として実際に使われており、世界中の開発者が毎日参照しています。データの追加や修正は「プルリクエスト」という仕組みで誰でも送れるため、コードを書いたことがない人でも参加できるのが大きな特徴です。
こんな人におすすめ
1. カンファレンスへの登壇を目指しているエンジニア CFP(Call for Proposals: 登壇者を募集する期間)の締め切り日や開催地が一覧でわかります。「どのイベントにいつまでに応募すればいいか」をまとめて確認できるため、登壇準備のスケジュールを立てやすくなります。
2. 自分のアプリにイベント情報を組み込みたい開発者 データがすでに整理された形(JSON 形式)で公開されているため、カンファレンス一覧ページやリマインダー機能をゼロから作る手間を大幅に省けます。取得してそのまま使えるのが魅力です。
3. オープンソースへの初コントリビューションを探している人 OSS(オープンソースソフトウェア)への貢献というと難しそうに聞こえますが、ここでは JSON を数行書き足すだけで参加できます。プログラムを書いたことがない方でも始めやすく、OSS 活動の入門として最適なプロジェクトです。
インストール・使い方
このリポジトリは Node.js(JavaScript を動かす仕組み)で動作します。データの検証やソート(並べ替え)を行う便利なスクリプトが用意されており、以下の手順でローカル環境(自分のパソコン上)を整備できます。
ターミナル(文字を打ち込んでパソコンに命令する画面)を開いて、以下のコマンドをコピー&ペーストして実行してください。
Step 1: リポジトリを自分のパソコンにコピーし、必要なパッケージをインストールする
git clone https://github.com/tech-conferences/conference-data.git
cd conference-data
npm install
git clone でリポジトリ(データの置き場)をダウンロードし、npm install で動作に必要なライブラリ(部品集)を自動でそろえます。インターネットに接続された状態で実行してください。
Step 2: データのチェックを走らせる
npm start
全 JSON ファイルの書き方・必須項目・日付のルールなどを自動でチェックします。エラーが出なければデータは正しい状態です。何か問題があれば、どのファイルの何行目かをメッセージで教えてくれます。
Step 3: カンファレンスを開催日順に並べ替える
npm run reorder-confs
各トピック・年ごとの JSON ファイルの中のエントリを startDate(開始日)の早い順に並べ替えます。プルリクエストを送る前に実行しておくと、整理された状態でデータを提出できます。
Step 4: 開催地リストを更新する
npm run updateValidLocations
データに新しい都市や国の名前を追加したとき、正規化リスト(表記ゆれをそろえた一覧)を最新の状態に更新します。新しい地名を使ったエントリを追加した場合に実行してください。
Step 5: 新しいカンファレンスを追加してみる
対象トピックの年別 JSON ファイル(例: conferences/javascript/2026.json)に 1 エントリを追記します。npm start でチェックが通れば、GitHub 上でプルリクエストを作成して送るだけで完了です。世界中の開発者が参照するデータベースに、自分の名前が貢献者として残ります。
動かしてみた
リポジトリをクローン(ダウンロード)して中身を確認したところ、TypeScript(タイプスクリプト)製のスクリプト群がきれいに整理されていました。
./scripts/conferences.test.ts
./scripts/reorderConferencesByDate.ts
./scripts/updateValidLocations.ts
./tsconfig.json
./package.json
./.nvmrc
.nvmrc ファイルも含まれており、Node.js のバージョン管理ツール nvm(エヌブイエム)に対応した構成です。使用する Node.js のバージョンが自動で揃うため、「自分の環境だけ動かない」というトラブルを防ぐ配慮がされています。
また、Python 3.12 の環境とも組み合わせて使えることを確認しました。後述のブラウザデモ(Gradio)を動かす土台としても活用できます。
全体的に依存関係が整理されており、npm install && npm start の 2 コマンドだけでデータ検証パイプライン(チェックの自動処理ライン)が起動する、シンプルで扱いやすい設計です。
ブラウザで試す
Gradio(グラジオ)というライブラリを使ったインタラクティブなデモをブラウザ上で試せます。GitHub の公開 API 経由でカンファレンスデータ(JavaScript トピック・2025 年分)を取得し、開催国・CFP の有無でフィルタリングしながら一覧表示できます。
実際の confs.tech で使われているデータをそのまま閲覧できるため、データ構造の確認や「自分のサービスに組み込んだらどう見えるか」のイメージをつかむのに役立ちます。インストール不要でブラウザだけで操作できるので、まず雰囲気をつかみたい方にもおすすめです。
実践のコツ ― はじめの一歩を踏み出すために
すぐ試せる行動を以下にまとめます。はじめは小さな一歩から始めるのがコツです。
- 身近なカンファレンスを 1 件追加してみる: 地域の勉強会や国内カンファレンスを
conferences/general/2026.jsonなどに書き足すのが最初の練習として最適です。 - CFP 締め切り日を埋める:
cfpEndDateが空欄になっているエントリを探して日付を追記するだけでも、立派なコントリビューションとして歓迎されます。 - CONTRIBUTING.md を先に読む: 行動規範(Code of Conduct)とデータ追加の詳細な手順がまとめられています。読んでから始めると迷わずに済みます。
npm startを「保存のたびに実行」する習慣をつける: こまめにチェックすることで、ミスが小さいうちに気づけます。- プルリクエストは 1 件ずつ送る: 一度に大量のデータをまとめて送るより、トピックや年ごとに小分けにした方がレビューを受けやすくなります。
- 既存のエントリを参考にする: 同じファイル内の他のエントリと書き方を揃えることが、バリデーション通過への近道です。
用語とポイント解説
JSON(ジェイソン) JavaScript Object Notation の略で、データを「名前: 値」のペアで書く形式です。かんたんに言うと「情報を整理して入れる箱」のような書き方で、人間が読みやすくコンピュータも扱いやすいのが特徴です。このリポジトリでは全カンファレンスデータが JSON 形式で保存されています。
リポジトリ ソースコードやデータをまとめて保管・管理する場所のことです。かんたんに言うと「プロジェクトのファイル一式が入ったフォルダ」です。GitHub 上に置くことで、複数人が同時に作業したり変更の履歴を残したりできます。
プルリクエスト(PR) 自分が加えた変更を、元のリポジトリに取り込んでもらうためのお願いのことです。かんたんに言うと「私が書き足したデータを本家に追加してください」という申請です。GitHub 上のボタン操作だけで送れます。
CFP(Call for Proposals)
カンファレンスが「登壇者・発表者を募集します」と告知する期間や、その応募プロセスのことです。かんたんに言うと「このイベントで話してみませんか?という呼びかけ」です。cfpEndDate フィールドに締め切り日が入っています。
バリデーション
データが決められたルール通りに書かれているかを自動でチェックする処理のことです。かんたんに言うと「書き方の検査」です。npm start を実行すると全ファイルのバリデーションが走り、問題があれば箇所を教えてくれます。
TypeScript(タイプスクリプト) JavaScript に「型(データの種類)」の情報を加えた言語です。かんたんに言うと「より厳格で間違いに気づきやすい JavaScript」です。このリポジトリのスクリプトは TypeScript で書かれており、データの品質を保つ仕組みを支えています。
Node.js(ノードジェイエス)
JavaScript をブラウザの外(パソコン上)でも動かせるようにした実行環境です。かんたんに言うと「JavaScript をコマンドラインで走らせるための仕組み」です。npm install や npm start はこの Node.js の機能を使っています。
nvm(エヌブイエム)
Node.js のバージョンを切り替えて管理するためのツールです。かんたんに言うと「複数の Node.js バージョンを共存させるための道具」です。.nvmrc ファイルに推奨バージョンが書かれており、nvm use コマンドで自動的に揃えられます。
Gradio(グラジオ) Python で書かれた、インタラクティブなウェブアプリを手軽に作れるライブラリです。かんたんに言うと「ブラウザで動くデモ画面をすばやく作れる道具」です。このリポジトリでは、カンファレンスデータを視覚的に確認できるデモに使われています。
オープンデータ
誰でも無償で閲覧・利用・再配布できる形式で公開されたデータのことです。かんたんに言うと「みんなが自由に使えるデータ」です。conference-data は GitHub 上で公開されており、商用・非商用を問わず活用できます。
活用例
-
CFP リマインダーの自動化:
cfpEndDateフィールドを読み取って Google カレンダーや Slack に自動通知するスクリプトを作れば、締め切りを見逃さない仕組みを個人でも手軽に構築できます。 -
技術トレンドの可視化: 年別 JSON データを集計することで、「どの技術トピックのカンファレンスが増えているか」「どの国・都市で開催が多いか」をグラフで示す分析ツールが作れます。技術選定の参考資料として活用できます。
-
社内向けカンファレンス推薦ボット: チームメンバーの技術スタック(使っている技術の組み合わせ)に合ったイベントを自動で提案する Slack Bot などに組み込めます。「今月の Python 系カンファレンス一覧」を自動投稿するだけでも喜ばれます。
-
カンファレンスカレンダーアプリの開発: JSON データをそのまま取り込むことで、開催地・トピック・CFP 有無でフィルタリングできる独自のカレンダーアプリを開発できます。既存の confs.tech とは異なる UI や機能を試したい開発者に向いています。
-
学習ロードマップ作成への応用: 「Rust を学ぶなら次のカンファレンスはいつ?」という視点でデータを使えば、技術習得と登壇目標を組み合わせた学習計画ツールを作るベースにできます。
-
OSS コントリビューション練習の場: コードではなくデータを追記するだけで貢献できるため、「初めてのプルリクエスト」を安全に練習できます。貢献した内容は実際のサービスに反映されるので、達成感も得られます。
まとめ
conference-data は単なるデータファイルの集まりではなく、バリデーション・ソート・正規化の処理を自動化するスクリプトも備えた、持続可能なオープンデータの基盤です。実運用サービス confs.tech のバックエンドとして機能しており、世界中の開発者が毎日参照しています。JSON を 1 エントリ書き足すだけで OSS コントリビューターになれる気軽さと、TypeScript による堅牢なデータ品質管理が両立している点が、このプロジェクトの最大の魅力です。ぜひ CFP リマインダーの自動化や社内カンファレンス推薦ボットの開発、そして初めての OSS コントリビューションへの挑戦などに活用してみてはいかがでしょうか。