-
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?
Quick (personal) thoughts:
Big agree. This is a huge problem, and one of the central reasons I'm excited to be working on moving the documentation site away from Vuepress and towards 11ty, even if it is a slow effort on my part. The issue is here and I'd love to break it down into a group effort if others are interested.
I agree with some of these like Wallaby (esp Wallaby, does anyone use that?) and we've discussed how to deprecate some of our offerings over time, to be sure. However, others of these tools are things we as engineers have to know how to use in the context of our work. It might be better to position our stance on them differently, but I'm not sure we could downplay or remove most of these.
The pendulum swings. All the issues of a mono-repo are all the issues of not a mono-repo but inverted, are they not?
I feel this pain (here and in my own projects), too, but wonder if it's a necessary evil? If something made a change you want, and things depend on it, you should want that too, right? In some ways, this feels like more of an indictment of
package.json
and semver than of Lerna or anyone project. I'd love to hear more about how this fits into your normal workflow to compare notes on what might be done to mitigate this.You actually still get comments about this? Interesting. Heard it early in the project, but haven't gotten any feedback on it on any substantial form in ages...
I'd love to hear more how you think positioning would change the impressions of these same communities that their community solution to the problem of "building" is less the bee's knees than they think it is.
This implied a forced lock-in, that recent efforts are pushing further and further away from via more decomposed tooling and configs. This would seem to play really close to the above "positioning" statement and to the idea that a "framework" (usually to imply other frameworks, but more and more I hear people using that word with OpenWC) should ship its own stuff. There's an important greater JS community nut to crack there, I think.
Great idea to squat on this regardless of what happens in the near future.
Overall
Great ideas here. I'd think a lot of the suggestions would suffer from the same issues that you see now if pre-announce partnerships with other groups weren't formed. Do you have any association with established RAV groups that might be interested? Fred over at Snowpack always gets excited, but he seems so overdrawn already, that I'm not bullish on his being able to participate in any new efforts, no matter how central they might seem to his current work.