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

Next.js初心者が掲示板アプリ開発してみた!【Next.js/TypeScript/Prisma/Supabase/Vercel】

2
Posted at

はじめに

こんにちは!POMです。
普段はWebアプリ開発エンジニアとして働いており、
個人的に今年からJISOUに参加し、ReactやTypeScriptの課題や個人開発に取り組んでいます!

先日、個人開発した際の記事はこちら↓になります。
ありがたいことに多くのいいねをいただいております!

今回開発したアプリ

今まではReact×TypeScriptをメインとしてきましたが、
今回からNext.js(App Router)を使って、
様々なレンダリングパターンの学習を兼ねた「掲示板アプリ開発」を行いました!

スクリーンショット 2026-05-31 13.44.34.png

▼ ソースコードはこちら

ちなみに、こちらのアプリ開発をする前に、インプットとしてJISOU代表の渡邊さんの記事にも取り組んでいます!

機能

一般的な掲示板アプリに考えられるようなシンプルな機能を実装しております。

1. 投稿一覧(SSR)

こちらはリアルタイムに反映したい、かつ頻繁に更新される内容なので、SSRで実装しています。

スクリーンショット 2026-05-31 13.44.34.png

2. 投稿詳細(ISR)

定期的に更新される内容と考え、ISRで実装しています。更新ボタンを押すと、新しい内容が反映される仕組みです。

スクリーンショット 2026-05-31 14.12.19.png

3. 新規投稿(CSR)

こちらはクライアント側の操作も伴うので、CSRで実装しています。

スクリーンショット 2026-05-31 14.15.02.png

4. カテゴリ一覧(SSG)

内容が固定的なものなので、SSGにしています。

スクリーンショット 2026-05-31 14.17.35.png

使用技術

種別 技術
フレームワーク Next.js 16 (App Router)
言語 TypeScript
ランタイム Node.js
UI ライブラリ React 19
コンポーネント shadcn/ui
スタイリング Tailwind CSS 4
フォーム React Hook Form + Zod
ORM Prisma 7
DB Supabase (PostgreSQL 16)
テストフレームワーク Vitest
DOM テスト React Testing Library
ホスティング Vercel
CI/CD GitHub Actions

工夫したこと

今回のディレクトリ構造として、下記記事を参考にしながら
Feature-based Patternで実践してみました!

app/フォルダ配下にまとめてしまうよりも、
features/フォルダ配下に機能別としてファイルを配置することで、
どこにどの実装があるのか?も探しやすく、
一定のまとまりがあるため、不具合があった際にも原因箇所を追うスピードが速くなったと感じました。

おわりに

今回はNext.jsを使って簡単なWebアプリ開発をしてみました。
まだまだ実装をしていて慣れない部分もありますが、
地道に手を動かしながら取り組んでいきたいと思います。
次回からは、Next.jsでもう少し大きい規模の個人開発をする予定です!

参考記事

JISOUのメンバー募集中!

プログラミングコーチングJISOUでは、新たなメンバーを募集しています。
日本一のアウトプットコミュニティでキャリアアップしませんか?
興味のある方は、ぜひホームページをのぞいてみてくださ!
▼▼▼

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