4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

UX / UIデザイナーとして活動しているKikoといいます。自分の簡単な自己紹介はこちらです👇

今回、デザイン・実装の両面のスキルを提示することを目的とした自身のポートフォリオサイトを作成しました。
App RouterベースのNext.jsとmicroCMSを組み合わせており、CMSから案件データや自己紹介文を取得し、動的ルーティングによって各詳細ページを構成しています。

背景

前回のポートフォリオはHTML + SCSS + jQueryで静的に構築していたため、案件追加や文言修正のたびにコードを直接編集する必要があり、運用性に大きな負担がありました。

このため、今回は「CMS連携での更新性」と「App Routerによる動的なルーティング」を目的に再設計しました。

技術スタック

分類 技術
フレームワーク Next.js (App Router)
言語 TypeScript, React
スタイリング Tailwind CSS
開発環境 Turbopack
テスト Jest, React Testing Library
CMS microCMS
デプロイ Vercel

実装のポイント

App Router による動的ルーティング

案件一覧や詳細ページは microCMS に格納したデータから slug を取得し、App Router の generateStaticParams を使って静的生成しました。

CMSでのコンテンツ管理

自己紹介や案件情報も全て microCMS で管理し、API経由で取得してページに反映させています。

スクリーンショット 2025-07-13 10.40.05.png

実装で難しかった点

microCMSのリッチエディタの装飾

microCMSのリッチエディタはHTML形式でデータを返すため、dangerouslySetInnerHTML で表示するだけではデザインの一調性や拡張性に誤点がありました。

解決策

html-react-parser を使用し、要素ごとにクラスを付与するカスタムレンダリングを実装しました。これにより見出しやリスト、リンクなども一調したデザインが可能になりました。

UX面での工夫

今回、自分のページに一番多くアクセスするメインターゲットは、就活関連の人々:たとえば人事の人や、今後自分と同じチームになりうるような組織の管理者などに限定されます。

また、人気の企業であればあるほど彼らには時間がありません。そこで私はページ構成をあえて作品と自己紹介のみの2ページに絞り、採用者が少ない滞在時間で応募者である自分のスキルがマッチするかが判断できうるような構成を心がかました。

完成した画面の例

TOP

スクリーンショット 2025-07-13 10.41.50.png

案件名に自分の役割をラベルしたことで、採用者はジャッジしたいスキルが内容として説明されている案件にすぐにアクセスできます。

案件詳細ページ

スクリーンショット 2025-07-13 10.39.00.png

案件詳細にも最初に何を作ったのかがぱっと見でわかるような情報を、タグとして数個入れました。

Aboutページ

スクリーンショット 2025-07-13 10.57.15.png

aboutページでは自分の趣味や嗜好だけでなく、どんなデザイナーなのかがわかりやすいような構成を心がけました。一緒に働くイメージがつきやすいと採用者にとって親切であると思います。

まとめ

静的にコードを書き換えていたポートフォリオを、Next.js App Router と microCMS によって更新性、UXパフォーマンス性の高い構成に制御し直しました。

同構成は個人開発にはもちろんチーム開発にも役立つと思います。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?