Skip to main content
Category

Project Updates

Insights from the 2022 Fastify Survey

By Blog, Fastify, Project Updates

Survey finds web framework for Node.js is fast and performant

After the challenges that so many have faced the last few years, we really appreciate that so many Fastify users found the time to complete this survey. Fastify is a web framework for Node.js to help increase web performance, and is hosted by the OpenJS Foundation. Our community is everything, and getting feedback like this helps us to maintain and improve Fastify.

We had 108 respondents participate in this year’s survey, and surprising to no one,  the majority work in software or development, or are studying in those areas.

Most respondents found Fastify through GitHub, where Fastify’s repos reside. It is encouraging to see that Fastify is also being discovered through other mediums, which indicates a growing awareness of Fastify that will hopefully lead to more adoption and activity around the framework!

Where Fastify Excels

As the name of the framework implies, Fastify is fast and performant. Respondents overwhelmingly cited this as the reason why they enjoy using Fastify in their projects. Other positives included:

  • Active development and community
  • Documentation
  • Ease-of-use and simplicity
  • Growing plugin ecosystem
  • Support for modern JavaScript features
  • TypeScript support
  • Matteo Collina’s involvement as lead maintainer

These helpful features and benefits have been the result of years of work by maintainers and contributors alike, so we’d like to extend a big thank you to everyone who has been involved with Fastify! Also, thanks to Matteo Collina (Twitter: @matteocollina) for being so charming that he brings all the users to the yard.

Respondents also indicated a high level of satisfaction with Fastify across the board:

Where Fastify Can Improve

We know that “perfection isn’t attainable but if we pursue it we can attain excellence.”  So we asked what improvements users would like to see in future releases.

Requests for additional TypeScript support far outweighed any other, with requests for more examples and clarity in documentation ranking second in priority. 75% of respondents stated they use TypeScript, so this is not surprising!

V4 of Fastify resolves some of these grievances, with new automatic types for query strings and bodies, fixes for missing types, typed decorators, and more. One of the responses requested support for hot reloading, which is currently being explored through tooling like restartable!

The overall sentiment of this feedback has been positive. As Fastify progresses into V4 and beyond we hope that we can remove pain points in Fastify that users have highlighted in their responses, whilst continuing to provide the high-performance users have come to expect!

Many thanks to Alix Robinson and Matteo Collina for preparing the survey. This article was brought to you by Frazer Smith.

jQuery maintainers update and transition jQuery UI as part of overall modernization efforts

By Blog, jQuery, Project Updates

Authors: Michał Gołębiowski-Owczarek, Felix Nagel, and the jQuery team

The jQuery project is actively maintained and widely implemented — it’s used by 73% of 10 million most popular websites. As part of its ongoing effort to modernize the project, jQuery maintainers have taken steps to wind down one of its projects under the jQuery umbrella through a careful transition. 

Today, jQuery UI announced version 1.13 — its first release in 5 years and the project’s final planned release. Perhaps the most important update is that jQuery UI 1.13 now runs on the latest version of jQuery Core, providing a number of browser compatibility and security updates that have been missing from previous releases, in addition to community fixes and improvements. The jQuery UI Download Builder has also been restored and updated so developers can continue to download UI along with their favorite themes. The release is part of an ongoing series of updates across all jQuery projects.

jQuery UI is in maintenance-only mode. Users should not expect any new releases, though patches may be issued to resolve critical security, interoperability, or regression bugs. Trac, the project’s bug-tracking tool, has been put in read-only mode and developers are asked to file any critical issues on the project’s GitHub repository

jQuery UI was first launched in September 2007 as a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery library. It quickly gained popularity because it was one of the best tested and most accessible UI frameworks of its time. The tool helped developers build UI components such as form controls and date pickers using the best practices back then. In its heyday, jQuery UI was adopted by a broad set of enterprises including Pinterest, PayPal, IMDB, Huffington Post, and Netflix. 

Today, jQuery UI continues to be an important testbed for jQuery Core updates, helping the maintainer team spot bugs and interoperability issues that arise as the web platform evolves. 

