A blog starter template based on Next.js and Tailwind CSS, with design inspired by the Tailwindlabs blog
notion-x-nextjs-tailwind-starter-blog — Next.js Portfolio Template
By wenwkich
A Markdown/MDX blog starter template based on Next.js and Tailwind CSS, with built-in tags, multiple authors, table of contents, comments, and subscription capabilities, plus Vercel deployment guidance.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Content is written in Markdown/MDX, and JSX and React components can be used directly in documents
Built-in tag pages, multiple authors, TOC component, nested routing, and project pages
Supports server-side syntax highlighting (line numbers and line highlighting), KaTeX math formulas, and rehype-citation citations
Integrates comments (giscus, utterances, disqus) and subscription components (mailchimp, buttondown, convertkit, klaviyo, revue)
Provides RSS, sitemap, and preconfigured security response headers and other SEO-related configurations
Template Details
This template is a Next.js + Tailwind CSS blog starter project. The README positions it as a feature-rich Next.js Markdown blog template, with design inspired by the Tailwindlabs blog, aiming to replace personal blog solutions such as Jekyll and Hugo. Content is written in Markdown/MDX, supports using JSX and React components directly in documents, and reads data via mdx-bundler.
In terms of features, the README lists: Tailwind styling and primary color property customization, light/dark themes, mobile adaptation, self-hosted fonts, MDX support, server-side syntax highlighting (line numbers and line highlighting), KaTeX math formulas, rehype-citation citations and references, next/image image optimization, tag pages, multiple authors, blog templates, TOC component, nested routing, subscription components (mailchimp, buttondown, convertkit, klaviyo, revue), comments (giscus, utterances, disqus), project pages, preconfigured security response headers, RSS and sitemap, and other SEO-related configurations. The README also mentions that production builds use Preact and provides a 45kB first-load JS and a Lighthouse report link; these are self-reported in the README and are not expanded upon in this introduction.
For usage and customization, the README explains obtaining the template via degit (offering three options: Contentlayer alpha, official JS support, and community TypeScript support), then modifying siteMetadata.js, authors/default.md, projectsData.js, headerNavLinks.js, and adjusting the content security policy in next.config.js as needed. Article frontmatter follows the Hugo standard and supports fields such as title, date, tags, lastmod, draft, summary, images, authors, layout, and canonicalUrl.
Limitations: The README does not provide specific framework version numbers in the dependency list, nor does it state the template's production readiness, performance benchmarks, or long-term maintenance commitments; the preview screenshots only demonstrate that the page appearance exists and do not represent specific functionality.
Is it right for your project?
Use Cases
- Building a personal technical blog with content written in Markdown/MDX
- Blog sites that need tags, multiple authors, table of contents, and nested routing
- Embedding JSX or React components in articles for interactive writing
- Blog projects that need comments, subscription components, and RSS/sitemap
Suitable For
- Front-end developers familiar with Next.js and Tailwind CSS
- Writers who want to manage blog content with Markdown/MDX
- Personal blog projects planned for deployment to Vercel
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
The README provides three ways to obtain it: Contentlayer (alpha), JS (official support), and TypeScript (community support), pulled via degit
- 2
After installing dependencies, run npm start or npm run dev and view at http://localhost:3000
- 3
Modify files such as siteMetadata.js, authors/default.md, projectsData.js, and headerNavLinks.js according to the README
- 4
If using a comment solution other than giscus or an analytics service, adjust the content security policy in next.config.js
- 5
The README states it can be deployed to Vercel and provides a link to the Next.js deployment documentation
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are allowed.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- The README mentions Firebase integration; before enabling related dynamic features, you need to configure it yourself and check Firebase's quotas and charges.
- Demo images, fonts, icons, and other third-party assets need to be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- When deploying to static hosting platforms such as Netlify, GitHub Pages, or Firebase, because the template uses next/image for image optimization, additional configuration is required, or switch to alternative image optimization services such as Imgix, Cloudinary, or Akamai, or replace next/image with standard <img> tags.
- The API routes used by the subscription components cannot be used for static site export; you need to switch to a form API endpoint service provider and replace the routes in the subscription components accordingly.
- If using an analytics service or comment solution other than giscus, you need to modify the content security policy in next.config.js.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
As the template uses `next/image` for image optimization, additional configurations have to be made to deploy on other popular static hosting websites like [Netlify](https://www.netlify.com/) or [GitHub Pages](https://pages.github.com/). An alternative image optimization provider such as Imgix, Cloudinary or Akamai has to be used. Alternatively, replace the `next/image` component with a standard `<img>` tag. See [`next/image` documentation](https://nextjs.org/docs/basic-features/image-optimization) for more details.
Original README
The API routes used in the newsletter component cannot be used in a static site export. You will need to use a form API endpoint provider and substitute the route in the newsletter component accordingly. Other hosting platforms such as Netlify also offer alternative solutions - please refer to their docs for more information.
Original README
https://github.com/wenwkich/notion-x-nextjs-tailwind-starter-blog/blob/main/LICENSEhttps://github.com/wenwkich/notion-x-nextjs-tailwind-starter-blog/blob/main/README.mdany analytics provider or a commenting solution other than giscus.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 73 / 100
- Technologies
- Next.js · React
- Website type
- Portfolio · Blog · Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2022-04-01
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15
Inspect the recorded source material
SHA-256: 37853bbadafb463c47be053b5fb1fa2440b8979481605ddb2d8363589bd91ed0
2026-10-13T14:50:32.068Z
Source file / repository # Tailwind Nextjs Starter Blog [](https://GitHub.com/timlrx/tailwind-nextjs-starter-blog/stargazers/) [](https://GitHub.com/timlrx/tailwind-nextjs-starter-blog/network/) [](https://twitter.com/timlrxx) [](https://github.com/sponsors/timlrx) [](https://vercel.com/new/git/external?repository-url=https://github.com/timlrx/tailwind-nextjs-starter-blog) This is a [Next.js](https://nextjs.org/), [Tailwind CSS](https://tailwindcss.com/) blogging starter template. Probably the most feature-rich Next.js markdown blogging template out there. Comes out of the box configured with the latest technologies to make technical writing a breeze. Easily configurable and customizable. Perfect as a replacement to existing Jekyll and Hugo individual blogs. Check out the documentation below to get started. Facing issues? Check the [FAQ page](https://github.com/timlrx/tailwind-nextjs-starter-blog/wiki) and do a search on past issues. Feel free to open a new issue if none has been posted previously. Feature request? Check the past discussions to see if it has been brought up previously. Otherwise, feel free to start a new discussion thread. All ideas are welcomed! ## Examples - [Demo Blog](https://tailwind-nextjs-starter-blog.vercel.app/) - this repo - [My personal blog](https://www.timlrx.com) - modified to auto-generate blog posts with dates - [Aloisdg's cookbook](https://tambouille.vercel.app/) - with pictures and recipes! - [GautierArcin's demo with next translate](https://tailwind-nextjs-starter-blog-seven.vercel.app/) - includes translation of mdx posts, [source code](https://github.com/GautierArcin/tailwind-nextjs-starter-blog/tree/demo/next-translate) - [David Levai's digital garden](https://davidlevai.com/) - customized design and added email subscriptions - [Thinh's Corner](https://thinhcorner.com/) - [customized layout](https://github.com/Th1nhNg0/th1nhng0.vercel.app/blob/5e73a420828d82f01e7147512a2c3273c4ec19f8/layouts/PostLayout.js) with sticky side table of contents - [Leo's Blog](https://leohuynh.dev) - Tuan Anh Huynh's personal site. Add Snippets Page, Author Profile Card, Image Lightbox, ... - [thvu.dev](https://thvu.dev) - Added `mdx-embed`, view count, reading minutes and more. - [fiqrychoerudin.dev](https://www.fiqrychoerudin.dev/) - simple portfolio. - [irvin.dev](https://www.irvin.dev/) - Irvin Lin's personal site. Added YouTube embedding. - [the all JavaScript Blog](https://the-all-javascript-blog.vercel.app/) - a JavaScript enlightenment blog uses this - [KirillSo.com](https://www.kirillso.com/) - Personal blog & website. - [DevBoy Blog](https://devboy.vercel.app/) - M.Reza's personal blog - [slightlysharpe.com](https://slightlysharpe.com) - [Tincre's](https://tincre.com) main company blog - [blog.b00st.com](https://blog.b00st.com) - [b00st.com's](https://b00st.com) main music promotion blog - [astrosaurus.me](https://astrosaurus.me/) - Ephraim Atta-Duncan's Personal Blog - [dhanrajsp.me](https://dhanrajsp.me/) - Dhanraj's personal site and blog. - [blog.r00ks.io](https://blog.r00ks.io/) - Austin Rooks's personal blog ([source code](https://github.com/Austionian/blog.r00ks)). - [honghong.me](https://honghong.me) - Tszhong's personal website ([source code](https://github.com/tszhong0411/home)) - [alfoncode.com](https://alfoncode.com) - Alfonso García's personar website. Customized design ([source code](https://github.com/alfoncode/personal-web)) - [marceloformentao.dev](https://marceloformentao.dev) - Marcelo Formentão personal website ([source code](https://github.com/marceloavf/marceloformentao.dev)). - [abiraja.com](https://www.abiraja.com/) - with a [runnable JS code snippet component!](https://www.abiraja.com/blog/querying-solana-blockchain) - [einargudni.com](https://www.einargudni.com) - with a customized theme, command pallette and more ([source code](https://github.com/einargudnig/einargudni.com)) - [bpiggin.com](https://www.bpiggin.com) - Ben Piggin's personal blog - [maqib.cn](https://maqib.cn) - A blog of Chinese front-end developers 狂奔小马的博客 ([源码](https://github.com/maqi1520/nextjs-tailwind-blog)) - [ambilena.com](https://ambilena.com/) - Electronic Music Blog & imprint for upcoming musicians. Using the template? Feel free to create a PR and add your blog to this list. ## Motivation I wanted to port my existing blog to Nextjs and Tailwind CSS but there was no easy out of the box template to use so I decided to create one. Design is adapted from [Tailwindlabs blog](https://github.com/tailwindlabs/blog.tailwindcss.com). I wanted it to be nearly as feature-rich as popular blogging templates like [beautiful-jekyll](https://github.com/daattali/beautiful-jekyll) and [Hugo Academic](https://github.com/wowchemy/wowchemy-hugo-modules) but with the best of React's ecosystem and current web development's best practices. ## Features - Easy styling customization with [Tailwind 3.0](https://tailwindcss.com/blog/tailwindcss-v3) and primary color attribute - Near perfect lighthouse score - [Lighthouse report](https://www.webpagetest.org/result/210111_DiC1_08f3670c3430bf4a9b76fc3b927716c5/) - Lightweight, 45kB first load JS, uses Preact in production build - Mobile-friendly view - Light and dark theme - Self-hosted font with [Fontsource](https://fontsource.org/) - Supports [plausible](https://plausible.io/), [simple analytics](https://simpleanalytics.com/) and google analytics - [MDX - write JSX in markdown documents!](https://mdxjs.com/) - Server-side syntax highlighting with line numbers and line highlighting via [rehype-prism-plus](https://github.com/timlrx/rehype-prism-plus) - Math display supported via [KaTeX](https://katex.org/) - Citation and bibliography support via [rehype-citation](https://github.com/timlrx/rehype-citation) - Automatic image optimization via [next/image](https://nextjs.org/docs/basic-features/image-optimization) - Flexible data retrieval with [mdx-bundler](https://github.com/kentcdodds/mdx-bundler) - Support for tags - each unique tag will be its own page - Support for multiple authors - Blog templates - TOC component - Support for nested routing of blog posts - Newsletter component with support for mailchimp, buttondown, convertkit, klaviyo and revue - Supports [giscus](https://github.com/laymonage/giscus), [utterances](https://github.com/utterance/utterances) or disqus - Projects page - Preconfigured security headers - SEO friendly with RSS feed, sitemaps and more! ## Sample posts - [A markdown guide](https://tailwind-nextjs-starter-blog.vercel.app/blog/github-markdown-guide) - [Learn more about images in Next.js](https://tailwind-nextjs-starter-blog.vercel.app/blog/guide-to-using-images-in-nextjs) - [A tour of math typesetting](https://tailwind-nextjs-starter-blog.vercel.app/blog/deriving-ols-estimator) - [Simple MDX image grid](https://tailwind-nextjs-starter-blog.vercel.app/blog/pictures-of-canada) - [Example of long prose](https://tailwind-nextjs-starter-blog.vercel.app/blog/the-time-machine) - [Example of Nested Route Post](https://tailwind-nextjs-starter-blog.vercel.app/blog/nested-route/introducing-multi-part-posts-with-nested-routing) ## Quick Start Guide 1. TypeScript and Contentlayer (alpha) ``` npx degit timlrx/tailwind-nextjs-starter-blog#contentlayer ``` or JS (official support) ```bash npx degit https://github.com/timlrx/tailwind-nextjs-starter-blog.git ``` or with TypeScript (community support) ```bash npx degit timlrx/tailwind-nextjs-starter-blog#typescript ``` 2. Personalize `siteMetadata.js` (site related information) 3. Modify the content security policy in `next.config.js` if you want to use any analytics provider or a commenting solution other than giscus. 4. Personalize `authors/default.md` (main author) 5. Modify `projectsData.js` 6. Modify `headerNavLinks.js` to customize navigation links 7. Add blog posts 8. Deploy on Vercel ## Installation ```bash npm install ``` ## Development First, run the development server: ```bash npm start ``` or ```bash npm run dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. ## Extend / Customize `data/siteMetadata.js` - contains most of the site related information which should be modified for a user's need. `data/authors/default.md` - default author information (required). Additional authors can be added as files in `data/authors`. `data/projectsData.js` - data used to generate styled card on the projects page. `data/headerNavLinks.js` - navigation links. `data/logo.svg` - replace with your own logo. `data/blog` - replace with your own blog posts. `public/static` - store assets such as images and favicons. `tailwind.config.js` and `css/tailwind.css` - contain the tailwind stylesheet which can be modified to change the overall look and feel of the site. `css/prism.css` - controls the styles associated with the code blocks. Feel free to customize it and use your preferred prismjs theme e.g. [prism themes](https://github.com/PrismJS/prism-themes). `components/social-icons` - to add other icons, simply copy an svg file from [Simple Icons](https://simpleicons.org/) and map them in `index.js`. Other icons use [heroicons](https://heroicons.com/). `components/MDXComponents.js` - pass your own JSX code or React component by specifying it over here. You can then call them directly in the `.mdx` or `.md` file. By default, a custom link and image component is passed. `layouts` - main templates used in pages. `pages` - pages to route to. Read the [Next.js documentation](https://nextjs.org/docs) for more information. `next.config.js` - configuration related to Next.js. You need to adapt the Content Security Policy if you want to load scripts, images etc. from other domains. ## Post ### Frontmatter Frontmatter follows [Hugo's standards](https://gohugo.io/content-management/front-matter/). Currently 7 fields are supported. ``` title (required) date (required) tags (required, can be empty array) lastmod (optional) draft (optional) summary (optional) images (optional, if none provided defaults to socialBanner in siteMetadata config) authors (optional list which should correspond to the file names in `data/authors`. Uses `default` if none is specified) layout (optional list which should correspond to the file names in `data/layouts`) canonicalUrl (optional, canonical url for the post for SEO) ``` Here's an example of a post's frontmatter: ``` --- title: 'Introducing Tailwind Nexjs Starter Blog' date: '2021-01-12' lastmod: '2021-01-18' tags: ['next-js', 'tailwind', 'guide'] draft: false summary: 'Looking for a performant, out of the box template, with all the best in web technology to support your blogging needs? Checkout the Tailwind Nextjs Starter Blog template.' images: ['/static/images/canada/mountains.jpg', '/static/images/canada/toronto.jpg'] authors: ['default', 'sparrowhawk'] layout: PostLayout canonicalUrl: https://tailwind-nextjs-starter-blog.vercel.app/blog/introducing-tailwind-nextjs-starter-blog --- ``` ### Compose Run `node ./scripts/compose.js` to bootstrap a new post. Follow the interactive prompt to generate a post with pre-filled front matter. ## Deploy **Vercel** The easiest way to deploy the template is to use the [Vercel Platform](https://vercel.com) from the creators of Next.js. Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. **Netlify / GitHub Pages / Firebase etc.** As the template uses `next/image` for image optimization, additional configurations have to be made to deploy on other popular static hosting websites like [Netlify](https://www.netlify.com/) or [GitHub Pages](https://pages.github.com/). An alternative image optimization provider such as Imgix, Cloudinary or Akamai has to be used. Alternatively, replace the `next/image` component with a standard `<img>` tag. See [`next/image` documentation](https://nextjs.org/docs/basic-features/image-optimization) for more details. The API routes used in the newsletter component cannot be used in a static site export. You will need to use a form API endpoint provider and substitute the route in the newsletter component accordingly. Other hosting platforms such as Netlify also offer alternative solutions - please refer to their docs for more information. ## Support Using the template? Support this effort by giving a star on GitHub, sharing your own blog and giving a shoutout on Twitter or becoming a project [sponsor](https://github.com/sponsors/timlrx). ## Licence [MIT](https://github.com/timlrx/tailwind-nextjs-starter-blog/blob/master/LICENSE) © [Timothy Lin](https://www.timrlx.com)
Explore similar templates
Compare previews and descriptions within the same stack and category.

Next.js SaaS Starter
The official Next.js SaaS starter template, integrating email/password authentication, Stripe Checkout subscriptions, a dashboard with user/team CRUD, basic Owner/Member RBAC, and activity logging.
Next.js · SaaS

Next.js Commerce
Vercel's officially maintained Next.js App Router ecommerce starter with deep Shopify integration, offering a complete product catalog, cart, and checkout flow. Core logic is modular for swapping backends, and community provider versions exist for BigCommerce, Medusa, and Saleor.
Next.js · E-commerce

Next-js-Boilerplate
A developer-first Next.js 16 starter with Tailwind CSS 4 and TypeScript, supporting both App Router and Page Router.
Next.js · Starter

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

next-forge
next-forge is a Turborepo-based Next.js template maintained by Vercel, positioned as a starting point for SaaS products.
Next.js · Starter

SaaS-Boilerplate
SaaS-Boilerplate is an open-source SaaS starter template built with Next.js App Router, React 19, TypeScript, Tailwind CSS, and Shadcn UI.
Next.js · SaaS
