{"id":14962947,"url":"https://github.com/zoomkoding/zoomkoding-gatsby-blog","last_synced_at":"2026-02-14T04:08:57.953Z","repository":{"id":38473492,"uuid":"351074185","full_name":"zoomkoding/zoomkoding-gatsby-blog","owner":"zoomkoding","description":"✍️ Simple \u0026 Neat UI \u0026 Full Featured Blog Template","archived":false,"fork":false,"pushed_at":"2024-12-10T06:23:18.000Z","size":120725,"stargazers_count":296,"open_issues_count":9,"forks_count":49,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-30T23:45:59.458Z","etag":null,"topics":["code-highlight","gatsby-starter","gatsbyjs","github-blog","netlify","react","seo-friendly","utterances"],"latest_commit_sha":null,"homepage":"https://zoomkod.ing","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoomkoding.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-24T12:37:21.000Z","updated_at":"2025-10-30T01:14:48.000Z","dependencies_parsed_at":"2022-07-12T17:38:20.724Z","dependency_job_id":"d29db333-4657-461a-8d37-81639875e502","html_url":"https://github.com/zoomkoding/zoomkoding-gatsby-blog","commit_stats":{"total_commits":307,"total_committers":3,"mean_commits":"102.33333333333333","dds":"0.039087947882736174","last_synced_commit":"ddf1cecdbe21bbf104bc392d48daaadf0af127cf"},"previous_names":["zoomkoding/gatsby-starter-zoomkoding"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/zoomkoding/zoomkoding-gatsby-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomkoding%2Fzoomkoding-gatsby-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomkoding%2Fzoomkoding-gatsby-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomkoding%2Fzoomkoding-gatsby-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomkoding%2Fzoomkoding-gatsby-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoomkoding","download_url":"https://codeload.github.com/zoomkoding/zoomkoding-gatsby-blog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomkoding%2Fzoomkoding-gatsby-blog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29435599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T03:34:37.767Z","status":"ssl_error","status_checked_at":"2026-02-14T03:34:09.092Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code-highlight","gatsby-starter","gatsbyjs","github-blog","netlify","react","seo-friendly","utterances"],"created_at":"2024-09-24T13:30:47.848Z","updated_at":"2026-02-14T04:08:57.939Z","avatar_url":"https://github.com/zoomkoding.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  Zoomkoding Gatsby Blog\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/zoomkoding/zoomkoding-gatsby-blog/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-0BSD-blue.svg\" alt=\"Zoomkoding Gatsby Blog is released under the 0BSD license.\" /\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" alt=\"PRs welcome!\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\" alt=\"contributions welcome\" /\u003e\n\u003c/p\u003e\n\n**Demo Websites**: [**English**](https://zoomkoding.netlify.app) | [**Korean**](https://www.zoomkoding.com)\n\n## 👋 Introduction\n\nThis is a blog theme created for developers who want to create a pretty, clean and search engine friendly development blog.🏅\n\n\u003e PRs and issues are all welcome! 👍\n\n## ✨ Features\n\n- 😛 Biography using Memoji and rotating-text\n- 💅 Code Highlight\n- 🌘 Dark MOde\n- 🔍 Table of Contents\n- 💬 Comments(Utterances)\n- ⚙️ Easy to configure\n- 🛠 Enhanced SEO \u0026 `sitemap.xml`, `robots.txt`\n- 📈 Google Analytics\n- 🧢 Emoji\n\n## 🚀 Quick start\n\n1.  **Create a Gatsby site.**\n\n    Use the Gatsby CLI to create a new site, specifying the default starter.\n\n    ```shell\n    # create a new Gatsby site using the zoomkoding starter\n    gatsby new my-default-starter https://github.com/zoomkoding/zoomkoding-gatsby-blog\n    ```\n\n1.  **Start developing.**\n\n    Navigate into your new site’s directory and start it up.\n\n    ```shell\n    cd my-default-starter/\n    gatsby develop\n    ```\n\n1.  **Open the source code and start editing!**\n\n    Your site is now running at `http://localhost:8000`!\n\n    _Note: You'll also see a second link: _`http://localhost:8000/___graphql`_. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the [Gatsby tutorial](https://www.gatsbyjs.com/tutorial/part-five/#introducing-graphiql)._\n\n## ⚙️ Next Steps\n\nYou can customize your blog by modifying contents of `gatsby-meta-config.js`\n\n### 1. default\n\nProvide your blog's title, description, author, siteUrl, ogImage, social Information(`title` is used as the blog name in the upper left corner.)\n\n```js\nmodule.exports = {\n    title: '', // zoomkoding.dev\n    description: '', // zoomkoding's dev log\n    author: '', // zoomkoding\n\n    siteUrl: '', // https://zoomkoding-gatsby-blog.netlify.com\n    ogImage: '', // open graph image (image displayed when the link is shared)\n    social: {\n        github: '', // https://github.com/zoomKoding\n        linkedIn: '', // https://www.linkedin.com/in/jinhyeok-jeong-800871192\n        email: '', // zoomkoding@gmail.com\n    },\n    ...\n}\n```\n\n### 2. bio\n\n**bio(Biography** is a section introducing the blog author.  \nFor `description`, you can introduce yourself by adding multiple phrases. If you want to **add your Memoji**, replace the video file named `src/assets/author.mp4`.\n\n```js\nmodule.exports = {\n    ...\n\n    bio: {\n        language: 'en', // en, ko\n        name: '', // author name\n        description: [''], // phases to describe who you are\n    },\n    ...\n}\n```\n\n### 3. comments\n\nIf you want to have comments for your blog postings, please provide your github repository which is connected to `utterances`.\n\n\u003e 🦄 If you want to know how to set up utterances for your repository, read [https://utteranc.es/](https://utteranc.es/)\n\n```js\nmodule.exports = {\n    ...\n\n    comments: {\n        utterances: {\n            repo: '' // zoomkoding/zoomkoding-gatsby-blog\n        },\n    },\n    ...\n}\n```\n\n## 👤 About Page\n\nYou can also generate **About Page** with `gatsby-meta-config.js`. In the file, you can find timestamps and projects under about. If you provide information in the correct format, your About Page will be generated.\n\n### 1. timestamps\n\nIf you provide each timestamp information in an array as shown below, it will be displayed in the timestamps section according to the order you entered.\n\n\u003e If there is no such information in links, you can omit it.\n\n```js\nmodule.exports = {\n    ...\n\n    about: {\n        timestamps: [\n            {\n                date: '', // date\n                activity: '', // activity\n                links: { // you can omit\n                    post: '', // post link\n                    googlePlay: '', // googlePlay link\n                    appStore: '' // appStore link\n                    github: '' // github repostory link\n                },\n            }\n            ...\n        ],\n        ...\n    },\n    ...\n}\n```\n\n### 2. projects\n\nSimilarly, if you provide information for each project in an array, it will be displayed in the projects section in the order you entered.\n\n```js\nmodule.exports = {\n    ...\n\n    about: {\n        ...\n\n        projects: [\n            {\n                title: '', // project title,\n                description: '', // description\n                techStack: ['flutter', 'nodejs'], //  tech stack\n                thumbnailUrl: '', // thumbnail Url\n                links: { // you can omit\n                    post: '', // post link\n                    googlePlay: '', // googlePlay link\n                    appStore: '' // appStore link\n                    github: '' // github repostory link\n                },\n            },\n            ...\n        ],\n        ...\n    },\n    ...\n}\n```\n\n\u003cbr/\u003e\n\nIf you entered the contents without any problem, you can check that your own blog was born.🎉\n\n\u003e Please re-run through `npm start` to check the changes in the running blog!\n\n## ✍️ How to write posts\n\nTo write a blog post in earnest, create a directory under `/content` and write a posting using markdown in `index.md`.\n\n\u003e The name of the folder is used to create the path.\n\n### ℹ️ Post's Metadata\n\nAt the top of the index.md file, you need to provide emoji, title, date, author, tags, categories information as shown below.\n\n\u003e Emoji will be shown at the top of the post, and the categories can be divided by spaces and multiple entries can be entered.\n\n```\n---\nemoji: 🧢\ntitle: Getting Started\ndate: '2021-03-22 23:00:00'\nauthor: 줌코딩\ntags: tutorial\ncategories: tutorial\n---\n```\n\n### 🖼 Image Path\n\nIf you want to attach an image to a post, add an image file to the same directory and use it as follows.\n\n```\n![image](./[image.png])\n```\n\n### 🔍 Table of Contents\n\nIf you want the table of contents to be displayed on the right side of the article, add the following contents to the bottom of the `index.md` file, and the table of contents will be created automatically.\n\n    ```toc\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoomkoding%2Fzoomkoding-gatsby-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoomkoding%2Fzoomkoding-gatsby-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoomkoding%2Fzoomkoding-gatsby-blog/lists"}