Celebrating jQuery UI’s History

With the launch of jQuery in 2006, web developers were able to access and manipulate DOM and CSS faster and easier than ever before. Thousands of open source jQuery widgets and plugins were created to handle previously tricky problems, like showing and hiding elements, rotating through image carousels, or picking dates on a calendar. The jQuery ecosystem became a playground full of tools for making new and interesting interactions possible on the web. 

‘New and interesting’ doesn’t always translate to ‘good and useful’ — though there were many good plugins available, it was not always easy to tell which would be the most performant or provide the best user experience. Developers might have to go searching for the right tools or worse, spend significant time swapping through several plugins to figure out which one worked best. Further, there were few examples of best practices in user experience on the web, so visitors to one website could have vastly different (and thus confusing) interactions when they performed a similar task on another website. 

Members of the jQuery Core team wanted to help developers write performant, high-quality, and reusable jQuery components for their sites and applications. After some discussion, the idea for a second library with strict standards for coding, documentation, and theming was born. The project’s vision and goals included: developing a collaborative design process; providing flexible styling and themes; creating elegant visual and interaction design; providing a robust API; and prioritizing progressive enhancement, accessibility, internationalization and localization support.

In September 2007, jQuery UI officially launched as a set of user interface interactions, effects, widgets, and themes built on top of jQuery. Soon after, the team shifted their focus to provide a full set of APIs and methods to allow developers to create flexible, full-featured widgets that met high standards of quality. CSS effects such as easing and animation were added in and helped developers create more modern, enhanced experiences. The team at Filament Group later added a ThemeRoller, allowing developers to get started quickly by providing customizable theme boilerplate. ThemeRoller is still operational today.  

By the end of 2008, jQuery UI had an exploding community of users, developers, and interaction designers regularly providing updates and improvements to the project as best practices and style preferences evolved. Between 2009 and 2016, the community provided a variety of new official and unofficial themes and plugins, interoperability and other bug fixes, robust testing processes, and support for multiple versions of jQuery. 

jQuery UI’s prior official release came in September 2016, nearly a decade after it started. In that timeframe, the jQuery community had helped inspire dozens of other open source projects, pattern and component libraries. But newer CSS frameworks and approaches were taking hold, and slowly the community moved on to other projects. The UI team and jQuery Mobile teams merged, and the group focused more on maintenance and compatibility with jQuery Core.  

jQuery UI became an OpenJS Foundation Emeritus project in 2018, recognizing that it was winding down while noting the significance it had for the JavaScript ecosystem.

Celebrating jQuery UI Maintainers and Contributors

The scope of the project and the inclusiveness of the community was responsible for helping countless web makers develop a love and appreciation for user experience, localization, internationalization, accessibility, and clean, reusable code. Though many hours of work and contribution went into making jQuery UI a successful library, the jQuery UI core team deserves extra recognition for more than a decade of hard work shepherding the work and the community throughout the project’s lifecycle. Alex Schmitz, Jörn Zaefferer, Felix Nagel, Mike Sherov, Rafael Xavier de Souza, and Scott González led a team of many core contributors and more than 300 additional authors.

Additional gratitude is owed to Michał Gołębiowski-Owczarek for preparing the 1.13 release and stewarding the repository for the past year. 

OpenJS Foundation will forever be grateful for the work of these open source developers and the impact they had on the ecosystem through their work. Please join us in celebrating these developers and jQuery UI!

jQuery maintainers continue modernization initiative with deprecation of jQuery Mobile

By Blog, jQuery, Project Updates

Authors: Michał Gołębiowski-Owczarek, Felix Nagel, and the jQuery team

jQuery maintainers are continuing to modernize its overall project that still is one of the most widely deployed JavaScript libraries today. The team announced that the cross-platform jQuery Mobile project under its umbrella is fully deprecated as of October 7, 2021. New technologies for mobile app development have evolved since this project was launched in 2010, so we’re encouraging developers to plan for this jQuery Mobile transition.

