概要
この記事ではマークダウンで入力できる日記アプリケーションを作成していきます。
- 「会社の週報にマークダウンを使いたい」
- 「週報を一覧から管理して、コメントやいいねをつけたい」
- 「日記形式で個々人のナレッジを蓄積したい(社内に公開・非公開を任意として)」
という個人的な要望から勝手に作り始めました。週報はすでにある程度仕組化されているため、まず日記アプリを作成し、後から拡張していこうと考えて実装を開始しています。細かく見ると実現できていないことも多々ありますが、サービスに必須となる機能は概ね実装したので、備忘録をかねて記載してます。
作成手順
(Notionより転記中)
- Next.js 環境構築
- PrismaとPostgreSQLの設定
- NextAuth ログイン機能の実装
- NextAuth ログイン制御の実施・機能拡張
- Tiptapでマークダウンエディタ作成
- 日記の登録
- 画像のアップロード MinIOの設定
技術スタック
| 名前 | URL |
|---|---|
| DOMPurify | https://github.com/cure53/DOMPurify |
| highlight.js | https://highlightjs.org/ |
| MinIO | https://min.io/ |
| Next.js | https://nextjs.org/ |
| Preline | https://preline.co/ |
| Prisma | https://www.prisma.io/ |
| query-string | https://github.com/sindresorhus/query-string |
| react-hook-form | https://www.react-hook-form.com/ |
| shadcn/ui | https://ui.shadcn.com/ |
| Tailwind CSS | https://tailwindcss.com/ |
| Tiptap | https://tiptap.dev/ |
| Typescript | https://www.typescriptlang.org/ |
| zod | https://zod.dev/ |
| zod-form-data | https://www.npmjs.com/package/zod-form-data |
| zustand | https://github.com/pmndrs/zustand |