Hello Friend

This starter was made to help you present your ideas easier. We all know how hard is to start something on the web, especially these days. You need to prepare a bunch of stuff, configure them and when that’s done — create the content.

This starter is pretty basic and covers all of the essentials. All you have to do is start typing!


Code highlighting

By default the theme is using PrismJS to color your code syntax. All you need to do is to wrap you code like this:

  // your code here

Supported languages: bash/shell, css, clike, javascript, apacheconf, actionscript, applescript, c, csharp, cpp, coffeescript, ruby, csp, css-extras, diff, django, docker, elixir, elm, markup-templating, erlang, fsharp, flow, git, go, graphql, less, handlebars, haskell, http, java, json, kotlin, latex, markdown, makefile, objectivec, ocaml, perl, php, php-extras, r, sql, processing, scss, python, jsx, typescript, toml, reason, textile, rust, sass, stylus, scheme, pug, swift, yaml, haml, twig, tsx, vim, visual-basic, wasm.

How to start

First you need to clone this repo by git clone https://github.com/panr/gatsby-starter-hello-friend.git then switch to main dir, probably cd gatsby-starter-hello-friend should work fine. Next you should install all dependencies by yarn and then, to run starter on localhost yarn dev (which is gatsby clean && gatsby develop). If you want to build starter just run yarn build (which is gatsby build).

How it works

It's a simple starter for blogs and personal sites. You have posts and pages directories. Posts are generated from markdown files with required fileds: title, date and path. Pages can be generated from markdown files as well (with built-in navigation between them, just like in posts) but you can also generate them from JavaScript files (just like you normally do in Gatsby). If so, you should wrap your content in Layout component. It's not required, but highly recommended.


You can configure starter in gatsby-config.js. Here's what you can change:

title: String,
description: String,
copyrights: String,
author: String,
logo: Shape { // you can place your own logo
  src: String, // default dir is `/static/`
  alt: String,
logoText: String, // change default Hello Friend logo
defaultTheme: String, // light or dark as default
postsPerPage: Number, // pagination
showMenuItems: Number, // number of visible main menu items
menuMoreText: String, // string of main sub menu trigger (not visible items from main menu)
mainMenu: arrayOf(Shape { // main menu items
  title: String,
  path: String,