Please note that:

  • The Download Builder will remain available.
  • Mobile 1.4 is not compatible with the new jQuery Core.
  • Issues will be turned off. Please report critical security bugs via email to security@jquery.com

Celebrating jQuery Mobile’s History

jQuery Mobile was conceived and announced in 2010, three years after the launch of jQuery.  The project was exciting and ambitious. At announcement, jQuery Mobile promised compatibility across multiple platforms, browsers, and versions. Several mobile browser vendors, including Palm and Mozilla, signed on to sponsor the project: 

“The jQuery community has focused on making the Web as productive and fun as possible. When we heard the mission behind jQuery Mobile, we wanted to help. With webOS we have shown that the Web platform is fantastic for developers, so we are excited to help make jQuery Mobile as good as it can be.” -Dion Almaer – Palm

At the time, the mobile web was desperately in need of a framework capable of working across all browsers, allowing developers to build truly mobile web applications. jQuery had already changed the way developers were building on the web, making it easier (and faster) to create secure, compliant applications. 

With jQuery Mobile, the project’s goals were to bring the ease-of-use of jQuery to HTML-capable mobile device browsers and to make it easier for developers to build progressively enhanced web applications. Led by Todd Parker of Filament Group, a development studio known for their work on cross platform and accessibility-first applications, jQuery Mobile launched its alpha release in October 2010. 

Alpha features included several components, layouts and theming tools that simplified the process of building a mobile web application. Progressive enhancement and graceful degradation, which were hot (and tricky) topics in web development at the time, featured heavily: jQuery Mobile promised developers and users the best possible experience their platform could handle. Accessibility was another key feature, with Mobile promising a user experience that could be navigated by touch, keyboard, or screen reader via ARIA compatible components. Additional features such as simplicity, file size, and the ability to deploy jQuery Mobile applications through an app store drove further excitement. 

Over the next year, the jQuery Mobile team continued to add compatible platforms and browsers, new components and themes, and eventually a themeroller tool that allowed developers to configure and download themes without writing any CSS. 

The community response was overwhelming – by the time 1.0 was released in November 2011, jQuery Mobile had gathered over 125 contributors, dozens of articles, tutorials and demos, 8 published books, and a gallery of sites, plugins and extensions to welcome and introduce new developers to the project. 

jQuery Mobile continued to make monthly releases throughout 2012 and 2013, regularly adding and improving components, resolving compatibility issues with mobile browsers, and making performance improvements to speed up page rendering times. The development team also continued to prioritize and highlight the importance of responsive web design and accessibility principles with each new release. 

As the number of components and widgets swelled – both those that were officially supported or widely adopted in the community, performance and compatibility issues with mobile platforms, browsers, and jQuery core were also exacerbated. Though the project did have some automated tests, there were still a number of items that needed to be tested manually, which slowed down the development process. 

In mid 2013, Jasper de Groot became the project lead and announced tighter development collaboration between jQuery UI and jQuery Mobile teams, sharing goals, roadmaps and code in order to ease the workload for both groups. The team continued to provide maintenance releases and support, but progress continued to slow under the burden of testing and supporting such a large community. 

Alex Schmitz took over the lead in July 2014, but by that time the size of the project, combined with the pace and availability of new mobile browser features, made finding a viable path forward for the project increasingly difficult. 

The latest stable version was released October 2014. Alex and team made a big push to update jQuery Mobile again in 2017 with the release of an alpha version of 1.5; this version would see compatibility with jQuery 3.0 and npm support among other things.

jQuery Mobile became an OpenJS Foundation Emeritus project in 2018, signifying that the goals of the project had been achieved.

jQuery modernization initiative

The deprecation of jQuery mobile follows the careful transition of another project under the jQuery project umbrella, jQuery UI.

jQuery Core is still actively maintained and widely implemented. As part of its modernization initiative, the team also has been making a series of updates this year to its infrastructure, including migrating and improving its CDN.

Celebrating jQuery Mobile Maintainers and Contributors

