Posts and pages are both written in Markdown
gatsby-blog-template — Gatsby Blog Template
By completejavascript
A blog template based on Gatsby and React that uses Markdown to manage posts and pages, with built-in tags, categories, pagination, code highlighting, and Disqus comments.
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.
Tag and category pages support pagination
Homepage post list includes "Load More"
Prism.js code highlighting with Tomorrow Night theme
Disqus comments with lazy loading support
Site information, navigation, and author profile are configured centrally in data/SiteConfig
Template Details
This is a Gatsby starter for blogging scenarios, with the repository name gatsby-blog-template, under the MIT license. Content is written in Markdown, and both posts and standalone pages follow the same file organization approach, making it suitable for separating writing from site structure.
Functionally, the template provides tag and category pages with pagination; the homepage presents a post list and supports "Load More"; code blocks are highlighted using Prism.js with the Tomorrow Night theme; comments are integrated with Disqus and support lazy loading. Styling is based on Shiba.CSS. Site information, navigation, footer, author profile, pagination count, tag and category path prefixes, 404 text, and more are configured centrally in the exported object in data/SiteConfig.
There are two installation methods: use gatsby new to create a new project from the repository, or clone the repository, delete .git, then install dependencies, and run npm run develop to preview at localhost:8000. The template is built on gatsby-advanced-starter, taniarascia.com, and Shiba.CSS. The README does not specify Node version requirements or production build details, so you need to verify dependencies and third-party asset licenses yourself before use.
Is it right for your project?
Use Cases
- Building a personal technical blog with Markdown as the content source
- An article archive site that needs organization by tags, categories, and pagination
- A blog that wants to integrate Disqus comments and control when comments load
- Developer writing scenarios that require code highlighting
Suitable For
- Developers familiar with Gatsby and React who are willing to adjust the site through configuration files
- Bloggers who write in Markdown and do not rely on a backend management system
- Projects that need a ready-made blog structure and will replace styles and content themselves
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Use gatsby new to create a project from the repository, or clone the repository, delete .git, then run npm install
- 2
Run npm run develop or gatsby develop to preview at localhost:8000
- 3
Modify site title, domain, navigation, footer, author profile, pagination count, Disqus shortname, etc. in data/SiteConfig
- 4
The README does not list Node version requirements; confirm local environment and dependency compatibility yourself
- 5
Third-party assets such as demo images, fonts, and icons need separate license verification; MIT covers only the code
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 that version and does not mean external services or third-party assets are free.
Must comply with when using
- The code of this version may be used, modified, used commercially, and distributed for free.
- 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 comment feature depends on the third-party Disqus service; you need to register a Disqus account and configure the shortname (disqusShortname in data/SiteConfig). Comment data is hosted on the Disqus platform and may be subject to its terms of service and free quota limits.
- Using Facebook App Insights requires a Facebook app ID; this is an external service dependency, and you need to apply for it yourself and comply with Facebook platform terms.
- Site analytics depends on Google Analytics; you need to replace it with your own GA tracking ID and comply with Google's terms of service; this is an external service dependency.
- The author avatar references an external Gravatar image URL by default; in actual use, you need to replace it with your own avatar asset and pay attention to the availability and licensing of that external resource.
- The MIT license covers only the code; the README explicitly states "unless otherwise stated," so third-party assets such as demo images, fonts, and icons may have separate licenses and must be checked separately before use.
- 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.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Disqus for comment
Original README
siteFBAppID: "399626517562189", // FB Application ID for using app insights
Original README
googleAnalyticsID: "UA-96543695-7", // GA tracking ID.
Original README
userAvatar: "https://www.gravatar.com/avatar/42fd3d526fde1ef76d5002e4ebd303e9.jpg?s=300"
Original README
https://github.com/completejavascript/gatsby-blog-template/blob/dev/LICENSEhttps://github.com/completejavascript/gatsby-blog-template/blob/dev/README.mdCopyright © 2019 Lam Pham. Unless otherwise noted, all code MIT license.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. 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
- More documented · 92 / 100
- Technologies
- Gatsby · React
- Website type
- 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
- 2026-01-15
- Screenshot last checked
- 2026-10-01
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 Gatsby 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.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: a96827e42730e824dd25bc371ee1665e9d57bc4caefac563e7ec3541d96fa9a2
2026-10-01T13:56:55.608Z
Source file / repository[](https://app.netlify.com/sites/gb-template/deploys) [](https://opensource.org/licenses/MIT) [](https://codeclimate.com/github/completejavascript/gatsby-blog-template/maintainability)
# gatsby-blog-template
A GatsbyJS Blog Template for blogging purpose.
## Installation
Install this template (assuming [Gatsby](https://github.com/gatsbyjs/gatsby/) is installed and updated) by running from your CLI:
```bash
gatsby new YourProjectName https://github.com/completejavascript/gatsby-blog-template
npm run develop # or gatsby develop
```
Or you can fork the project, make your changes there and merge new features when needed.
Alternatively:
```bash
git clone https://github.com/completejavascript/gatsby-blog-template YourProjectName # Clone the project
cd YourProjectname
rm -rf .git # So you can have your own changes stored in VCS.
npm install # or yarn install
npm run develop # or gatsby develop
```
Navigate to localhost:8000.
## Features
* Posts and pages in Markdown
* Tags and categories with pagination
* Homepage as list of articles, support "Load more" function
* Code highlight using [Prism.js](https://prismjs.com/) and Tomorrow Night theme
* Disqus for comment
* Style using [Shiba.CSS](https://github.com/completejavascript/shiba-css)
## Configuration
Edit the export object in `data/SiteConfig`:
```js
const config = {
// Site info
siteTitle: "Gatsby Blog Template", // Site title.
siteTitleShort: "GB Template", // Short site title for homescreen (PWA). Preferably should be under 12 characters to prevent truncation.
siteTitleAlt: "Gatsby Blog Template", // Alternative site title for SEO.
siteLogo: "/logos/logo-1024x1024.png", // Logo used for SEO and manifest.
siteUrl: "https://gb-template.netlify.com", // Domain of your website without pathPrefix.
pathPrefix: "", // Prefixes all links. For cases when deployed to example.github.io/gatsby-advanced-starter/.
siteDescription: "A GatsbyJS Blog Template for blogging purpose.", // Website description used for RSS feeds/meta description tag.
siteRss: "/rss.xml", // Path to the RSS file.
siteLang: "en",
siteFBAppID: "399626517562189", // FB Application ID for using app insights
googleAnalyticsID: "UA-96543695-7", // GA tracking ID.
postDefaultCategoryID: "", // Default category for posts.
// Common for tag, category pages and widget
numberLatestPost: 8,
postsPerPage: 6,
// Use for post
dateFromFormat: "YYYY-MM-DD HH:mm", // Date format used in the frontmatter.
dateFormat: "MMMM Do, YYYY", // Date format for display.
postTagged: "TAGGED",
postInCategories: "POSTED IN",
postOnDate: "Posted on",
// Use for comment
lazyLoadComments: true,
disqusShortname: "gb-template", // Disqus shortname.
btnLoadComments: "Load comments",
// Use for home page
numberLoadmore: 6,
btnLoadmore: "Load more",
homeHasLoadmore: true,
homeHasThumbnail: true,
homeHeader: "Home",
// Use for page
pathPrefixPagination: "/page", // Prefix path for pagination
pageNotFoundTitle: "Page Not Found", //
pageNotFoundBtn: "Back to our site",
pageNotFoundContent: "Looks like you've followed a broken link or entered a URL that doesn't exist on this site.",
// Use for tag
pathPrefixTag: "/tag", // Prefix path for tags
tagHeader: "Posts tagged as", // use in header of tag-template page
tagHasThumbnail: true,
// Use for category
pathPrefixCategory: "/category", // Prefix path for category
categoryHeader: "Posts in category", // use in header of category-template page
categoryHasThumbnail: true,
// Use for widget
categoryWidgetTitle: "Categories",
tagWidgetTitle: "Tags",
latestPostsWidgetTitle: "Latest posts",
// Use for user info
userName: "Lam Pham", // Username to display in the author segment.
userEmail: "[email protected]", // Email used for RSS feed's author segment
userTwitter: "CmpltJavaScript", // Optionally renders "Follow Me" in the UserInfo segment.
userLocation: "Hanoi, Vietnam", // User location to display in the author segment.
userAvatar: "https://www.gravatar.com/avatar/42fd3d526fde1ef76d5002e4ebd303e9.jpg?s=300", // User avatar to display in the author segment.
userDescription:
"Software Engineer, Web Developer, JavaScript Lover & Blogger @completejavascript.", // User description to display in the author segment.
// Links to social profiles/projects you want to display in the author segment/navigation bar.
userLinks: [
{
label: "Email",
url: "mailto:[email protected]",
iconClassName: "far envelope"
},
{
label: "Website",
url: "https://completejavascript.com/",
iconClassName: "fas globe"
},
{
label: "Twitter",
url: "https://twitter.com/CmpltJavaScript",
iconClassName: "fab twitter"
},
{
label: "Facebook",
url: "https://www.facebook.com/completejavascript/",
iconClassName: "fab facebook-f"
},
{
label: "Linkedin",
url: "https://www.linkedin.com/in/completejavascript/",
iconClassName: "fab linkedin-in"
},
],
// Use for navigation
navTitle: "GB Template",
navLinks: [
{ label: "About", url: "/about" },
{ label: "Contact", url: "/contact" },
],
// Use for footer
socialLinks: [
{
label: "Codepen",
url: "https://codepen.io/completejavascript/",
iconClassName: "fab codepen"
},
{
label: "FreeCodeCamp",
url: "", // Ignore
iconClassName: "fab free-code-camp"
},
{
label: "GitHub",
url: "https://github.com/completejavascript",
iconClassName: "fab github"
},
{
label: "Facebook",
url: "https://www.facebook.com/completejavascript/",
iconClassName: "fab facebook-f"
},
{
label: "Linkedin",
url: "https://www.linkedin.com/in/completejavascript/",
iconClassName: "fab linkedin-in"
},
{
label: "Twitter",
url: "https://twitter.com/CmpltJavaScript",
iconClassName: "fab twitter"
},
{
label: "RSS",
url: "https://gb-template.netlify.com/rss.xml",
iconClassName: "fas rss"
},
],
footerLinks: [
{ label: "Home", url: "/" },
{ label: "About", url: "/about" },
{ label: "Contact", url: "/contact" },
{ label: "Terms of Use", url: "/terms" },
{ label: "Privacy Policy", url: "/privacy" },
{ label: "Sitemap", url: "https://gb-template.netlify.com/sitemap.xml" },
],
copyright: "Copyright © 2019 Lam Pham. Unless otherwise noted, all code MIT license.",
// Use for manifest
themeColor: "#2196F3", // Used for setting manifest and progress theme colors.
backgroundColor: "#FFF" // Used for setting manifest background color.
};
// Validate
// Make sure pathPrefix is empty if not needed
if (config.pathPrefix === "/" || config.pathPrefix === "") {
config.pathPrefix = "";
} else {
// Make sure pathPrefix only contains the first forward slash
config.pathPrefix = `/${config.pathPrefix.replace(/^\/|\/$/g, "")}`;
}
// Make sure siteUrl doesn't have an ending forward slash
if (config.siteUrl.substr(-1) === "/")
config.siteUrl = config.siteUrl.slice(0, -1);
// Make sure siteRss has a starting forward slash
if (config.siteRss && config.siteRss[0] !== "/")
config.siteRss = `/${config.siteRss}`;
module.exports = config;
```
## Acknowledgements
This project is based on:
* [gatsby-advanced-starter](https://github.com/vagr9k/gatsby-advanced-starter/)
* [taniarascia.com](https://github.com/taniarascia/taniarascia.com)
* [Shiba.CSS](https://github.com/completejavascript/shiba-css)
## Author
* [Lam Pham](http://about.phamvanlam.com)
## License
This project is open source and available under the [MIT License](https://github.com/completejavascript/gatsby-blog-template/blob/dev/LICENSE).Explore similar templates
Compare previews and descriptions within the same stack and category.

gatsby-starter-gcn
A Gatsby starter for building static blogs with Contentful and Netlify.
Gatsby · Blog

devblog
DevBlog is a lightweight, customizable personal blog template built with GatsbyJS and React. Posts are Markdown files in /src/pages, with URLs generated from folder names and frontmatter for title, date, and optional featured image.
Gatsby · Blog

gatsby-starter-morning-dew
A Gatsby and React blog starter/theme that uses Markdown or MDX for posts, supports multilingual content, dark mode, tag grouping, PWA, and Disqus comments, and is MIT licensed.
Gatsby · Blog

starter-gatsby-blog
A community-maintained Gatsby blog starter for Contentful, with a simple content model, npm run setup import, Sync API support, and gatsby-plugin-image. Suitable for quickly building a CMS-driven static blog or learning Gatsby and Headless CMS integration.
Gatsby · 社区

automatic-gatsbyjs-app-landing-page
A GatsbyJS template for iOS app landing pages, ported from Emil Baehr's Automatic App Landing Page. Configure content in site-config.js without writing HTML or CSS, upload video previews or screenshots, and deploy via Netlify or build for GitHub Pages.
Gatsby · Tool Site

gatsby-starter-cv
A Gatsby and React starter for building a responsive personal digital resume. It includes sections for About, Skills, Job experiences, GitHub repositories, and Portfolio, with all personal data configured in data/siteConfig.js.
Gatsby · Starter
