Hi Team Gatsby,
To start off on my exploration I have setup a following project without executing it. So far, it just represent skeleton of it. Question are against the folder structure I put in following screenshot from my VSCode.


Answers below:
1) sounds reasonable. Where you put your data is totally up to you but a directory named data is a common convention.
2) you only need the first instance of the plugin actually as it scans for files recursively so sub-directories will be included.
3) 馃憤
4) your own generally. It's hard to build a unique design for a site if you base things off bootstrap. Individual bootstrap components from https://react-bootstrap.github.io/ could be helpful.
5) if an open source component meets your needs, can't see why you wouldn't use it.
6) html.js is for defining everything outside of <div id="react-mount"></div>. Layout components are for stuff like headers and footers. Page components are for the guts of pages inside the header/footer.
7)
a) just put the file in a sub-folder matching the desired URL
b/c) pages are created programatically from data so there's lots of ways of accomplishing these https://github.com/gatsbyjs/gatsby/issues/421
8) refresh the gatsbygram site when a picture is in the modal ;-)
9) the src/utils folder isn't required. I like using them to stash random "utility" modules but there are other organization schemes.
10) it's not actually inline css. It's using a css-in-js library called Glamor https://github.com/threepointone/glamor which extracts out the styles from the components to regular CSS. There's a lot of advantages to css-in-js but regardless, Sass/Less/PostCSS are fully supported and there'll be more examples of using these in the future.
11) 馃憤
12) gatsby-config.js is for setting up Gatsby. gatsby-node/gatsby-browser/gatsby-ssr are for implementing various Gatsby APIs (as needed) for accomplishing things like, creating pages, processing data e.g. to create slugs, adding analytics in the browser on route changes, etc.
Most helpful comment
Answers below:
1) sounds reasonable. Where you put your data is totally up to you but a directory named
datais a common convention.2) you only need the first instance of the plugin actually as it scans for files recursively so sub-directories will be included.
3) 馃憤
4) your own generally. It's hard to build a unique design for a site if you base things off bootstrap. Individual bootstrap components from https://react-bootstrap.github.io/ could be helpful.
5) if an open source component meets your needs, can't see why you wouldn't use it.
6) html.js is for defining everything outside of
<div id="react-mount"></div>. Layout components are for stuff like headers and footers. Page components are for the guts of pages inside the header/footer.7)
a) just put the file in a sub-folder matching the desired URL
b/c) pages are created programatically from data so there's lots of ways of accomplishing these https://github.com/gatsbyjs/gatsby/issues/421
8) refresh the gatsbygram site when a picture is in the modal ;-)
9) the src/utils folder isn't required. I like using them to stash random "utility" modules but there are other organization schemes.
10) it's not actually inline css. It's using a css-in-js library called Glamor https://github.com/threepointone/glamor which extracts out the styles from the components to regular CSS. There's a lot of advantages to css-in-js but regardless, Sass/Less/PostCSS are fully supported and there'll be more examples of using these in the future.
11) 馃憤
12) gatsby-config.js is for setting up Gatsby. gatsby-node/gatsby-browser/gatsby-ssr are for implementing various Gatsby APIs (as needed) for accomplishing things like, creating pages, processing data e.g. to create slugs, adding analytics in the browser on route changes, etc.