The contributions to jQuery Mobile opened up opportunities for people and organizations around the world, and we are thankful for all the contributions over the years. We would like to give an extra shout out of gratitude to the past maintainers of jQuery Mobile: Alexander Schmitz, Jasper de Groot, and Todd Parker.

Node.js Certifications update: Node.js 10 to Node.js 14

By Blog, Certification, Node.js, Project Updates, Training

The OpenJS Node.js Application Developer (JSNAD) and the OpenJS Node.js Services Developer (JSNSD) Exams (Node.js Certifications) will be updated from Node.js version 10, which is now in maintenance, to Node.js version 14, which is the most current LTS (Long Term Support) line. Changes will come into effect November 3, 2020. All tests taking place after 8:00 pm PT on June 16, 2020 will be based on Node.js version 14.

 The updated exam will include the ability to use either native EcmaScript modules or CommonJS modules to answer questions, with CommonJS remaining the default and EcmaScript modules as an opt-in.

For example a given task on the examination may provide a folder containing an answer.js file and a package.json file. The package.json file does not contain a type field, as is the case when generating a package.json file with npm init. By default, the answer.js file is therefore considered a CommonJS module. So loading a module would be achieved like so:

const fs = require('fs')

To opt-in to native EcmaScript modules, candidates may either set the type field of the package.json file to module or may rename the answer.js file to answer.mjs. In either of those cases a module would be loaded like so:

import fs from 'fs'

Candidates may also explicitly opt-in to CommonJS by setting the type field to commonjs or by renaming the answer.js to answer.cjs but this is unnecessary as the absence of a type field means the answer.js file is interpreted as CommonJS anyway.

This opt-in approach for EcmaScript modules is in keeping with Node’s module determination algorithm, see https://nodejs.org/docs/latest-v14.x/api/packages.html#packages_determining_module_system. Industry standards and best practices will be tracked over the next year and EcmaScript modules may become the default in future updates.

The JSNSD exam has also been updated to become more web-framework friendly, the npm start field is now the essential entry-point for determining how a web server is started. This allows for frameworks with their own initialization CLIs to be used more easily than before, for example see https://www.fastify.io/docs/latest/Getting-Started/#run-your-server-from-cli.

While there are no changes to the current set of Domains and Competencies for the JSNSAD and JSNAD Exams, candidates are advised to review functionality of libraries or frameworks on Node.js version 14. For a full list of differences between Node.js version 10 and Node.js version 14 see https://nodejs.medium.com/node-js-version-14-available-now-8170d384567e.

To help prepare for the Node.js Certification exams, the Linux Foundation offers training courses for both the Applications and Services exams. The training courses were authored by David Clements, a principal architect, public speaker, author of the Node Cookbook, and open source creator specializing in Node.js and browser JavaScript.

These exams are evergreen and soon after a Node.js version becomes the only LTS line the certifications are updated to stay in lockstep with that LTS version. Now that Node.js version 10 has moved into maintenance, certifications will be based on Node.js version 14.

The OpenJS Node.js Certification program was developed in partnership with NearForm and NodeSource. The certifications are a good way to showcase your abilities in the job market and allow companies to find top talent.

OpenJS Foundation AMA: AMP Project TSC

By AMA, AMP, Blog, Project Updates

