This example showcases Next.js's Static Generation feature using markdown files as the data source.
The blog posts are stored in /_posts
as markdown files with front matter support. Adding a new markdown file in there will create a new blog post.
To create the blog posts we use remark
and remark-html
to convert the markdown files into an HTML string, and then send it down as a prop to the page. The metadata of every post is handled by gray-matter
and also sent in props to the page.
https://next-blog-starter.now.sh/
Deploy the example using Vercel:
- WordPress
- DatoCMS
- Sanity
- TakeShape
- Prismic
- Contentful
- Strapi
- Agility CMS
- Cosmic
- ButterCMS
- Storyblok
- GraphCMS
Execute create-next-app
with npm or Yarn to bootstrap the example:
npx create-next-app --example blog-starter blog-starter-app
# or
yarn create next-app --example blog-starter blog-starter-app
Download the example:
curl https://codeload.github.com/vercel/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/blog-starter
cd blog-starter
Install dependencies and run the example:
npm install
npm run dev
# or
yarn install
yarn dev
Your blog should be up and running on http://localhost:3000! If it doesn't work, post on GitHub discussions.
Deploy it to the cloud with Vercel (Documentation).
This blog-starter uses Tailwind CSS. To control the generated stylesheet's filesize, this example uses Tailwind CSS' v1.4 purge
option to remove unused CSS.