🗒️Next.js (App Router) を使ってブログサービスを作った
2024/2/27
作ったサービスの概要
Markdownが使える超シンプルなブログサービスです。本当に最小限の機能しかありません。
Githubのアカウントで登録できます。
https://github.com/nakamurau1/nextjs-blog-app
目的
- App Router の学習のため
- フリーランスとしてのポートフォリオづくり一貫
- 新技術をためすSandboxが欲しかったので
サービスの詳細
Markdownでの記事の作成・編集と表示ができるだけのシンプルなサービスです。
使用している技術は以下のとおりです。
- Next.js (14.1.0)
- React (18.x)
- Prisma (5.10.1)
- Next Auth (5.0.0-beta.11)
- Tailwind CSS
- Radix UI
- React Hook Form
- zod
- zenn-markdown-html
マークダウンの出力に使用 - Vercel (デプロイ先)
App Router/RSCの感想
既視感
開発していてなんだか懐かしいなと思っていたんですが、それは昔Ruby on Railsで開発していたときの感覚と似ているからでした(このフロントとバックエンドが一つのフレームワークで完結する感じ)。
まるでModel抜きのRailsといった感じです。
Suspenseいいね👍
ローディング処理を宣言的に書けるのでコードがシンプルになっていいですね。
もうSuspense前には戻れない・・。
APIサーバーを建てなくていい
バックエンドはサーバーアクションを使うので別途APIサーバーを建てなくてよいので楽です。
ただ、サーバーアクションは自由度が高いので、ちゃんとルールを決めないと一つのファイルに全てのアクションが記載されてしまうなどのカオスな状況になっちゃうかもなという不安はあります(今回はdata.ts
とaction.ts
に全て記載しちゃいました)。
アプリもある場合はやっぱりAPI必要
バックエンドはサーバーアクションを使えばいいと言ったんですが、フロントがアプリもある場合はやっぱりAPI必要ですね。
そうなるとWebもサーバーアクション内でAPI呼び出しすることになるかなと思うんですが、フロントから直接呼ぶ場合と比べてワンアクション挟むのはどうなんだろうという気もするのでやっぱりフロントからAPIリクエストすることになるのかなぁ・・😕