概要
この記事ではマークダウンで入力できる日記アプリケーションを作成していきます。
- 「会社の週報にマークダウンを使いたい」
- 「週報を一覧から管理して、コメントやいいねをつけたい」
- 「日記形式で個々人のナレッジを蓄積したい(社内に公開・非公開を任意として)」
という個人的な要望から勝手に作り始めました。週報はすでにある程度仕組化されているため、まず日記アプリを作成し、後から拡張していこうと考えて実装を開始しています。細かく見ると実現できていないことも多々ありますが、サービスに必須となる機能は概ね実装したので、備忘録をかねて記載してます。
作成手順
(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 |