openjs-foundation / cross-project-council

OpenJS Foundation Cross Project Council
https://openjsf.org/
MIT License
439 stars 152 forks source link

Kicking off an OpenJS Foundation project landscape #411

Closed brianwarner closed 4 years ago

brianwarner commented 4 years ago

Dan Kohn has graciously offered to configure a Landscape for us (like https://l.cncf.io or https://l.graphql.org). This is a very nice way to visualize the contours of our communities, and will be a great next step now that the artwork repo is in place.

For those who aren't familiar with how these work, each landscape is configured via a git repo. When a PR is submitted, the landscape software automatically builds and deploys a new version of the site. Because it's just a repo and managed through PRs, anybody can contribute and keep it up-to-date.

Each landscape entry needs a vector logo, and pulls its vital stats from a (free) Crunchbase profile. Thanks to everyone's help, we have vector logos for all projects. As for Crunchbase profiles, most members and some projects already have these (for example, https://www.crunchbase.com/organization/jquery-javascript-library). I can work with maintainers to set one up for their projects, if need be.

Let's chat about logistics on the next CPC call. It should be pretty straightforward, although I'd suggest bootstrapping it in a private repo until it is ready for contributions. I'll ping this issue with updates, and am looking forward to working with everyone on this.

bnb commented 4 years ago

Before progressing with discussing logistics and actually moving this forward, I think it's valuable to see if this actually aligns with what the projects are interested in - especially as something that represents each project individually in addition to us as a whole constituency. It is a direct reflection of us.

I have a few concerns about the utility of the site myself, outside of project validation:

brianwarner commented 4 years ago

I can't speak for the alt tags, but as the app which generates the site is open source, it sounds like that would be low-hanging fruit to address.

The Crunchbase profile just provides a normalized source of data - Canonical name, description, links to social profiles (if any). Projects can add as much or as little as they want, but the point is they have the ability to decide what to display.

bnb commented 4 years ago

(Accidentally locked via a touch detection bug in the mobile app - wasn’t intentional)

brianwarner commented 4 years ago

I was chatting with @dankohn in a separate thread, and I think he can add some solid context on this.

dankohn commented 4 years ago

@bnb thanks for the feedback.

Accessibility Insights asserts that there are 784 accessibility failures. The majority are a lack of alt tags on the 724 images on l.cncf.io, but there are also additional issues - the biggest of which is 50 contrast issues.

Webhint - a foundation project - asserts a similarly massive set of improvements.

Thanks for sharing the results of those two tools. I've prioritized addressing them and expect to get much better scores in the next couple of weeks.

Running a lighthouse report (devtools > audits > lighthouse) on it raises similar accessibility concerns.

We just added support for pre-rendering which significantly increased our Lighthouse scores.

I'm happy to take additional suggestions for improvements, but let's see where we land after the accessibility fixes.

If users have JavaScript disabled, the site seems to turn up a white page if you navigate off the main page and all drop-downs cease to work. Additionally, it seems JavaScript is being used for resizing the width and height of the page.

I believe nearly all modern web applications, such as Google Docs, also rely on JavaScript. Here's a statistic that 0.2% of traffic in 2016 did not support JavaScript. Of course, the static rendering remains available in png and pdf.

I would like to further understand the Crunchbase integration. Outside of personal feelings about how they monetize data, and the reference provided seems relatively lackluster in terms of actually being useful for our use case.

Here's the explanation for using Crunchbase.

I understand the skepticism, but I really encourage you to spend some time using the apps, such as trying our the sample filters on the left. and the different grouping and sorts. I find it invaluable for keeping on top of our ecosystem. Please also see these landscapes for other communities that are finding it useful.

https://landscape.graphql.org/ https://landscape.aswf.io/ https://landscape.lfenergy.org/

Also, I'd be happy to meet for coffee next week in Brooklyn and could walk through some of the ways I find the landscape tool useful.

Cc @jordinl83 @AndreyKozlov1984

brianwarner commented 4 years ago

Per the call today, here's a link to the staging environment: https://openjsf-landscape.netlify.com/

mcollina commented 4 years ago

@brianwarner Fastify is missing. Where may I send a PR to?

brianwarner commented 4 years ago

@mcollina Here's the staging environment, for now it's still on @dankohn's account: https://github.com/dankohn/openjsf-landscape

Also, the staging environment needs a few updates to reflect membership changes, as well. (This is a note to myself.)

dankohn commented 4 years ago

I added Fastify:

https://openjsf-landscape.netlify.com/selected=fastify https://github.com/dankohn/openjsf-landscape/commit/942ba22de74c5ac41508c214b37cb5e577370763

bnb commented 4 years ago

Sorry I couldn’t make it to the call today. I am still -1 and unconvinced this is a helpful addition for the OpenJS Foundation specifically.

mhdawson commented 4 years ago

I'm +1. It seems to present information about the Foundation in a way that is clearly limited to the Foundation and is a nice graphical view of our member projects and corporate members.

bnb commented 4 years ago

I guess I have some follow up questions:

Why questions:

JavaScript questions:

Maintenance questions:

I most prominently care about the why questions. I still haven't come to clearly understand who this helps and what problem it solves for them.

bnb commented 4 years ago

I'd also like to take a moment to respond to @dankohn after having intentionally taken some time away from the keyboard before responding.

Thanks for sharing the results of those two tools. I've prioritized addressing them and expect to get much better scores in the next couple of weeks.

Thanks for prioritizing a11y enhancements! I'm glad to see that these enhancements seem to have shipped on the other deployments of the site ❤️

I believe nearly all modern web applications, such as Google Docs, also rely on JavaScript. Here's a statistic that 0.2% of traffic in 2016 did not support JavaScript. Of course, the static rendering remains available in png and pdf.

I am very aware of how few people use the web without JavaScript enabled. For context, one source I found asserted that 4.479 billion people worldwide use the Internet, meaning that 0.02% of those folks would be 89,580,000 people. For context, of 223 countries only 15 have a population grater than that number - and it is tens of millions above countries like the U.K., France, South Korea, Canada, Spain, Australia, and so many more.

I would recommend reading this article by Chris Ashton on Smashing Magazine for more context on being empathetic toward users who don't have access to JavaScript is important. I personally feel it's even more important coming from a Foundation that is the home of many high-impact projects. Additionally, I would recommend watching this talk by Isabella Silveira de Souza at Nordic.js discussing the availability of good internet access which goes over many elements that tie into this subject.

I understand the skepticism, but I really encourage you to spend some time using the apps, such as trying our the sample filters on the left. and the different grouping and sorts.

I have been aware of this project for years, and have gone back to it every now and then! I even made an issue 3 years ago citing a tweet from you highlighting corporate + OSS additions to the landscape and noting my appreciation for the tool, while also asking if it'd be appropriate to add a tool created by the company I worked at at the time was a good fit. Additionally, I am generally aware of how forms and filtering work 😬

brianwarner commented 4 years ago

I guess I have some follow up questions:

Why questions:

  • who is this site being deployed for for and what real problem does it solve for them?
  • what tangible benefit does presenting information in this way provide that the existing documentation of the information does not?

    • if the existing presentation of this information is not sufficient, why are we duplicating sources of truth instead of improving the existing materials?

JavaScript questions:

  • are we okay telling users who are not willing or able to run JavaScript that their inability to access an official site that represents us as a community is a wontfix?

Maintenance questions:

  • who will end up actively maintaining this site?

    • who will update its dependencies and ensure there are no security issues?
    • who will fix bugs like many projects' licenses being unrecognized, projects for some reason being included in the "market cap" list, and so on?
    • who will remove features when they're requested and agreed upon, like the market cap/funding feature that we previously seemingly came to consensus on removing but seemingly has still exists?
  • what kind of time commitment is involved?
  • are we okay with Twitter's tracking being included?
  • are we okay with an official property of our Foundation being used for generic advertising of Linux Foundation events unrelated to our work?

I most prominently care about the why questions. I still haven't come to clearly understand who this helps and what problem it solves for them.

I think most of these questions are pretty easy to answer. The main reason "why" is that it provides an at-a-glance overview of inherently undiscoverable information. Unlike blog posts, analyst reports, or other snapshots of the ecosystem, this is a living document which can be updated by anybody in the world.

These sites, of which there are many, are also inherently extensible. One of the better use cases I've seen is to create subsets for each project, to which project participants can add their company logo. When you zoom back, you can get a feel for who is participating where across what projects.

Another really nice use case is to have a category for end users to add their logo under projects upon which they rely. This is another piece of info which isn't inherently discoverable, and isn't being uniformly presented anywhere (that I've seen, at least).

As to Landscape app requiring JavaScript, I think there's a reasonably straightforward solution. In my testing, the app renders the main page even with scripts disabled; the user just loses the ability to drill down into things. It also still presents the link to the static images, which are cached each time the app rebuilds a new version.

As to the ongoing maintenance, that's really up to each participant how much info goes in. At minimum, we can ensure that member companies and project logos are in place. But if a project participant wanted to extend it, they can submit a PR to the configuration repo. Netlify does the hard work of building, testing, and deploying, and then it just requires someone to merge the PR.

Finally, in the config you can set the left image (currently KubeCon, because this was set up from CNCF's template). That can be updated as time goes on.

bnb commented 4 years ago

Per today's meeting, changing my -1 to a -0. Still not particularly fond of this but not going to block.

Thank you @rginn for clarifying the purpose as marketing/bizdev.

mhdawson commented 4 years ago

Another really nice use case is to have a category for end users to add their logo under projects upon which they rely. This is another piece of info which isn't inherently discoverable, and isn't being uniformly presented anywhere (that I've seen, at least).

I'm interested in us exploring this (possibly as a next step) as having more insight into end users would be a benefit.

brianwarner commented 4 years ago

Just to close this particular issue out, @dankohn transferred the repo over to me, and I'll transfer the openjs-landscape repo into the org. It would probably be a good idea to move future discussion over there, once the transfer completes.