The main idea is that your posts will be stored locally as .md files. You don't need to use any external CMS service. This approach makes your website hard to hack.
- TypeScript support
- Server-side rendering
- Import posts from .md files
- Dark theme support
- Category and tags support
- Use React testing library
- Custom 404 page
- Update to next 13
- Clone repository
gh repo clone yrogovich/next-blog
- Install dependencies
yarn install
- Run develompent server
yarn dev
- Open http://localhost:3000 with your browser to see the result.
Availible commands:
yarn dev
yarn build
yarn start
yarn lint
yarn lint,
yarn prepare
This website follows Conventional Commits
Commit message will be checked using husky and commit lint, you can't commit if not using the proper convention below.
<type>(optional scope): <description>
Example: feat(pre-event): add speakers section
Available types are:
- feat → Changes about addition or removal of a feature. Ex:
feat: add table on landing page
,feat: remove table from landing page
- fix → Bug fixing, followed by the bug. Ex:
fix: illustration overflows in mobile view
- docs → Update documentation (README.md)
- style → Updating style, and not changing any logic in the code (reorder imports, fix whitespace, remove comments)
- chore → Installing new dependencies, or bumping deps
- refactor → Changes in code, same output, but different approach
- ci → Update github workflows, husky
- test → Update testing suite, cypress files
- revert → when reverting commits
- perf → Fixing something regarding performance (deriving state, using memo, callback)
- vercel → Blank commit to trigger vercel deployment. Ex:
vercel: trigger deployment
Labels per page Ex: feat(pre-event): add date label
*If there is no scope needed, you don't need to write it
Description must fully explain what is being done.
Add BREAKING CHANGE in the description if there is a significant change.
If there are multiple changes, then commit one by one
- After colon, there are a single space Ex:
feat: add something
- When using
fix
type, state the issue Ex:fix: file size limiter not working
- Use imperative, and present tense: "change" not "changed" or "changes"
- Don't use capitals in front of the sentence
- Don't add full stop (.) at the end of the sentence
Tool | Version |
---|---|
Node | 18.7.0 |
Yarn | 1.22.19 |
- Next.js Documentation - learn about Next.js features and API.
- Typescript - TypeScript quick start guide.
- Conventional commits - Conventional Commits specification.
- Color name - Hex color naming tool.
- Favicon generator
- Atomic design - Atomic design methodology.
- Atomic categorizer - Atomic categorizer tool.