gatsbyjs / gatsby

The best React-based framework with performance, scalability and security built in.
https://www.gatsbyjs.com
MIT License
55.27k stars 10.32k forks source link

Gatsby Starters Kit #183

Closed alxshelepenok closed 8 years ago

alxshelepenok commented 8 years ago

Hi, I created a repository for starters gatsby-starters-kit

Now there is only one theme out of ten, however if you have any interesting ideas, it will be great ;)

Update: Github org for starters kit: hb-gatsby gatsby-lumen-starter: link

KyleAMathews commented 8 years ago

Wow, Lumen looks fantastic!

I think starters will mostly fall into two categories — plug-and-play where you'll install the starter and just start adding your content. Or they'll be more of a tech-driven starter e.g. a starter for people who want to use Less for example or a starter for Coffeescript people or a starter for Bootstrap.

Lumen is definitely a plug-n-play starter. If that's where your heart falls, I think the most popular starters for this sort (initially) will be more personal site / portfolio / blog type starters. Most people who'll want to play around with Gatsby will start first by re-working their existing personal site to use Gatsby.

Other ideas that could be fun are documentation sites (e.g. reimagine React's docs site in Gatsby), a picture gallery (just drop in a bunch of pictures and it creates an interactive picture gallery using the metadata from the pictures), a simple corporate/marketing site.

Also fun would be porting popular really popular themes e.g. from Wordpress. There's tons of those out there.

KyleAMathews commented 8 years ago

Oh I just noticed too that right now, you can't install Lumen with gatsby new as Lumen isn't in its own repository. To fix it you could either have Lumen in its own repo e.g. gatsby-starter-lumen or if you're feeling sufficiently ambitious, you could create a Github org for your starters and put them all in there.

I'm going to start on a Gatsby site (would love your help if interested!) and it'll have a section for listing w/ screenshots + link to a demo of all community starters.

alxshelepenok commented 8 years ago

Yes, it seems best to create an additional github org, where i can add modules and starters.

Oh I just noticed too that right now, you can't install Lumen with gatsby new as Lumen isn't in its own repository.

Is it possible to install starter using NPM?

KyleAMathews commented 8 years ago

Awesome — yeah, would love gazillions of awesome starters pop-up on from you and others. Would you like to create a PR to add your starter to the README?

It is not possible atm to npm install a starter. Starters (as they work now) are basically boilerplates (which arguably they should be called and which I'll probably switch their name to soon) because you get an unversioned copy of all the files with the expectation that you'll start to modify them. If you "install" a starter, this implies it's more like a library/plugin/app/theme where the details of the structure & styling of the starter are abstracted away from you.

I do think both boilerplates and theme style starters have enormous value. Many people would be quite happy with a Gatsby-based blog which they don't have to create or maintain. The site could literally have just two dependencies, the Gatsby "theme" and Gatsby itself. You could contribute bug fixes back to the "theme" and then update with NPM to the latest version.

There's an enormous number of very common websites that'd lend themselves to this sort of pattern.

But this also does raise a number of sticky questions around how does a user override parts of the "theme". What is the interface exactly between the two.

One thought I've had is it could mimic the plugin interface from Webpack. You'd import those into your gatsby.config.js file and then export an array of themes with configuration you pass in. Also themes could draw data from your config.toml.

Check out the main issue for this https://github.com/gatsbyjs/gatsby/issues/20

There's a lot of work to do before we get that point. The first and biggest is https://github.com/gatsbyjs/gatsby/issues/177. Gatsby is a fun project of mine so I don't have tons of time to work on it so feel free (and everyone else following along at home) to jump in and own parts of this!