A personal blog built with Next.js 15, TypeScript, and styled-components.
- Static site generation with Next.js 15
- TypeScript for type safety
- styled-components for CSS-in-JS
- MDX support for blog posts
- Responsive design
- Dark mode support
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: styled-components
- Package Manager: pnpm
- Font: Noto Sans JP
pnpm install
pnpm dev
pnpm build
pnpm start
pnpm deploy
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm start
- Start production serverpnpm export
- Export as static sitepnpm deploy
- Build and export for deploymentpnpm lint
- Run ESLintpnpm lint:text
- Check Japanese text in blog postspnpm lint:textfix
- Auto-fix Japanese text issuespnpm format
- Format code with Prettierpnpm test
- Run TypeScript type checking
.
├── app/ # Next.js App Router pages
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Homepage
│ ├── [...slug]/ # Blog post pages
│ └── profile/ # Profile page
├── components/ # React components
├── content/ # Blog posts (Markdown)
│ └── posts/
├── lib/ # Utility functions
├── public/ # Static assets
└── styles/ # Global styles
Blog posts are stored in /content/posts/
as Markdown files with frontmatter.
content/posts/
└── my-post-slug/
├── index.md # Post content
└── image.png # Post images
---
title: "Post Title"
created_at: "2024-01-01"
updated_at: "2024-01-01"
path: "/my-post-slug"
category: "tech"
tags: ["nextjs", "typescript"]
---
MIT