madewithkoji / koji-vcc

A library that exposes VCC and ENV values for easy consumption in a Koji app
10 stars 5 forks source link

Consolidation ideas #25

Open sthielen opened 3 years ago

sthielen commented 3 years ago

One of the big projects early next year, as we renew focus on community & developer experience, will be to consolidate and refactor all the packages used in Koji templates.

In the beginning, our goal was to introduce as few requirements as possible for template developers so as not to constrain the work they might do, and to minimize the overhead of learning to "adopt" Koji. This led to the low-level, unopinionated fragmentation we see today.

We are now in a different place, where we have a more defined and stable understanding of the interfaces between the Koji platform/player and the template. It feels, to me, like now is the right time to look holistically across all the developer-facing packages in our ecosystem and create a "v2" that gets everything nice and clean and provides a foundation for future work.

The purpose of this issue is to generally collect ideas, pain points, preferences, etc. relating to the packages in our developer ecosystem. My feeling at the moment is that this will precipitate a single @withkoji/core package, for both browser and node and with named exports for different scopes. We can then deprecate all the individual packages and have everything in one place. Some packages, like database and dispatch, might make sense as separate packages.

The lay of the land today is:

All ideas welcome!

sthielen commented 3 years ago

A few to start:

arist0tl3 commented 3 years ago

This is great!

Some ideas off the top of my head:

rasienko commented 3 years ago

It would be a good time to revisit auto-generating the reference docs as well. We can leverage jsdoc tags and build an output that can be consumed as a source node in Gatsby to integrate it with the site. Some initial dev/devops work to do it, but it will give us more scalability in the future. It also allows us to do things like generate deep links from the docs to the package source.