Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Braindump of ideas #1

Closed
KyleAMathews opened this issue May 22, 2015 · 15 comments
Closed

Braindump of ideas #1

KyleAMathews opened this issue May 22, 2015 · 15 comments

Comments

@KyleAMathews
Copy link
Contributor

Here's a quick braindump of directions I've been thinking.

  • Configuration/Convention driven but easily overridable with code. What this means in practice is that there'd be a command line tool with commands to create/watch/build sites. Most sites wouldn't need anything special for configuration so there'd be a common webpack etc configurations bundled with the cli tool that would set up hot reloading while developing and uglified builds for production.
  • RSS/Atom support — necessary for anything blog like
  • no reload page transitions. This would be amazing and pretty easy to do with React Router. The initial html page would load followed quickly by a js bundle with the content for the rest of the site. Atlassian's Git tutorial site does this and it feels amazing (built with React/React-Router as well) https://www.atlassian.com/git. CircleCi almost gets this right but they load content for each page individually which delay causes noticable layout jerk https://circleci.com/docs/getting-started
  • smart code splitting. E.g. autostart splitting if bundle gets larger than 750kb. A fun research project would be to investigate how to use internal link structure to generate ideal bundles e.g. for each page, bundle together all content within 2 clicks of page. We'd handle loading additional bundles automatically.
  • themes that are installable separately. E.g. for blogs/doc sites, etc. This would leverage react router by wrapping page content inside it. So a blog theme would provide a header, navigation, background colors/images/etc and put the child blog post inside it.
  • Support Markdown/Asciidoctor/other writing formats
  • rehabilitate https://github.com/andreypopp/reactdown and give it 1st class support
  • each page can have its own package.json. Useful for marketing sites where one or two pages might have lots of extra stuff or blog posts where you want to drop live demos in. Basically each page can act as its own app if it wants to.
  • no configuration routing. Just use the directory structure of posts (posts/a-long-voyage-across-the-southern-seas/index.md) to auto-generate the react-router configuration.
  • A docker image that autobuilds/server site. My startup uses Docker containers for running microservices so the ideal setup for me would be to develop locally and then push the src which would get added to a Docker image, built there, and get served by Nginx.
  • plugins support e.g. simple client-side search for a blog. Extract text from markdown and make searchable with http://lunrjs.com/
  • built-in support for my typography tool. There could be a number of builtin typography "themes". This also speeds initial load time as all css would be inlined meaning initial page is loaded with one request.
  • hot reloading built-in while writing/developing

There's a lot of static site generators out there and I've played with several and written my own for my blog. They're all pretty much the same and not particularly interesting. I think a React.js based SSG can push the state of the art in three ways — easy no-page transitions, react.js style components, and leveraging the growing react.js ecosystem of tools and components.

Most stuff on the web are sites not apps. And react.js components as just as powerful for sites as they are apps so a kickass tool for building react.js sites would be very valuable.

@gesposito
Copy link
Contributor

Please consider:

  • Using "static [site generator]" and "React" keywords in your description for discoverability on GH. That's what I'd search for.
  • Moving to ES6 from CoffeeScript (sorry, I know it might be painful) for contributions and adoption. That's what the React community is used to work with.

@johnbrett
Copy link
Contributor

BIG +1 for moving to ES6!

@KyleAMathews
Copy link
Contributor Author

Yeah, moving to es6 is the plan. I write everything in coffeescript so it's a lot easier for me to stick with that while prototyping. Things are starting to stabilize so I'll port it soon.

@KyleAMathews
Copy link
Contributor Author

Added "react.js static site generator"

@BerkeleyTrue
Copy link

Can't wait for the move back to JavaScript!

@KyleAMathews
Copy link
Contributor Author

@BerkeleyTrue @gesposito has or is converting most of the code e.g. #37

@MoOx
Copy link

MoOx commented Sep 28, 2015

If you are interested into es6, maybe we should consider merging statinamic and gatsby :)

@gesposito
Copy link
Contributor

@BerkeleyTrue @KyleAMathews so far it's just a mere conversion, I'd like to see more ES6 syntax sugaring in the codebase.

@KyleAMathews
Copy link
Contributor Author

@MoOx if you're in Reactiflux, always happy to discuss ideas in the #gatsby channel!

@BerkeleyTrue
Copy link

@gesposito I eagerly await!

@BerkeleyTrue
Copy link

Is the coffeescript migration up for grabs? I'd like to start helping out.

@gesposito
Copy link
Contributor

Sure!

@BerkeleyTrue
Copy link

Awesome!

@thangngoc89
Copy link
Contributor

Hey. Any plan for plugin system ?

@KyleAMathews
Copy link
Contributor Author

Closing this issue as its usefulness has run its course.

gosseti pushed a commit to gosseti/gatsby that referenced this issue Jun 5, 2017
Converted CoffeeScript and CJSX to ES6 and JSX
KyleAMathews added a commit that referenced this issue Sep 21, 2017
KyleAMathews added a commit that referenced this issue Sep 21, 2017
* Add community roundup #1 blog post

* Fix link

* Fixed their confusion
wardpeet added a commit that referenced this issue Mar 17, 2021
pieh pushed a commit that referenced this issue Apr 28, 2021
Fix failing tests and typo
LekoArts pushed a commit that referenced this issue Aug 20, 2021
)

* feat(gatsby-plugin-sharp): reduce encoding time and install size

- Upgrade sharp to v0.29.0
- Replace use of imagemin with sharp equivalents
- Reduces JPEG, PNG and AVIF encoding time by up to 50%
- Reduces install size/time by ~10% (~19MB smaller)

* sync sharp version in all packages (#1)

Co-authored-by: Michal Piechowiak <misiek.piechowiak@gmail.com>
leithonenglish added a commit that referenced this issue Mar 10, 2022
leithonenglish added a commit that referenced this issue Mar 11, 2022
* intiial commit

* canary commit #1

* canary commit #2

* canary commit #3

* tmp

* canary commit #4

* update #4

* update #5

* made sure messages are seen and removed code for idle state

* fixed issue with BUILDING status

* temp

* made sure tooltip stays visible
pragmaticpat pushed a commit to pragmaticpat/gatsby that referenced this issue Apr 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants