The OpenJS Foundation recently hosted its monthly Ask Me Anything with folks from the webhint team. webhint, a hosted project at the Foundation, is a customizable linting tool that helps you improve your site’s accessibility, speed, cross-browser compatibility, and more by checking your code for best practices and common errors. Pretty useful stuff, huh!?
This month’s AMA featured maintainers from the jQuery project. Jory Burson, OpenJS Foundation Community Manager, moderated the discussion with Dave Methvin and Timmy Willison. Dave Methvin has been a contributor to the jQuery project since 2006, and led many project initiatives during his 14-year history with the project, notably leading releases for core versions 1.7-2.1. Timmy Willison has been a jQuery Core Team member since 2011, and its Core Team Lead since 2015. Timmy is also the Lead Front-End Engineer at Spokestack.
If you are interested in supporting or becoming involved, there are a few ways to do so! 1. Check out the project’s GitHub repo and look for “help wanted tags” 2. Keep your versions of jQuery, especially if you are on 1 or 2. There are tools like jQuery migrate to help. If you are using migrate, take it out for production.
For more insights, check out the full replay below.
The next AMA features the webhint team and is happening March 4, 2020 at 9 am PT. To submit your questions, go to this form.
Congrats to the Electron team on their latest version release, Electron 8.0!
This new release includes upgrades to Chromium 80, V8 8.0, and Node.js 12.13.0. Read about all the details on the Electron blog here. Learn more about Electron and why it has joined the Foundation as an incubation project.
“We’re heading into 2020 excited and honored by the trust the Electron project leaders have shown through this significant contribution to the new OpenJS Foundation,” said Robin Ginn, Executive Director of the OpenJS Foundation. “Electron is a powerful development tool used by some of the most well-known companies and applications. On behalf of the community, I look forward to working with Electron and seeing the amazing contributions they will make.”
Electron’s cross-platform capabilities make it possible to build and run apps on Windows, Mac, and Linux computers. Initially developed by GitHub in 2013, today the framework is maintained by a number of developers and organizations. Electron is suited for anyone who wants to ship visually consistent, cross-platform applications, fast and efficiently.
“We’re committed to open source and developer collaboration, and thrilled for Electron to be a part of the Foundation’s incubation program,” said Sarah Novotny, Partner PM Manager, Azure, Microsoft. “We look forward to further enhancing the open source project for contributors, maintainers, and developers building on the framework; while exposing the project to a broader audience.”
“The Cross Project Council is thrilled to bring Electron into the OpenJS Foundation community,” said Joe Sepi, Cross Project Council Chair, and Open Source Engineer & Advocate at IBM. “Collectively, we are building something sustainable for the long-term benefit of community members and end-users. We are excited to work with Electron, and to have them be part of our mission.”
“On behalf of the OpenJS Foundation Board of Directors, it’s my pleasure to welcome Electron as the newest incubating project to the Foundation,” said Todd Moore, OpenJS Foundation Board Chair and Vice President of Open Technology and Developer Advocacy at IBM. “Bringing Electron into the Foundation is a great way to cap 2019, and continue to build our momentum into next year.”
Representatives from Electron will be featured in both a keynote and breakout session at Node+JS Interactive.
About OpenJS Foundation
Fastify is an open source web framework for Node.js focused on providing one of the best developer experiences with the least overhead and a powerful plugin architecture. They are joining the OpenJS Foundation’s incubation program.
Fastify, inspired by Hapi and Express, is built for speed while offering a solid developer experience. It powers large organizations and products, including CAR2GO, Gumlet, Knock, UNIQ, Unhandled, and Vectra. Fastify is partially sponsored by NearForm.
Fastify already has 12.5K GitHub stars and 804 GitHub forks. This kind of growth brings more business and legal issues along with it. By joining OpenJS Foundation, Fastify is looking to create a neutral community structure ready to scale.
Highly performant: Can serve up to 80 thousand requests per second, as the framework adds no overhead to Node.js core.
Extendible: Fully extensible via lifecycle hooks, plugins and decorators
Schema based: Recommend using JSON Schema to validate routes and serialize outputs
Developer friendly: Built to be expressive and to “help the developer in their daily use, without sacrificing performance and security”
“We’ve been working on Fastify now for 3 years. It was born out of a desire for a HTTP framework with extremely low overhead and astonishing speed,” said Matteo Collina, Project Champion. “We are delighted to see it powering many organizations today – in commercial use and in support of humanitarian causes such as the HospitalRun application where Fastify is enabling a unique modular solution thanks to its plug-in system, developer satisfaction, and framework speed. By joining OpenJS Foundation’s incubation program, Fastify will no doubt open significant new and unimagined opportunities for the future.”
For those curious about contributing to Fastify, their core philosophy is to promote contributions from the community, rather than just have a core team pushing forward a specific agenda.
Why not start now? The Fastify GitHub repo README file provides installation instructions using npm or yarn, and shows how to use Fastify CLI to create new projects, manage plugins, and perform a variety of development tasks testing and running the application. Full details here: www.fastify.io
AMP enters the open source foundation to broaden open governance, drive diverse, cross-industry adoption and continue improving the web for all.
“AMP is a great example of a community and technology focused on improving web performance and experience for all,” said Robin Ginn, Executive Director of the OpenJS Foundation, “On behalf of the Foundation, I am happy to welcome AMP and I look forward to seeing their progress to support a faster, open web.”
Now in its fourth year, AMP, a multi-stakeholder open source project initially backed by Google and used across a broad range of organizations, allows any publisher to have pages load quickly on mobile devices. Used in billions of pages on more than 30 million domains, AMP integrates with countless products and companies, including Google and Microsoft who each implement their own AMP Cache.
As a continuation of its adoption of an open governance model in late 2018, AMP’s cross-industry Technical Steering Committee agreed that the next step would be to submit an application for the project to join the OpenJS Foundation. This decision was further supported by its Advisory Committee representing constituencies from publishers, CDNs, browser vendors, open web advocates, and e-commerce and platform companies.
After completing the incubation process and officially joining the OpenJS Foundation, AMP will enable a wider variety of contributions from a wider audience, both technical and strategic. Additionally, a move to the OpenJS Foundation aims to develop and showcase the entirety of AMP’s benefits and capabilities, outside of the advantages to publishers.
“Now in our fourth year, AMP is excited for the next step on our journey,” said Malte Ubl, Member of the AMP Project Technical Steering Committee. “We’ve been considering the best home for AMP for some time. We decided on the OpenJS Foundation because we feel it’s the best place for us to help us to cater to our diverse group of constituencies. This step builds on previous moves we’ve made toward open governance and helps us focus on transparency and openness.”
“As a Platinum member of the OpenJS Foundation and huge proponent for thriving open-source communities, we are thrilled to see AMP take this step with the Foundation,” said Myles Borins, Developer Advocate for Google and OpenJS Foundation Board Vice Chairperson.“The opportunity to improve the web is vast, and AMP has a role to play in that. We see no better place for AMP to accomplish these goals than with the OpenJS Foundation.”
“As an AMP contributor and framework user having integrated AMP into different products including owning our own AMP Cache, we fully support and encourage this move,” said Saulo Santos, Engineering Manager, Bing Experiences, Microsoft. “AMP is helping to improve the web, and entering it into the Foundation will only be a continuation of these efforts.”
About OpenJS Foundation
Frequently Asked Questions
Why is AMP joining the OpenJS Foundation?
AMP has been taking very thoughtful steps to ensure its long-term commitment to its vision (A strong, user-first open web forever) and mission (Provide a user-first format for web content, supporting the long-term success of every web publisher, merchant, and advertiser).
In 2018, after community concerns around its ties to Google as well as concerns around scaling the project, AMP adopted an open governance model that is mirrored after the Node.js Foundation and JS Foundation. They adopted this model to scale as well as to give a voice to all constituents of the community, including those who cannot contribute code themselves, such as end-users.
How will joining the Foundation solve some of the past issues pertaining to governance AMP has faced and currently faces?
The OpenJS Foundation prides itself on vendor neutrality. Our vested interest resides solely in the ecosystem and the projects that contribute to that ecosystem. The OpenJS Foundation’s Cross Project Council is committed to supporting AMP in addressing these issues and ensure continued progress. During onboarding, AMP will also go through a multi-step process including adopting the OpenJS Foundation Code of Conduct, transferring domains and trademarks and more to graduation from incubation. AMP has made incredible strides by adopting a new governance model and by joining the OpenJS Foundation, they’ve made their intentions clear-AMP is committed to its vision of “A strong, user-first open web forever.”
Currently, the AMP runtime is hosted on the same infrastructure as the Google AMP Cache. Doesn’t this present serious issues?
The end goal is to separate the AMP runtime from the Google AMP Cache. The Project is currently in the incubating stage and Project leaders are still determining the next steps. Ideally, hosting and deployment of the AMP runtime to the CDN would fall under the purview of the OpenJS Foundation, much like the foundation is handling other projects CDNs, such as the jQuery CDN.
Untangling the runtime from the cache is a complex endeavor requiring significant investments of time and effort which would be planned and implemented in collaboration with the foundation and industry stakeholders during and after incubation.
The OpenJS Foundation CPC is committed to having a long-term strategy in place to address this issue by the end of AMP’s incubation.
How will AMP joining the Foundation address the lack of contributor diversity/inclusion? Currently, only past or current Google employees have commit rights.
AMP has taken key steps to guide how decisions are made in a more open and transparent way. The first step was to adopt a new governance model represented by multiple stakeholders. By joining the Foundation, which is a vendor neutral organization, AMP will be able to continue down this path. One of the reasons AMP is joining the Foundation is so they can have more of an inclusive contributor base. The Cross Project Council and AMP will be working on this together.
If you build Node.js applications, you may end up needing to use different versions of Node. Fortunately, there is a convenient way to install and manage different versions thanks to Node Version Manager (nvm). nvm is a POSIX-compliant bash script to manage multiple active Node.js versions.
nvm will be the first project to enter the OpenJS Foundation’s incubation process after the merger of the JS Foundation and the Node.js Foundation. nvm is the most common and widely used method to install Node.js, and the most common tool to manage multiple installed Node.js versions.
nvm offers many benefits to help developers accomplish tasks in a more efficient way. Some of these advantages include:
The ability to easily switch between node versions per-shell, which enables testing of both libraries, for maximum backwards compatibility, and apps, for smoother node upgrades on multiple node versions.
The ability to install node on any posix-compliant system that has curl/wget
Stores node versions, and thus globally installed modules, inside the user directory, removing the need for sudo when used with npm
Handles compilation for most systems that don’t have prebuilt binaries available, simplifying the install process
Provides the ease and convenience of a package manager without needing to obtain node from an unofficial distribution channel which cuts down on delays before newly released node versions are installable.
By joining the OpenJS Foundation, there are multiple organizational and infrastructure areas that will be better supported, helping both current users and future users including ensuring no single point of failure for the nvm.sh domain, GitHub repo, and more. Furthermore, nvm will be able to ensure governance and Code of Conduct enforcement to make sure that nvm will continue to be stable if there are personnel changes with the sole maintainer. Joining will also help nvm to grow and gain contributors, providing more overall stability for the project. If you are interested in getting involved, check out contributing guidelines on GitHub.
Quotes from the Community
“It’s great to have nvm join the OpenJS Foundation because it’s an important part of the overall ecosystem and a tool that makes Node.js version management easier for our users,” said Bethany Griggs, member of the Node.js Release Working Group and Node.js Project Technical Steering Committee. “nvm is a valuable tool that makes upgrading to new or switching between existing versions of Node.js much more simple. This is especially useful when developers are working on various projects that have different minimum required Node.js versions.”
“Having nvm enter into the incubation phase is an important and exciting milestone for the Cross Project Council and the OpenJS Foundation,” said Joe Sepi, CPC Chair. “As the first project, it shows forward progress and momentum. On behalf of the CPC, I look forward to nvm’s success as well as onboarding more projects crucial to the ecosystem”
“I’ve been a user of nvm since 2011, and it is the best way to install Node.js on a developer’s machine,” said Matteo Collina, Node.js Technical Steering Committee member, and Node.js CPC representative. “It’s fantastic to see new energy on the project, and I wish nvm a brilliant future in the OpenJS Foundation.”
Supported platforms: any POSIX-compliant shell: Linux, OS X, Windows WSL
nvm is joining the OpenJS Foundation as an incubating project, and upon successful completion of onboarding, it will become an “At-Large” project. An “At -Large” project is one which is “stable projects with minimal needs.”
Apply for Hosted Project Status at the OpenJS Foundation!
Projects hosted by the OpenJS Foundation fall into one of four categories:
Impact stage is generally for large, mature projects.
Growth stage is for projects which are actively mentored, and which intend to graduate to Impact stage.
At-Large stage is for new projects, stable projects with minimal needs, and everything in between.
Emeritus stage is for projects which have completed their lifecycle and are retired.
Read through the project lifecycle Project Progression proposal to find out how the OpenJS Foundation can best support your project, and apply today!
Congrats to the webhint team on their v1 release! webhint, a linting tool for the web focused on best practices and flexibility for the end user, is a Growth project here at the OpenJS Foundation. The below post originally appears on the webhint blog.
We are thrilled to announce that the webhint browser extension has moved from beta to its v1 release and is now available for Chrome, Edge (Chromium), and Firefox!
The webhint browser extension allows you to easily scan a website and get feedback on accessibility, browser compatibility, security, performance, and more within the browser DevTools. Read more at https://webhint.io/.
Try the webhint browser extension
Once you’ve installed the extension for your browser, simply open DevTools and select the Hints tab. From here, you’ll be able to run a customizable site scan. You can select what browsers are relevant to you by using the browserslist syntax. (browserslist is the defacto standard for creating browser support matrix, and it’s used by tools such as autoprefixer.) You can also ignore certain cross-origin resources in your scan, letting you focus on the code you care about most.
What’s new for v1
Since announcing the beta in July, we’ve made a number of bug fixes, improvements, performance enhancements, and all-new features to the browser extension based on your feedback. Here are a few of the highlights.
Improvements to cross-browser compatibility hints
Making sure your website works in all the browsers you care about is a difficult task. webhint’s compat-api uses MDN’s browser compat data to help you identify possible gaps in your browser support matrix.
In v1, we added suggestions for missing vendor prefixes. These hints are especially helpful for testing cross-browser compatibility. We also improved the way in which browser versions are listed in compatibility hints, as shown in the before and after screenshots below.
Grouping of similar hints
Previously, if a hint affected numerous elements on a webpage, it could produce an overwhelming number of recommendations. We’ve improved this experience by grouping similar hints together.
More insights on accessibility
Previously, the browser extension surfaced color contrast hints but did not display the current color contrast ratio. In v1, this information has been added to color contrast hints.
We’ve also made more granular category breakdowns for accessibility to help you quickly sort through recommendations.
webhint now utilizes axe-core version 3.3.2, giving us a great performance boost. Browser extension scans now take an average of 9 seconds. We’ve also added hints for inline SVG styles, bug fixes, and more! You can see the full changelog here.