AMP Project joined the OpenJS Foundation this past summer as a Growth project, aiming to create a more “user-first” open web experience for all. In this AMA, users were able to ask questions via Twitter (#AskAMP) and live YouTube chat. This AMA followed AMP Fest, which can be viewed here. AMP Fest focuses on content where participants could “learn about the latest ways the community is working to make the web better for everyone – publishers, platforms, advertisers, creators, and of course, users.”

Moderated by Naina Raisinghani, the AMA was a way to learn more about the project with David Strauss, Chris Papazian, Dima Voytenko, Malte Ubl, Saulo Santos, Kasiana McLenaghan, and Rudy Galfi.

Questions ranged from what project individuals were most excited about to whether there should be ramifications or praise for net neutrality or the lack thereof. The talk took a mix of inquiries from chat and preset questions. 

The full AMA is available here: OpenJS Foundation AMA – AMP Project

Timestamps

0:00 Brief Introduction

1:09 Introduction

4:42 AMP Fest Recap

6:10 AMP Projects You’re Excited About?

9:50 Can TSC Share What Platforms Support AMP?

11:47 What Is The Most Critical Part of Stories?

15:25 What’s One Use Case For AMP In Email? 

19:20 Does the TSC Have Any Thoughts On NYT Content Application Framework Proposal? 

25:20 What Improvements Does The TSC Want To Make In The New Year?

31:35 Will Websites Need AMP and HTML To Get Picked Up By Publishing Platforms?

40:20 More Approachable Architectural Options For HTML Conversion On High Volume Sites

43:58 Do You See The Project Working On Components Or User-Built Components 

48:44 Should Publishers or Companies Be Encouraged or Penalized For Prioritizing Websites?

50:45 Are There Any Updates On AMP Runtime Giving a PWA For Navigating Amongst AMP Pages. Any Update?

52:00 Any Chance That People Will Be Able to Embed>React>AMP as Opposed to Embed>AMP>React?

56:00 Closing Thoughts

Node.js v15.0.0 is here!

By Announcement, Blog, Node.js, Project Updates

This week, Node.js, an Impact project at the OpenJS Foundation, shipped Node.js v15, a major release for the JavaScript server-side runtime.

The new release includes:

  • Abort Controller
  • N-API Version 7
  • npm 7
  • Throw on unhandled rejections
  • QUIC (experimental)
  • V8 8.6

Additional project news includes

  • Completion of the Node.js Contributors Survey to gather feedback on the contribution process to determine target areas for improvement.
  • big improvements to Node.js automation and tooling including the ability to kick off CI runs and land commits just by adding a GitHub label, making it easier for collaborators to manage the constant flow of Pull Requests.
  • The beginning of Next 10 Years of Node.js effort. The goal of this effort is to reflect on what led to success in the first 10 years of Node.js and set the direction for success in the next 10. One of the outcomes so far is that we’ve created a Technical Values document to guide our efforts.

To read more about Node.js v15, please read the blog here written by Bethany Griggs and the Node.js TSC.

OpenJS World Day One Highlights

By Announcement, Blog, Event, OpenJS World, Project Updates

Today was the first day of OpenJS World, the OpenJS Foundation’s virtual, global event bringing together the JavaScript and web development community. Today was filled with incredible talks and keynotes and while a little different than what we are used to, it offered us all a chance to learn and grow, virtually. We are thrilled to have gathered viewers from across the globe to our event and we hope you enjoyed Day One as much as we did! For those who did not get to attend today’s event, there’s still time to register for Day Two, and replays will be available in both the event platform and on YouTube next week.

Keynotes

Day one kicked off with Robin Ginn, OpenJS Foundation Executive Director welcoming everyone and going over a brief JavaScript History as well as an overview of our Foundation. We also heard from Anil Dash, CEO of Glitch, on tech and inclusivity. He asked some great questions of our community on biases built within tech due to a lack of diversity from those doing the building.

Other keynote speakers included 

  • Cassidy Williams, Principal Developer Experience Engineer, Netlify who gave her keynote on, “Learning By Teaching for Your Community”
  • Prosper Otemuyiwa, Co-founder & CTO, Eden who talked about “Media Performance at Scale.”
  • Keeley Hammond, Senior Software Engineer, InVision, who spoke about Electron’s journey as an OpenJS Foundation hosted project. 
  • Malte Ubl, Principal Engineer, Google, spoke about the AMP project
  • Dr. Joy Rankin, Research Lead at the AI Now Institute and Research Scholar at New York University, sat down with Kris Borchers to discuss “How (not) to Save the World with Tech”

OpenJS World Project News

We are thrilled to share that both AMP and Electron have graduated from the incubation program!

AMP Project Graduates Incubation Program

Today, during OpenJS World keynotes, Malte Ubl, Principal Engineer at Google, the creator of AMP, and a member of the AMP Project’s Technical Steering Committee, announced the AMP Project has graduated from the Foundation’s incubation program. AMP entered incubation in October of 2019 and during this time, the collaboration between the project and the Foundation has been very beneficial. Graduating from the OpenJS Foundation Incubation program signals more opportunities for growth and diversity for the open source AMP project and its developers. In becoming a full-fledged OpenJS Foundation project, AMP can better deliver on its vision of delivering  “A strong, user-first open web forever.” 

Electron Project Graduates Incubation Program

Today at OpenJS World, Keeley Hammond, Senior Software Engineer at InVision, and a member of the Electron governance team, took the keynote stage and let the world know that Electron has successfully graduated from the Foundation’s incubation program and is now an Impact Project. Electron entered incubation in December of 2019, at the last OpenJS Foundation global conference in Montreal. This is an important step as it shows real growth, maturity, and stability for the popular web framework, which is used for building desktop apps across multiple platforms. 

Sessions 

Today we featured more than 30 breakout sessions across a variety of topics from AI to application development and project-specific talks. A replay of each of these talks is available within the OpenJS World event platform. You will need to register for the event or login to the platform to access these sessions. To find the replay, navigate to the home page, click into the topic area, and find the talks on demand. We are also posting on the OpenJS YouTube on Monday June 29, 2020.

Engaging Virtually Through Fun and Games

We’ve created a few opportunities for fun during these two days. Attendees can create a virtual badge, collect badges for sessions attended, and even earn points for cool OpenJS SWAG! We also held a scavenger hunt today where attendees had to search through sponsor’s booths and find birthday related items, in honor on JavaScript’s 25th Anniversary! Participants who collected all birthday party items will be entered into a drawing for a DJI Tello drone, provided by IBM’s Call for Code team! Learn more in the Fun and Games section on the event platform.

OpenJS World Day Two, and Collab Summit

We are just getting started this week! Please join us tomorrow as we kick off our keynote sessions with Christina Koch, NASA Astronaut! Tomorrow will be another fantastic day, a trend to continue into the OpenJS Collab Summit on Thursday (Project Day) and Friday (Cross-Project Day).

Thanks

Finally, and certainly not least of all, we send our sincerest THANK YOU to our sponsors who have made this event possible. This year has been challenging for so many and having sponsors come through and support this event is extremely appreciated. 

Thanks to Diamond Sponsor IBM, Gold Sponsors Cloud Native Computing Foundation and Google, Silver Sponsors Red Hat/OpenShift and SoftwareAG, Bronze Sponsors Heroku, Profound Logic, Sentry and White Source.

Project News: WebdriverIO ships v6

By Announcement, Blog, Project Updates, WebdriverIO

Kudos to the WebdriverIO team for their recent v 6 release. Webdriver, a hosted project at the OpenJS Foundation, is a Next-gen browser automation test framework for Node.js

Big updates include:

Drop Node v8 Support
WebDriver has dropped support for Node v8, which was deprecated by the Node.js team at the start of 2020. It is not recommended to run any systems using that version anymore. It is strongly advised to switch to Node v12 which will be supported until April 2022.

Automation Protocol is now Default
Because of the great success of automation tools like Puppeteer and Cypress.io it became obvious that the WebDriver protocol in its current shape and form doesn’t meet the requirements of today’s developer and automation engineers. Members of the WebdriverIO project are part of the W3C Working Group that defines the WebDriver specification and they work together with browser vendors on solutions to improve the current state of the art. Thanks to folks from Microsoft there already proposals about a new bidirectional connection similar to other automation protocols like Chrome Devtools.

Performance Improvements
A big goal with the new release was to make WebdriverIO more performant and faster. Running tests on Puppeteer can already speed up local execution. Additionally, v6 has replaced the heavy dependency to request which has been fully depreciated as of February 11th 2020. With that, the bundle size of the webdriver and webdriverio package has been decreased by 4x.

These are only a few things that the v6 release brings. Read the full blog on the WebdriverIO site