Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Gatsby Theme Timeline

This is a repo for Gatsby's timeline theme, with the theme, you can show all your posts, tweets, instagram medias, youtube videos, hacker news, reddit post at one.

Live Demo



  • Support Mdx, tweet, instagram medias, youtube videos, hacker news, reddit post
  • Support i18n by gatsby-theme-i18n, you can choose your own i18n library
  • Support comments disqus or utterances
  • Support Tags
  • Pagination, even tag page supports pagination
  • SEO Optimization

πŸš€ Quick start

Learn more about the theme information at here

  1. Create a Gatsby site.

    Use the Gatsby CLI to create a new site, specifying the timeline blog theme starter.

    # create a new Gatsby site using the timeline blog theme starter
    gatsby new my-themed-blog
  2. Create twitter credentials

    Optional, if you want to add your tweets to blog, create .env with the following content:


    Then, uncomment gatsby-config.js plugin gatsby-source-twitter

  3. Create instagram credentials

    Optional, if you want to add your instagram to blog, create .env with the following content:


    See How to get instagram access token

    Then, uncomment gatsby-config.js plugin gatsby-source-instagram

  4. Start developing.

    Navigate into your new site’s directory and start it up.

    cd my-themed-blog/
    gatsby develop
  5. Open the code and start customizing!

    Your site is now running at http://localhost:8000!

For exist site or more params, see here

First using Gatsby? check out the guide to using the Gatsby blog theme starter, or the longer, more detailed tutorial.

🧐 What's inside?

Here are the top-level files and directories you'll see in a site created using the timeline blog theme starter:

β”œβ”€β”€ content
β”‚   β”œβ”€β”€ assets
β”‚   β”‚   └── avatar.png
β”‚   └── posts
β”‚       β”œβ”€β”€ hello-world.mdx
β”‚       └── my-second-post.mdx
β”œβ”€β”€ data
β”‚   β”œβ”€β”€ tweets
β”‚       β”œβ”€β”€ 1111.json
β”‚       └── 2222.json
β”‚   β”œβ”€β”€ reddit
β”‚       β”œβ”€β”€ 1111.json
β”‚       └── 2222.json
β”œβ”€β”€ src
β”‚   └── gatsby-theme-timeline
β”‚       β”œβ”€β”€ components
β”‚       β”‚   └── bio-content.js
β”‚       └── gatsby-theme-ui
β”‚           └── colors.js
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .prettierrc
β”œβ”€β”€ gatsby-config.js
β”œβ”€β”€ LICENSE
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
  1. /content: A content folder holding assets that the theme expects to exist. This will vary from theme to theme -- this starter is set up to get you started with the timeline blog theme, which expects an image asset for your avatar, and blog post content. Replace the avatar image file, delete the demo posts, and add your own!

  2. /data: A raw data folder holding raw data like tweets, reddit json.

  3. /src: You will probably want to customize your site to personalize it. The files under /src/gatsby-theme-blog shadow, or override, the files of the same name in the gatsby-theme-blog package. To learn more about this, check out the guide to getting started with using the timeline blog theme starter.

  4. .gitignore: This file tells git which files it should not track / not maintain a version history for.

  5. .prettierrc: This file tells Prettier which configuration it should use to lint files.

  6. gatsby-config.js: This is the main configuration file for a Gatsby site. This is where you can specify information about your site (metadata) like the site title and description, which Gatsby plugins you’d like to include, etc. When using themes, it's where you'll include the theme plugin, and any customization options the theme provides.

  7. LICENSE: This Gatsby starter is licensed under the 0BSD license. This means that you can see this file as a placeholder and replace it with your own license.

  8. package-lock.json (See package.json below, first). This is an automatically generated file based on the exact versions of your npm dependencies that were installed for your project. (You won’t change this file directly).

  9. package.json: A manifest file for Node.js projects, which includes things like metadata (the project’s name, author, etc). This manifest is how npm knows which packages to install for your project.

  10. A text file containing useful reference information about your project.

Use Case

Full Screen


πŸŽ“ Learning Gatsby

Looking for more guidance? Full documentation for Gatsby lives on the website.

Here are some places to start:


  • To learn more about Gatsby themes specifically, we recommend checking out the theme docs.


  • For most developers, we recommend starting with our in-depth tutorial for creating a site with Gatsby. It starts with zero assumptions about your level of ability and walks through every step of the process.

  • To dive straight into code samples, head to our documentation. In particular, check out the Reference Guides and Gatsby API sections in the sidebar.