Terminal
Ubuntu風のターミナルになったポートフォリオ。すべてのコマンドはサーバーで処理されます。

プロジェクトについて
ポートフォリオを、Ubuntu風のフルスクリーンのターミナルにしました。メインサイトと同じ情報(自己紹介、経歴、プロジェクト、記事)をコマンドでたどれます。
目的:開発者や技術系の採用担当者に、彼らの言葉で話しかけ、記憶に残る形で私を知ってもらうことです。それでも大事なことは譲りません。すべてのコマンドはサーバーで処理され、応答はテキストだけなので、検索エンジンにインデックスされ、スクリーンリーダーで読め、JavaScriptなしでも動きます。
できること:
- 起動すると
neofetchが表示され、git logで私の経歴がわかります。 ls、cd、cat、treeで、ポートフォリオの実際のコンテンツから作られた仮想ファイルシステムを歩けます。jp2aは画像をテキストで描き、vi、nano、less、manはファイルを読み取り専用で開きます。- コマンドは全部で39個。8つのカラーテーマ、
localeによる言語の切り替え、Tabキーによる補完、存在しないコマンドへの候補の提案があります。 - 本物のコマンドを試す人のために、隠し要素を2つ用意しています。
- 管理画面からコマンドごとにオン・オフを切り替え、使われているコマンドを確認し、訪問者が入力したまだ存在しないコマンドをアイデアとして集めています。
データを表示する: 39個のコマンドの種類
| 項目 | コマンド |
|---|---|
| シェル | 9 |
| ポートフォリオ | 8 |
| ファイル | 7 |
| 訪問者 | 5 |
| プログラム | 5 |
| 法的情報 | 3 |
| 隠しコマンド | 2 |
SEO:インデックスされるのは言語(スペイン語、英語、日本語)ごとに1ページだけで、それぞれに自己参照のcanonical、x-defaultつきのhreflang、サイトマップ、robotsがあります。構造化データ(WebSiteとWebPage)はメインのポートフォリオの人物を指し、コマンドの応答がインデックスされることはありません。
アクセシビリティ:JavaScriptがなくても動きます。コマンドラインは本物のフォームです。フォーカスはキーボードを閉じ込めずに入力行にとどまり、履歴はスクリーンリーダーが読み上げるlog領域で、テキストで描いた絵にはすべて説明があります。8つのテーマはすべて4.5:1のコントラストを満たし、400%のズームに対応し、「視差効果を減らす」設定にも従います。
パフォーマンス:クライアントコンポーネントは25kBの予算内のひとつだけで、フォントのUbuntu Monoはサイト自身で配信し、使う文字だけに絞っています。
セキュリティとプライバシー:コマンドはサーバーで解釈され、本物のシェルを実行することはありません。長さ、単語数、つなげるコマンドの数、応答のサイズに上限があり、コンテンツセキュリティポリシーはリクエストごとのnonceを使い、オリジンを確認し、リクエスト数を制限しています。sudo、su、passwdのあとに入力された内容は記録しません。

アーキテクチャと品質:Next.jsで、6つのモジュールからなるヘキサゴナルアーキテクチャ、テストファイルは55個で、デプロイのたびにGitHub Actionsでフォーマット、lint、型とともに通しています。コンテンツは、専用のキーでプラットフォームの非公開APIから読み込みます。
現状:2026年10月から公開しています。



