0
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?

初めてサイトを作ったので共有する

Last updated at Posted at 2025-04-16

初めてサイトを作ったので共有する

経緯

大学にまめちしきなどの情報を取りまとめて、発信している個人のツイッターがある。
その人に頼まれて、豆知識をまとめる形でサイト制作を依頼された。

採用技術および使用ツール

100%Next.jsで作成
VPSにホスティング(今思えばVercelでも良かったかも)
Supabaseをデータベースとして採用。
 (Team機能などで部活全体で管理がしやすい。)

https://hamubasu.com
スクリーンショット 2025-04-16 194546.png

全体の構造

コンポーネント開発を基本とする。再利用できるものが多かった。
https://hamubasu.com

スクリーンショット 2025-04-16 135429.png

Next.jsについて

AppRouterを採用しました。
PagesRouterの問題の一つであるバケツリレー(Props Drilling)が起きやすそうな構造。
(実際は、page.tsxでデータフェッチしてそれをpropsでArticleListのコンポーネントに渡していてバケツリレーしてしまった)

サーバー側での処理(データフェッチ等)がメインだったので、RSCの思想とも合致する。

改善点

App RouterではServer Componentsでのデータフェッチが利用可能なので、
できるだけ末端のコンポーネントへデータフェッチをコロケーションすることを推奨しています

とあるのでpage.tsxでするのはあまりよろしくないと思う。

RouteHandlerをサーバーサイドで使ってしまっている。

機能追加として、検索機能をつけたい。(フォームからサーバーに送って部分レンダリングする形にするつもり)

感想

AIを使ったので、全体の規模が大きくなるにつれてど最適じゃない答えがあった気がする。

参考資料のキャッシュの部分が難しかった。

参考資料

0
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
0
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?