-
Help the adoption of Going Buildless by frontend developers, regardless of frameworks or libraries they use.
-
Make the most valuable tools related to Going Buildless easy to discover, use and contribute to.
@open-wc has become an umbrella project which consists of lots of parts mixed in the same repo and docs site:
-
tools:
es-dev-server
karma-esm
@mdjs/core
storybook-prebuilt
(separate repo)mdjs-viewer
(separate repo)
-
utilities:
building-utils
polyfills-loader
import-maps-generate
import-maps-resolve
-
plugins:
rollup-plugin-html
rollup-plugin-polyfills-loader
storybook-addon-web-components-knob
storybook-addon-markdown-docs
webpack-index-html-plugin
-
presets:
building-rollup
building-webpack
-
testing helpers:
chai-a11y-axe
semantic-dom-diff
testing-helpers
-
WC helpers:
dedupe-mixin
lit-helpers
-
configs:
eslint-config
prettier-config
testing-karma-bs
testing-karma
testing
-
recommendations:
testing-wallaby
deploying
- IDE (VSCode)
-
onboarding:
- create
- codelabs
-
experiments:
scoped-elements
IMHO, the current situation has the following problems, that affect developer experience:
-
navigation. I always struggle to find a link to ES dev server docs, due to complex navigation structure. And I'm already an experienced user familiar with the site. What about newbies who just discovered open-wc?
-
piling up content. Things like ESLint, Prettier, VSCode or Wallaby are definitely useful for those who never tried them. However, these are also matter of personal preference and probably should be downplayed.
-
contributing. The monorepo itself is kinda scary for certain users. It might be easier to maintain, but less clear how to contribute - find an issue, setup the environment locally, submit a PR, deal with CI.
-
versioning. Because of Lerna, there are many releases that are version bumps only. That forces me as a user to look through CHANGELOG entries figuring out if there are valid reasons for me to upgrade.
-
branding. The joke about WC has been so much repeatedly happening, and honestly now it's too annoying. When you reach out to external developers, their first impression really matters, and now it's a bit weird.
-
positioning. Many tools are not specific to web components, and could be used by frameworks users. Unfortunately, there is a somewhat negative feeling about Web Components in certain communitites.
-
walled garden. Despite the fact that developing with ES modules is becoming popular (e.g. Snowpack), the tools and libraries by open-wc are mostly used by web components (former Polymer) community.
Let me make a suggestion that might tackle some of the problems and help to achieve goals:
-
introduce Buildless as a separate brand and GitHub org.
-
suggested slogans:
- "build less, do more"
- "start with
index.html
" - "you might not need build tools"
- "forget about JS fatigue"
-
move the following packages to separate repos under new org:
- tools
- utilities
- plugins (except
storybook-addon-web-components-knob
) - presets
-
create a new website (consider 11ty). These domains are free:
-
keep configs, recommendations, codelabs, WC helpers under Open WC
-
refer to Buildless as a "sibling" project from https://open-wc.org
-
invite other tools authors (Vue.js / Vite, Snowpack) to collaborate
Thoughts?
I definitely agree that the docs have become somewhat of a beast, and I agree that we can benefit from a separation.
navigation
This is very much true, and a separation of content would go a long way here.
piling up content
Also true, we'll need to overhaul the docs and filter out outdated or non-essential content.
contributing & versioning
I understand the point here, but its also more of a javascript/publishing problem I guess? I do agree we can be more helpful to new contributors. Im not sure if this was actually implemented, but we already had some discussions about commitlint for example.
branding
I do agree with this (although I also think the JS community could grow up a little bit 🤷♂️), but I'm very much not in favor of renaming open-wc. I think it would be very unfortunate to change the name at a point in time where we've build up quite a following/name recognition
Proposal:
Buildless
Im somewhat hesitant of naming it 'Buildless'. While I subscribe to the ideology of going buildless, many 'buildless' tools are very much not buildless, and I just think we're "not quite there" yet. Also I think at this point in time its somewhat of a 'hype' name, I'm not sure how relevant the term 'buildless' will be in a few years from now. (However, I do like the "build less, do more" catch phrase)
New site
@Westbrook has been doing some explorations of 11ty, and we've already been looking at migrating the docs to 11ty.
Overall I think a good first step here could be to filter outdated content from open-wc, make a separation of what should be open-wc content or not, and move stuff to a separate (to be named) site.
Imo open-wc should be all about getting started with web components, and making it easy for people to build web components or apps with web components. This includes guides/codelabs/examples, but also build/test/lint etc configurations. We've also discussed giving more advanced/in-depth guidance on building apps.
The 'sister' site could then be for the more tooling kind of stuff.
If we move the tooling to a separate site, we should also move web component related tooling to that site.