An open API service indexing awesome lists of open source software.

https://github.com/arata1202/nextblogapp

Next.jsとMicroCMSでブログ開発中。WordPressからの移行が目的。デプロイ先はVercelで、バックエンドはPHPで実装したAPI。
https://github.com/arata1202/nextblogapp

microcms nextjs typescript vercel

Last synced: 2 months ago
JSON representation

Next.jsとMicroCMSでブログ開発中。WordPressからの移行が目的。デプロイ先はVercelで、バックエンドはPHPで実装したAPI。

Awesome Lists containing this project

README

        

![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/Arata1202/NextBlogApp/vercel_deploy.yml)
![GitHub License](https://img.shields.io/github/license/Arata1202/NextBlogApp)

![2](/.docs/readme/images/title.png)

## 目次

- [リアル大学生](#top)
- [目次](#目次)
- [リンク一覧](#リンク一覧)
- [主な機能一覧](#主な機能一覧)
- [使用技術](#使用技術)
- [環境構築](#環境構築)
- [ディレクトリ構成](#ディレクトリ構成)
- [Gitの運用](#Gitの運用)
- [ブランチ](#ブランチ)
- [コミットメッセージの記法](#コミットメッセージの記法)

## リンク一覧


(トップへ)

## 主な機能一覧

※本番環境ではGoogle AdSenseによる広告が表示されます。

| 最新記事ページ |  カテゴリーページ |
| ---------------------------------- | ------------------------------------------------ |
| ![1](/.docs/readme/images/1.png) | ![2](/.docs/readme/images/2.png) |
| 最新記事を一覧表示するページです。 | 特定のカテゴリーの記事を一覧表示するページです。 |

| タグページ | お問い合わせページ |
| ------------------------------------------ | ------------------------------------ |
| ![3](/.docs/readme/images/3.png) | ![7](/.docs/readme/images/7.png) |
| 特定のタグの記事を一覧表示するページです。 | 管理者にお問い合わせするページです。 |

| アーカイブページ |  記事ページ |
| ------------------------------------------ | -------------------------------- |
| ![5](/.docs/readme/images/5.png) | ![6](/.docs/readme/images/6.png) |
| 特定の年月の記事を一覧表示するページです。 | 記事を表示するページです。 |

| サイトマップ・RSS |  ダークテーマ |
| -------------------------------------------- | ------------------------------------------------------ |
| ![9](/.docs/readme/images/9.png) | ![8](/.docs/readme/images/8.png) |
| XML形式のサイトマップとRSSを公開しています。 | ライトテーマとダークテーマを切り替えることができます。 |

(トップへ)

## 使用技術

| Category | Technology Stack |
| ----------------- | --------------------------------------------- |
| Frontend | Next.js, TypeScript, Tailwind CSS |
| Backend | Go |
| CMS | MicroCMS |
| Infrastructure | Cloudflare Pages, Vercel |
| Environment setup | Docker |
| CI/CD | GitHub Actions |
| Design | Figma, Canva |
| Google | AdSense, Analytics, Search Console, reCAPTCHA |
| etc. | PWA, OneSignal, Pipedream |

(トップへ)

## 環境構築

```
# リポジトリのクローン
git clone [email protected]:Arata1202/NextBlogApp.git
cd NextBlogApp

# .env.exampleから.envを作成
mv .env.example .env

# .envの編集
vi .env

# コンテナのビルドと起動
docker compose up -d --build

# ブラウザにアクセス
http:localhost:3000

# コンテナの停止
docker compose down
```

(トップへ)

## ディレクトリ構成

```
❯ tree -a -I "node_modules|.next|.git|out|.vercel|_|.DS_Store|.env|next-env.d.ts|tmp" -L 3
.
├── .air.toml
├── .docker
│ ├── go
│ │ └── Dockerfile
│ └── js
│ └── Dockerfile
├── .docs
│ └── readme
│ └── images
├── .env.example
├── .github
│ └── workflows
│ └── vercel_deploy.yml
├── .gitignore
├── .husky
│ └── pre-commit
├── .nvmrc
├── .prettierignore
├── .prettierrc
├── .vercelignore
├── .vscode
│ ├── extensions.json
│ └── settings.json
├── LICENSE
├── README.md
├── api
│ ├── recaptcha.go
│ └── sendemail.go
├── cmd
│ └── main.go
├── docker-compose.yml
├── eslint.config.mjs
├── go.mod
├── next.config.ts
├── package-lock.json
├── package.json
├── pnpm-lock.yaml
├── postcss.config.mjs
├── public
│ ├── OneSignalSDKWorker.js
│ ├── ads.txt
│ ├── app-ads.txt
│ ├── favicon.ico
│ ├── images
│ │ ├── blog
│ │ ├── head
│ │ ├── plugin
│ │ ├── post
│ │ ├── pwa
│ │ └── thumbnail
│ └── robots.txt
├── src
│ ├── app
│ │ ├── archive
│ │ ├── articles
│ │ ├── category
│ │ ├── contact
│ │ ├── copyright
│ │ ├── disclaimer
│ │ ├── layout.module.css
│ │ ├── layout.tsx
│ │ ├── link
│ │ ├── manifest.json
│ │ ├── not-found.module.css
│ │ ├── not-found.tsx
│ │ ├── p
│ │ ├── page.tsx
│ │ ├── privacy
│ │ ├── profile
│ │ ├── sitemap.ts
│ │ └── tag
│ ├── components
│ │ ├── Common
│ │ ├── Features
│ │ ├── Pages
│ │ └── ThirdParties
│ ├── constants
│ │ ├── archive.ts
│ │ ├── category.ts
│ │ ├── data.ts
│ │ ├── limit.ts
│ │ └── tag.ts
│ ├── contents
│ │ ├── copyright.ts
│ │ ├── disclaimer.ts
│ │ ├── link.ts
│ │ ├── privacy.ts
│ │ └── profile.ts
│ ├── contexts
│ │ ├── ThemeProvider.tsx
│ │ └── ThemeWrapper.tsx
│ ├── hooks
│ │ ├── useExtractHeadings.ts
│ │ └── useMutationObserver.ts
│ ├── libs
│ │ ├── microcms.ts
│ │ └── rss.ts
│ ├── styles
│ │ ├── globals.css
│ │ └── plugin.css
│ ├── types
│ │ ├── form.ts
│ │ ├── heading.ts
│ │ └── microcms.ts
│ └── utils
│ └── formatDate.ts
├── tailwind.config.ts
├── tsconfig.json
└── vercel.json

49 directories, 67 files
```

(トップへ)

## Gitの運用

### ブランチ

GitHub Flowを使用する。
masterとfeatureブランチで運用する。

| ブランチ名 | 役割 | 派生元 | マージ先 |
| :--------: | :------: | :----: | :------: |
| master | 本番環境 | - | - |
| feature/\* | 機能開発 | master | master |

### コミットメッセージの記法

```
fix: バグ修正
feat: 新機能追加
update: 機能更新
change: 仕様変更
perf: パフォーマンス改善
refactor: コードのリファクタリング
docs: ドキュメントのみの変更
style: コードのフォーマットに関する変更
test: テストコードの変更
revert: 変更の取り消し
chore: その他の変更
```

(トップへ)