question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[1.0] Umbrella issue

See original GitHub issue

Hey folks!

The remaining work (in my head at least) is starting to settle down into something coherent so I wanted to document my thinking here to get feedback on the vision for 1.0 and give those wanting to help out chunk sized pieces of work to pull off to work on so I can stop being the bottleneck for us shipping 1.0.

Goals for 1.0

To reiterate what I wrote last fall https://github.com/gatsbyjs/gatsby/issues/419

Make building high-performance websites fun by:

  • Enabling high performance by default. Anything that prevents Gatsby from generating the fastest possible website is a bug.
  • Generating sites that have a rich webapp-like feel.
  • Source all the data. Enable a plugin-driven data layer which lets Gatsby source and transform data from any number of sources.

TODOs

The following is a loose collection of TODOs for shipping 1.0. Some of them have issues already. Others not. If you want to work on one, please start an issue (or send a PR) claiming it. For more complex issues, please open an issue to discuss things before starting to write code. This is also not a complete list of course so feel free to add comments for other work that needs to done and I’ll update the list. Also please file bugs you find as normal issues with the issue title prefixed with [1.0].

Check out the contributing guide for how to setup your development environment https://www.gatsbyjs.org/docs/how-to-contribute/

  • Marketing
    • Design/implement front page
    • metatags on website
    • Favicon for site
  • Documentation
    • Rewrite the Gatsby README.md for 1.0
    • Tutorial
    • APIs (automated from code comments hopefully). (TODO here still are docs for args to node APIs)
  • Example websites
    • gatsbygram
    • using-drupal
    • Hacker News clone
    • Something with PDF processing
    • ecommerce store
    • i18n
    • animation
    • Anything else? Want example websites that are a) surprising (wait? a “static site generator” can do that?) b) use lots of Gatsby’s official plugins (example sites are our integration tests) and c) simple so easy for people new to Gatsby to read through the code and understand it.
  • Testing
    • Transformer plugins (e.g. JSON, YAML, Markdown)
    • Source plugins (e.g. Filesystem)
    • Caching
    • GraphQL query runner
  • Flow types
    • everything (not a flow user yet so huge if someone wants to jump in on this…)
  • Plugins
    • Add plugins various styling options e.g. sass, less, stylus, styled components, glamorous, anything else that’s easy to get going and popular
    • PDF processing
    • Source plugins for popular data sources e.g. Wordpress, Drupal, hosted CMSs, Trello, Google Spreadsheets, etc.
    • Add support for word/paragraph counts to markdown https://github.com/wooorm/remark/issues/251
  • webpack
    • Allow people to import all files types i.e. copy create-react-app’s pattern here.
    • Support GATSBY-* environment variables
  • babel
  • GraphQL data layer
    • Port JS frontmatter from 0.x (i.e. being able to reference export const data = {}) — should just be a transformer plugin
    • Add pagination “field” to all connections
    • Add aliases to children nodes in the graphql schema e.g. childrenMarkdownRemark.
  • DX improvements
    • Add validation for options for each plugin.
    • Change filename of default layout component to layouts/index.js.
    • Change the default port that graphiql and gatsby serve-build run on so they don’t interfere with the development server.
    • if hot update fails to apply, reload the page automatically.
    • Change .intermediate-representation to .cache and store data to be persisted between builds there.
    • split off the gatsby cli into its own package
  • Performance
    • Tweak JS bundling strategy somewhat. Do commons bundle, bundle for each layout, bundle for routes, then a bundle for each page component and page data.
  • Chores
    • Review package dependencies and remove ones we’re not using anymore and update packages to their latest version

Post 1.0

  • Copy default eslint checking from create-react-app

  • Copy error modal from create-react-app

  • Make starters searchable from CLI https://github.com/gatsbyjs/gatsby/issues/56

  • Upgrade to webpack 2

  • Use Redux for managing the webpack config and for allowing plugins to modify it.

  • Thinking in Gatsby

  • Lots and lots of examples. Make them all searchable/browsesable inline in the website

  • Add support for searching/browsing community plugins from website

  • Themes

    • Get minimal theme system in place with rough plans for something more sophisticated. Basic idea is there’ll be a gatsby-theme-core that all other themes will be based on. The core theme will include the basic Gatsby for the vanilla Gatsby experience. Then on top of that (themes are composable) add a number of other official themes e.g. gatsby-theme-sass, gatsby-theme-glamor, gatsby-theme-preact, gatsby-theme-markdown, gatsby-theme-blog, etc. Every theme will have an associated starter which will install the theme w/ a bit of sample content.

    • Setup build performance testing. Perhaps start with a script which auto-generates a site with 100, 1000, 10,000 pages and measures how long it takes to build them from scratch and with cached data.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Reactions:22
  • Comments:29 (19 by maintainers)

github_iconTop GitHub Comments

5reactions
fabien0102commented, Apr 13, 2017

Nice TODO list! For my part, I’m working on a gatsby-starter with full typescript support and some dev tool (jest, enzyme, xo, tslint, plop …) 😉

I’ve got a lot of work to do this starter functional (I want html.js and all pages/components in typescript) but it can be cool!

If someone wants to help (dev, tests, code reviews, suggestions…), you are welcome 😃

1reaction
fabien0102commented, Oct 9, 2017

@wiesson If it can help, I got an i18n system on my own website -> https://github.com/fabien0102/fabien0102.com

Just a lang props on index, and a filter in graphql queries 😉 https://github.com/fabien0102/fabien0102.com/blob/master/src/pages/en.jsx

Read more comments on GitHub >

github_iconTop Results From Across the Web

End of Support for Windows 7, 8, and 8.1 - Cisco Umbrella
As of March 31, 2020**, Transport Layer Security (TLS) 1.0 and 1.1 will no longer be supported by Cisco Umbrella servers and services....
Read more >
Cisco Umbrella TLS 1.0 and TLS 1.1 End of life notification
Attached the notification from Cisco that our cisco AnyConnect and umbrella will not be compatible for TLS 1.2 from 31st October 2020. Should...
Read more >
Split Tunnel Domain & Application Cisco Umbrella Issue
I'm testing from home with two laptops, and both are connected to this same GP Gateway. Laptop 1 does not have all our...
Read more >
Configured Cisco Umbrella on the Juniper | SRX
These forwarders can just be the Cisco Umbrella servers. Example below where the SRX listens on irb.10 and forwards all requests to 1.0.0.1+1.1....
Read more >
Add Umbrella roaming agent on Mac devices - Hexnode
Is there any possibility for a silent installation of Umbrella roaming agent on my Mac ... PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found