Skip to content

Braindump of ideas #1

Closed
Closed
@KyleAMathews

Description

@KyleAMathews

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions