● SYSTEM: garciaaan.studio
← cd ../blog
garciaaan@studio:~$cat ./blog/rebuild-paper-terminal.mdx

『紙のターミナル』にポートフォリオを作り直した話

新しいPCへの移行をきっかけに、ポートフォリオをゼロから作り直した。技術スタックと、工夫したところと、配色を3回やり直した話。

新しいPCに移行したら、ポートフォリオのソースがどこにもなかった。正確にはGitHubの奥に眠っていたんだけど、開いてみたら数年前の自分が書いた真っ黒なサイトで、なんだかもう自分じゃない気がした。だから作り直すことにした。ゼロから。

しかも今回は、ほぼ全部 Claude Code と喋りながら作った。わたしはコードを書くというより、「こうしたい」を投げて、出てきたものに文句を言って、また直してもらう。我ながらAIに依存している。

何で作ったか

  • Next.js 15(App Router)+ React 19 + TypeScript
  • 静的書き出し(output: export)にして Netlify へ。サーバーは持たない
  • スタイルは Tailwind、フォントは JetBrains Mono
  • ヒーローの背景は、ライブラリを使わずに生の WebGL でフラグメントシェーダーを書いた

最後のシェーダーは完全に趣味。ノイズを流して、紙にインクが滲むみたいな表現にした。

工夫したところ

コンセプトは「紙のターミナル」。白い紙の上に、ターミナルやコマンドの世界観をのせた。ls ./works みたいなプロンプトでセクションが始まる。

動きも足した。スクロールで要素がせり上がる演出、カーソルに吸い付くリング、ホバーで作品プレビューが出るやつ。派手にしすぎると一気に安っぽくなるので、シェーダーもアニメも「ちょっと物足りないくらい」で止めている。

地味に一番ハマったのはモバイルメニュー。全画面メニューが背景を覆ってくれなくて、しばらく原因がわからなかった。犯人はヘッダーにかけた backdrop-filter で、これが内側の position: fixed の基準をすり替えてしまう。結局メニューだけ別の場所にポータルで描いて解決した。こういうの、一人だと半日溶かしてたと思う。

あとは日本人がメインで来るので、ブラウザの言語を見て日本語と英語を出し分けるようにした。右上のトグルでも切り替わる。

配色で3回やり直した

ここが今回いちばん情けない話。

最初は黒×蛍光グリーンのサイバーな配色で作った。かっこいいけど「わたしっぽくない」と思って却下。次に白地×テラコッタの落ち着いた色にして、これだ、と思った。……思ったんだけど、公開ボタンを押す直前に気づいた。この色、Claude のブランドカラーにそっくりだ。さすがに本人(AI)の色で本人のサイトを塗るのは違う。

で、明るいオレンジに変えた。変数を1つ直すだけなので作業は一瞬。3回目でやっと納得した。

公開してから、五月雨で直してる

公開ボタンを押して終わり、にはならなかった。スマホで開いたら、トップの「garciaaan」だけがどーんと出て下がスカスカに間延びしていたので、モバイルだけ高さを詰めた。ファビコンも作った。サイトと同じ JetBrains Mono の小文字「g」を、オレンジで。左上のロゴを押したらトップに戻るようにもした。気づくたびに直して push するだけで反映されるので、この手軽さはちょっと気持ちいい。

そして、アクセス解析(GA4)も入れた。どこから来て、どのページが読まれているのか、ようやく数字で見えるようになった。PMとして散々データを触ってきたのに、自分のサイトはずっとノーデータだったの、我ながらどうかと思う。これでやっと「計測できる人」のサイトになった。

おわりに

中身も全部入れ替えた。いま動いているこのサイトの中で、このブログを書いている。

作り直してよかった。少なくとも、数年後の自分がまた「これ自分じゃない」と思うまでは。

© 2026 garciaaan