Proposal: "pekoe"

Antranig Basman antranig.basman at
Mon Dec 7 23:26:51 UTC 2020

Hi Ned - this sounds like a great project.

I had a look over the Pinecone library and really liked the clean markup and good organisation. It's great 
that this collection of components has already been validated through use in several projects.
I've long felt that there is a gap in our lineup within Fluid, since Infusion has by now come to be a 
somewhat bulky application framework with a fairly steep learning curve, and we don't have anything clear to 
offer users who want to get off the ground quickly with a minimal set of progressively enhanced components, 
especially in the increasingly popular static site context.

Infusion has an odd dual role as an ongoing research project in open application design, together with its 
actual embedding in various projects and wrapping of components and expression of meta-frameworks such as 
the preferences framework - this means it isn't the best fit for every project. It's also somewhat expensive 
to support, so we tend not to solicit further uses of Infusion beyond those which are necessary to support 
its design. It’s part of our aim in this programme that everyone with the power to use an application should 
also have the power to adapt it. A long-term aspect of this aim is that even static sites should in practice 
be editable - sounds crazy, but it has to happen somehow!

It seems likely that Infusion and Pekoe might become complementary further down the line, since the upcoming 
rewrite of Infusion will be able to make greater use of application and component templates expressed in 
pure markup.

When you say that Pekoe will be a "vanilla JavaScript component library", I'm guessing you mean that it will 
largely come to consist of

ii) The module drivers for the various components plus the rollup/webpack config
iii) The component markup

A question I have is - what facilities, if any, you were planning to provide for templating? Is nunjucks, or 
some parameterisation point, or else, nothing at all, going to be provided in order to connect consumers of 
the markup to the markup? Given you said "vanilla Javascript" I was imagining you were planning for pekoe to 
be dependency-free, but it seems like there is something to be done in this area - primarily, what were you 
planning to factor out of pinecone in order to create pekoe?

Cheers on a great-looking and well-organised library, and I think it would be a great addition to the tools 
that Fluid supports for accessible web development.


On 03/12/2020 18:55, Ned Zimmerman wrote:
> Hello all!
> Last year, Cheryl, Dana, Jon and I worked on a design system and component library 
> <> for the Platform Co-op Development Kit. We called it Pinecone, drawing a 
> connection between the principles of atomic design <> 
> and the “twin pines” symbol <> that has long been associated with the 
> cooperative movement. We worked to make each Pinecone component progressively-enhanced (when possible) and 
> to support assistive technology users through accessibility best practices.
> We learned a great deal working on Pinecone and while the visual design is distinctively that of the 
> Platform Co-op Development Kit, much of the underlying code has been repurposed in various in-house websites 
> at the IDRC: the IDRC’s website <>, the forthcoming Community-led co-design kit 
> <>, 
> and others.
> I’d like to propose that some of the most frequently-used interactive components from Pinecone be extracted 
> into a new, lightweight vanilla JavaScript component library, which won’t include any CSS but will include 
> well-documented guides for integration of one or many components into any web project. I’m thinking we could 
> call it “pekoe”, which fits thematically into the Fluid Project’s naming scheme and is a quasi-acronym for 
> (p)rogressively-(e)nhanced (co)mponents. I’m eager to hear your thoughts!
> Cheers,
> Ned

More information about the fluid-work mailing list