Skip to main content
Category

Blog

Jest Project Moves to OpenJS Foundation with Meta Open Source Contribution

By Announcement, Blog, Jest

The OpenJS Foundation is announcing that popular JavaScript testing framework Jest is joining as an Impact Project! Jest and its assets are being donated proudly by Meta Open Source.

Jest is a JavaScript testing framework. It allows you to write tests with an API with little configuration. As the Jest team likes to say, Jest makes testing “delightful.”

Jest currently has over 17 million weekly downloads and 38,000+ GitHub stars, making it the most used testing framework in the JavaScript ecosystem. It consistently ranks as one of the JavaScript libraries with the highest satisfaction, and is used by companies of all sizes including Amazon, Google, Meta, Microsoft, and Stripe. Jest 28 was just released.

“We are excited to welcome Jest into the OpenJS Foundation. Building a community requires dedicated people and great technology, which Jest has been doing since 2011. Jest is used commonly in enterprise production environments and open source projects and will benefit from a reliable structure for open governance and legal support,” said Robin Ginn, OpenJS Foundation executive director. “As the vendor-neutral home to almost 40 open source projects, Jest already fits in well with our ecosystem of projects. We look forward to providing resources and support to Jest to help their community to grow.”

“Jest has been working to follow the OpenJS Foundation principles around operating transparently, openly, and collaboratively. Joining the OpenJS Foundation allows our team to make greater investments to grow contributors and impact,” said Rick Hanlon, Front End Engineer on React Core at Meta and Jest Core Contributor. “This is a big step forward for Jest. I want to thank the sponsors and contributors who have helped get us this far and who will continue to play an important role in Jest’s next stage.”

“We have been a community-led project for quite some time. We believe in community-led development, and continually strengthening our community, and joining the OpenJS Foundation will help us strengthen and broaden our community,” said Simen Bekkhus, developer at Folio and Jest lead maintainer. “I see this as a very positive change and a way for the Jest community to flourish.”

“Big thanks to Meta Open Source. JavaScript developers worldwide will benefit from having Jest be part of the OpenJS Foundation. This move strengthens the JavaScript ecosystem and will help the Jest developer community to continue to grow,” said Joe Sepi, OpenJS Foundation Cross Project Council chairperson and Open Tech Program Director at IBM. “Congratulations to the whole Jest team and community.”

“By moving to the OpenJS Foundation, we are becoming more open and welcoming to first-time community members and contributors. Open governance is key to the next step in our evolution as a community,” said Christian Bromann, OpenJS Foundation Cross Project Council Member representing the WebdriverIO project and Founding Engineer, Stateful, Inc. “I personally have learned you can earn a living by following your passion in life. We are making Jest a more inclusive community because we believe this is the best way to build a strong, vibrant community that will allow you to follow your passion.”

Just like all OpenJS projects, Jest is entering the foundation as an incubating project while they complete the on-boarding checklist process. Projects in this phase can be designated as an At-Large or Impact Stage project.

There are four different types of projects hosted by the OpenJS Foundation: Impact projects are generally large, mature projects. At-Large projects are new, stable projects with minimal needs. Incubation projects are in the process of joining the OpenJS Foundation. And Emeritus projects have completed their lifecycle and are retired. In addition, the CPC oversees an Incubation process for projects which seek to be hosted by the OpenJS Foundation.

To find out how your project can join the OpenJS Foundation see: https://openjsf.org/projects/ 

Jest Resources

OpenJS Resources

Click here to learn more about how you could be a part of the OpenJS Foundation, and view these additional resources:

About OpenJS Foundation

The OpenJS Foundation is committed to supporting the healthy growth of the JavaScript ecosystem and web technologies by providing a neutral organization to host and sustain projects and collaboratively fund activities for the benefit of the community at large. The OpenJS Foundation is currently home to 39 open source JavaScript projects, including Appium, Dojo, Electron, jQuery, Node.js, and webpack. It is supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, Microsoft, and Netflix. These members recognize the interconnected nature of the JavaScript ecosystem and the importance of providing a central home for projects which represent significant shared value. 

About Linux Foundation

Founded in 2000, the Linux Foundation is supported by more than 1000 members and is the world’s leading home for collaboration on open source software, open standards, and open hardware. Linux Foundation projects like Linux, Kubernetes, Node.js, and more are considered critical to developing the world’s most important infrastructure. Its development methodology leverages established best practices and addresses the needs of contributors, users, and solution providers to create sustainable models for open collaboration. For more information, please visit their website.

About Meta Open Source

Jest is one of over 800 active projects from Meta within the worldwide open source community. Meta has long been a supporter of open source software and the open source community. In addition to making a lot of its engineering work publicly available including sharing research, code, designs, and engineering work, Meta also invest in organizations that are important for the long-term sustainability of the open source ecosystem. To learn more about Meta’s open source efforts, please visit Meta Open Source

Using AbortSignal in Node.js

By Blog, Node.js, tutorial

By: James Snell, originally published on Nearform July 22, 2021

Foreword by: David Mark Clements

Dave Clements is an open source advocate and is the tech lead and primary author of OpenJS Foundation Node.js training and certification programs. And a big thank you to Nearform and James Snell for allowing the OpenJS Foundation to repost this article.

Foreword

The OpenJS Node Application Developer certification is an evergreen program that stays up to date
with advancements in the JavaScript specification, Node.js core, industry trends, and best practices
not only to ensure that the examination and training stay relevant but also to help disseminate
important information for the Node & JavaScript community.

With that in mind, the following article by James Snell is republished with permission from
James and NearForm where the article was first published. We strongly recommend anyone thinking
of taking the JSNAD certification read this article and consider the implications. We hope you
enjoy it!

The AbortController and AbortSignal APIs are quickly becoming the standard mechanism for canceling asynchronous operations in the Node.js core API.

If you search how to use the Promise.race() API, you’ll come across quite a few variations of the following:

The intent here is straightforward: Start a potentially long-running task but trigger a timeout if that task takes too long to complete. This is generally a good idea, but there are quite a few problems with this common example.

First, although the promise returned by Promise.race() will be fulfilled as soon as the first of the given promises is settled, the other promises are not cancelled and will keep on running. Although the timeout timer did fire, the long-running task is never actually interrupted and stopped.

Second, what happens to the timeout promise if the long-running task completes before the timeout is triggered? The answer is simple: The timer keeps running, and the promise will end up rejecting, still with an unhandled rejection — unnecessarily risking performance issues and possible memory leaks in your application.

To correctly handle this pattern, we need a reliable mechanism for signalling across the two promises, canceling either the timer or the long-running task as appropriate and ensuring that once the timeout is triggered all resources are cleaned up as quickly as possible. Fortunately, Web Platform APIs provide a standard mechanism for this kind of signalling — the AbortController and AbortSignal APIs.

In Node.js, a better way if implementing a Promise.race-based timeout would be:

As with the previous example, two promises are created. However, when each completes, it uses the AbortController and AbortSignal APIs to explicitly signal to the other that it should stop. As long as the code in those is written to support the AbortSignal API, everything just works.

For instance, in the example we make use of the recently added awaitable timers API in Node.js. These are variants of the setTimeout() and setInterval() that return promises.

The awaitable timer API supports the ability to pass in an AbortSignal instance. When the AbortSignal is triggered, the timer is cleared and the promise immediately rejects with an AbortError.

Support for AbortController and AbortSignal is being rolled out across the Node.js core API and can now be found in most of the major subsystems. Before we explore where the API can be used, let’s find out a bit more about the API itself.

All about AbortController and AbortSignal

The AbortController interface is simple. It exposes just two important things — a signal property whose value is an AbortSignal and an abort() method that triggers that AbortSignal.

The AbortSignal itself is really nothing more than an EventTarget with a single type of event that it emits — the ‘abort’ event. One additional boolean aborted property is true if the AbortSignal has already been triggered:

The AbortSignal can only be triggered once.

Notice that when I added the event listener in the example above, I included the { once: true } option. This ensures that the event listener is removed from the AbortSignal as soon as the abort event is triggered, preventing a possible memory leak.

Note that it’s even possible to pass an AbortSignal onto the addEventListener() itself, causing the event listener to be removed if that AbortSignal is triggered.

This starts to get a bit complicated too, but it’s important for preventing memory leaks when coordinating the cancellation of multiple complex tasks. We’ll see an example of how this all comes together next.

Implementing API support for AbortSignal

The AbortController API is used to signal that an operation should be cancelled. The AbortSignal API is used to receive notification of those signals. They always come in pairs.

The idiomatic way of enabling a function (like the someLongRunningTask() function in our examples above) to support this pattern is to pass a reference to the AbortSignal in as part of an options object:

Within this function, you should immediately check to see if the signal has already been triggered and, if it has, immediately abort the operation.

Next, it’s important to set up the handling of the ‘abort’ event before starting to process the task:

Notice here that we are creating an additional AbortController instance whose signal is passed in with the event listener. After we’ve completed the asynchronous task, we trigger that AbortController to let the AbortSignal know that the event handler can be removed. We want to make sure that the listener is cleaned up even if the async task fails, so we wrap the call to taskDone.abort() in a finally block.

It is also important to check if the signal has been triggered between various async tasks the method may be performing. This is important to catch cases where the event may not yet have had an opportunity to be emitted but the operation should still be interrupted.

Using AbortController and AbortSignal

The AbortController and AbortSignal APIs are quickly becoming the standard mechanism for canceling asynchronous operations in the Node.js core API.
For example, as of node.js 15.3.0, it is possible to cancel an HTTP request using the API:

Consult the Node.js documentation for more details on exactly which APIs support AbortSignal. More are being added all the time and support may vary across different Node.js major versions.

Node.js Framework LoopBack Graduates to At-Large Project at OpenJS Foundation

By Blog, Project Update

LoopBack fans will be happy to hear that the project has graduated from the Incubation stage at OpenJS Foundation! 

LoopBack is a popular Node.js framework for API creation and a platform to build large-scale Node.js applications. It uses proven patterns with TypeScript and gives support for SOAP and enterprise databases. It is a flexible developer-centric middleware that is being used in industries such as finance and insurance. 

Graduating is an important milestone that helps solidify LoopBack’s position as a vendor-neutral, community-driven open-source project. In June 2021, StrongLoop, an IBM company, contributed LoopBack to the OpenJS Foundation with the goal of growing the community’s active core of developers. Graduating to At-Large stage is a major step forward! They now have maintainers and Technical Steering Committee (TSC) members from different organizations worldwide. 

“We’re thrilled to have LoopBack as part of the OpenJS Foundation family of JavaScript projects. LoopBack is a great example of how open source communities flourish over time with open governance and sustained structural support,” said Robin Ginn, OpenJS Foundation executive director. “Congratulations to all the LoopBack contributors.”

LoopBack is one of 40 projects officially hosted under the OpenJS umbrella–joining platinum members Google, IBM, Joyent, and Microsoft.

“We’re excited that LoopBack has graduated from incubation and is officially joining the OpenJS Foundation’s hosted projects. Over the years, we’ve been moving towards a more open governance model–from actively recruiting maintainers outside of IBM to establishing a Technical Steering Committee made up of maintainers from different professional backgrounds. So joining the OpenJS Foundation is definitely a major milestone for LoopBack,” said Diana Lau, a maintainer and TSC member who has worked on the project since it was with IBM and is currently the senior development manager for API Connect Cloud at IBM.

Lead maintainer and TSC member Rifa Achrinza commented, “I’ve been heartened by the many contributions and support driven by the LoopBack community through channels such as GitHub and our ever-growing Slack channels. This steady community growth shows an increasing desire for a stable framework like LoopBack in the Node.js ecosystem.”

The project has also been working to develop open governance in line with OpenJS Foundation standards and with LoopBack’s new distributed maintenance model.
Project TSC member and maintainer Raymond Feng added, “The project has become much more community-driven under the OpenJS Foundation. I’m very happy to see LoopBack graduating from the incubation. It’s a great validation that LoopBack can be further maintained and developed by the community with a diverse pool of maintainers and contributors.” Raymond Feng was a co-creator of LoopBack and is currently Co-Founder and CTO of Abridged, Inc.

OpenJS Foundation’s Node.js CPC chairperson and voting member Joe Sepi Crane-Messina commented, “I joined IBM through StrongLoop and spent years working on and advocating for LoopBack. I couldn’t be happier to see it move into the foundation where it can grow and flourish.”

Recent LoopBack activity stats show that adoption in the community is growing. LoopBack has reached 4.1k GitHub stars and close to 216,000 npm downloads. Their Slack community has grown over 40% since incubating with the OpenJS Foundation and now has 1300 members. Additionally, LoopBack’s growth has been documented through quite a few user testimonials.

In the fast-paced Node.js ecosystem, the stability of LoopBack and the Juggler ORM has proven invaluable to those who demand a stable, complete solution while benefiting from the flexibility and simplicity of JavaScript.

The project has a few near-term goals. First, they have consolidated their blog and documentation site into the LoopBack website, where they plan to highlight the project’s maintainers and the journey to adopt LoopBack in their day job. In addition, they have planned security-related work including adopting OpenSSF Best Practices, publishing advisories in machine-consumable formats, and enhancing the vulnerability disclosure program. These goals aim to open new ways to interact with the community and strengthen LoopBack’s development focus on security.

This graduation signals a new major milestone for the framework as we continue to support the future of LoopBack in the ever-growing Node.js ecosystem. The OpenJS Foundation is proud to welcome them!

OpenJS in Action: There’s Open Source in Your Credit Card with Neo Financial

By Blog, Case Study, OpenJS In Action

We recently met with Ian Sutherland, engineering lead and Head of Developer Experience at Canadian fintech startup, Neo Financial. Ian has been with Neo Financial from the very beginning and has seen the engineering team grow from 1 employee to over 150 individuals in the last three years. Ian is also a Collaborator on the Node.js project hosted at the OpenJS Foundation. Watch the full interview:

https://youtu.be/pCfM4_jxH0E

What is Neo Financial?

Neo is a financial technology company that is reimagining how Canadians bank. Their first product was a rewards credit card, they later introduced a top rated high-interest savings account and recently launched Neo Invest, the first fully digital, actively managed investment experience. With Neo Invest your portfolio is actively managed by experts and engages a greater range of asset classes and investment strategies than most competitor portfolios.

Developed with JavaScript First

The Neo Financial web banking portal provides seamless mobile-first interactions for users. The backend of the portal is built entirely using JavaScript and Node.js and powers all of the app’s microservices and transaction processing. Ian and the engineering team decided early on that they would use JavaScript for everything they possibly could in developing their product. Ian shared his opinion that “Node.js is the technology of choice for running JavaScript on the server, so from day one, a decision was made that the team would use Node.js.”

Other factors influenced their decision to work with JavaScript and related technologies like Node.js. JavaScript is currently the most widely used programming language, which they felt would make it easier to scale their team of developers quickly. The language also, put simply, works well for them. Their team finds it easy to containerize apps using Node.js. It’s also easy to build serverless functions written in JavaScript running on Node.js, with no compilation step required. It’s fair to say that Node.js provides excellent performance and scalability, keeping their team’s infrastructure costs low. 

Working with Other Open Source Technologies

Using Node.js and JavaScript for local development has worked well for the Neo Financial dev team. Ian shared that they have a swift development experience where a person can change some code and have the project reload instantly. He also cited the npm ecosystem and the “millions” of packages out there as a benefit, helping his team work very productively. They also use TypeScript and Fastify in all of their services, and webpack indirectly through other frameworks.

Open source packages and plugins help speed up their team’s development work. Chances are, someone has already dealt with a similar problem. These packages make it easier to solve whatever the needs are without recreating the wheel.

A Note on Security

As a financial company, security is top of mind for Ian and his team. The Node.js project has also been focusing more on the security of Node.js itself. As a result, the devs at Neo feel very comfortable running it in production.

Contributing to Open Source

On a personal level, Ian has been involved in open source for several years. He started by making smaller contributions and later got involved in the React community. He eventually became a core maintainer of the Create React App and has been working on that project for the last three or four years. Then, about four years ago, he got involved in Node.js itself, primarily as part of a working group called the Tooling Group. The focus of this group is on making Node.js the best tool it can be for building things like CLI tools, or other tools that might run in a CI or build environment, lambdas, etc. 

As a team, the Neo Financial engineers try to do their part. They’ve open sourced developer tools and GitHub actions and try their best to give back wherever they possibly can. In a big thank you to the open source community, Ian said, “We have an awesome community. People are doing development on open source projects for free as volunteers when they contribute lines of code and fixes and documentation.”

We at the OpenJS Foundation feel the same way. We wouldn’t be anywhere without our contributors and our fantastic community. It was a pleasure speaking with Ian, and we’re grateful for his input as an individual and an engineering team leader. 

Node.js 18 Released With Improved Security, Fetch API, and Next-10 Strategic Initiatives

By Blog, Node.js, Project Update

Node.js 18 is available now! It adds multiple key features of enterprise and small- to medium-sized enterprises including increased security support, the Fetch API, and it is part of delivering on the larger Next-10 strategic initiative within Node.js that is pushing forward key priorities including modernizing HTTP and keeping Node.js on the forefront of web development. 

As part of increased security support, Node.js has been announced as the first pilot open source community to be supported by OpenSSF’s Alpha-Omega Project. Alpha-Omega is committing $300k to bolster the Node.js security team and vulnerability remediation efforts through the rest of 2022, with a focus on supporting better open source security standards and practices.

“The Node.js team continues to do fantastic work. The open governance structure for Node.js has led to tangible improvements in security and forward-thinking planning, and the main features of Node.js 18 will be highly valuable to enterprises of all sizes,” said Robin Ginn, OpenJS Foundation executive director. “Whether you’re a new user or already have Node.js broadly implemented, now’s a good time to install and test Node.js 18.”

Following its long-established release schedule, Node.js 18 is a Current release, which means it’s the right time for testing by enterprises, before being suitable for production usage when it is promoted to long-term support (LTS) in October 2022.

“The Node.js project contributors and collaborators continue to do an excellent job, and I want to thank them all. We continue to improve and grow, and I believe Node.js is a real open source success story,” said Bethany Griggs, Node.js Technical Steering Committee member, and Senior Software Engineer at Red Hat. “As always, current releases, like Node.js 18, are the perfect time to test in your own unique development environment. If you’re a Node.js user, please try out Node.js 18 and give us feedback. Your feedback directly contributes to our ability to move new features into stable releases more quickly.” 

For comprehensive information on specific Node.js features, see the Node.js team release announcement written by the Node.js project contributors: LINK

There are three key reasons to evaluate and upgrade to Node.js 18: Security, APIs, Future Planning.

Security

This is the first version that will be later promoted to LTS with OpenSSL 3.0. OpenSSL 3.0 is a major new stable version of the popular and widely used cryptography library. OpenSSL contains an open-source implementation of the SSL and TLS protocols, which provide the ability to secure communications across networks. Among other key features, OpenSSL 3.0 contains a FIPS Module that has been submitted for validation. The Federal Information Processing Standards (FIPS) are a set of requirements enforced by the US government which govern cryptographic usage in the public sector. This is a key step forward in the cryptographic support in Node.js.

The Node.js project follows a well planned security release process, with regular outbound communications and more. In the last year, Node.js has formalized rotations around security. The commitment to take slots in the security release steward rotation is made by companies in order to ensure individuals who act as security stewards have the support and recognition from their employer to be able to prioritize security releases. 

APIs

Node.js 18 is adding even tighter synergy between front-end and back-end APIs. One of the key premises of Node.js is that JavaScript skills can be applied to the back-end. With Node.js 18, Fetch is globally available by default. The Fetch API provides an interface for fetching resources including across networks. It will seem familiar to anyone who has used XMLHttpRequest, but the new API provides a more powerful and flexible feature set.

“Node.js 18 will enable the Fetch API as a default. It’s been available since Node.js 17, but this moves forward Node.js application development, and it’s exciting to be a part of the process of improving Node.js in key fundamental areas,” said Michaël Zasso, Scientific research software engineer and co-founder at Zakodium, member of the Node.js Technical Steering Committee. “I would like to thank multiple team members and contributors, and in particular I would like to thank users who push us and support us. Thank you!”

XMLHttpRequest has been used by web developers enabling ajax and a whole new kind of interactive exposure. However, it has been slowly succeeded by Fetch API. Fetch API is Promise based, providing a cleaner and more concise syntax.

Future Planning

The Next-10 effort has elevated technical priorities which have led to discussions around modernizing http. The purpose of the Next-10 project is to work collaboratively on the strategic directions for the next 10 years of Node.js. Fetch API is one direct result of this process. The full Next-10 repository is available here: https://github.com/nodejs/next-10 

Node.js Training and Certification

The OpenJS Node.js Services Developer (JSNSD) and OpenJS Node.js Application Developer (JSNAD) certifications are available now. Node.js training courses are available to help you prepare for the exams: Node.js Application Development (LFW211) and the Node.js Services Development (LFW212). Discounts are available to members!

OpenJS Resources

Click here to learn more about how you could be a part of the OpenJS Foundation, and view these additional resources:

About OpenJS Foundation

The OpenJS Foundation is committed to supporting the healthy growth of the JavaScript ecosystem and web technologies by providing a neutral organization to host and sustain projects and collaboratively fund activities for the benefit of the community at large. The OpenJS Foundation is currently home to 39 open source JavaScript projects, including Appium, Dojo, Electron, jQuery, Node.js, and webpack. It is supported by 30 corporate and end-user members, including GoDaddy, Google, IBM, Intel, Joyent, Microsoft, and Netflix. These members recognize the interconnected nature of the JavaScript ecosystem and the importance of providing a central home for projects which represent significant shared value. 

About Linux Foundation
Founded in 2000, the Linux Foundation is supported by more than 1000 members and is the world’s leading home for collaboration on open source software, open standards, and open hardware. Linux Foundation projects like Linux, Kubernetes, Node.js, and more are considered critical to developing the world’s most important infrastructure. Its development methodology leverages established best practices and addresses the needs of contributors, users, and solution providers to create sustainable models for open collaboration. For more information, please visit their website.

Open Source Security Foundation (OpenSSF) Selects Node.js as Initial Project to Improve Supply Chain Security

By Announcement, Blog, Node.js, Uncategorized

From: Brian Behlendorf, OpenSSF Foundation, and Robin Bender Ginn, OpenJS Foundation

Today, we’re excited to announce that Node.js is the first open source community to be supported by OpenSSF’s Alpha-Omega Project. Alpha-Omega is committing $300k to bolster the Node.js security team and vulnerability remediation efforts through the rest of 2022, with a focus on supporting better open source security standards and practices.

The open source software project Node.js is everywhere, and people put a lot of trust into the products and services that are built with Node.js, from NASA to Netflix. But many community-led JavaScript projects lack the time, people, and expertise for comprehensive security measures. Few companies that depend on Node.js contribute back to the project. Our hope is this can inspire more organizations that depend upon Node.js to also participate in its security efforts.

This assistance will relieve the pressure on Node.js project maintainers who are strained by market demands for new features while striving for a stable and secure codebase. Specifically, this will bring in security engineering resources from NearForm and Trail of Bits to support the Node.js Technical Steering Committee, help triage reports, steward security releases, improve security broadly for Node.js, and encourage implementing best practices in JavaScript projects across the industry.

Node.js carries a high criticality score for its influence and importance based on parameters established by industry security experts at OpenSSF. Almost 98% of the world’s 1.9 billion websites use JavaScript, the top programming language according to research by RedMonk and GitHub. Node.js – server-side JavaScript – was downloaded over 2 billion times in 2021. It’s pervasive across the industry, used in a significant portion of modern applications.

Both of us (Robin and Brian) are excited about this collaboration and the prospect of setting an example for both the OpenSSF and OpenJS communities.

Spring Forward With 50% Savings on Linux Foundation Training & Certification

By Blog, Training

We know there’s a lot happening in the world right now. To help make at least one thing a little easier, Linux Foundation Training & Certification is offering discounted pricing on all our offerings, including training courses, certification exams, bundles and bootcamps for one week. This offer reflects the best sitewide pricing of the year outside of Cyber Monday!

This is a perfect opportunity to grow your Node.js skills, whether you’re interested in Node.js Application Development (JSNAD) or Node.js Services Development (JSNSD) bundles.

Training bundles, plus certification, and bootcamps are 50% off, and standalone training courses and certification exams are 40% off. This offer ends April 19, and you can learn more here. 92% of hiring managers are struggling to find enough IT talent with skills in open source technologies, so this is your opportunity to kickstart a new career. If you don’t know where to start, take the Linux Foundation career path quiz, explore the IT career roadmap, or check out the new certification curriculum paths. Options include everything from system administration to engineering, cloud, web, blockchain, networking, hardware and many more!

OpenJS World Schedule Now Available

By Blog, OpenJS World

We’re excited to share the full OpenJS World schedule to date. View the daily schedule, including exciting breakout sessions and keynotes. You can also log in or sign up to sync your favorite sessions on your phone or calendar: https://events.linuxfoundation.org/openjs-world/program/schedule/

This year we’re joining cdCON to provide two great open source conferences in one ticket, June 6-10, 2022, in Austin, Texas. Discover, learn, and connect with those working on open source application development and deployment. Learn about the latest JavaScript technologies, check out new continuous delivery approaches and projects, and hear from inspiring tech leaders. 

Our planning committee is still working on scheduling presentations by your favorite open source project leaders at OpenJS. So stay tuned for more to come!

Highlights

Monday, June 6: Node.js training session led by Matteo Collina. NativeScript training with Nathan Walker and Alex Ziskind.

Tuesday, June 7: OpenJS Foundation keynotes, JavaScriptLandia community awards recognition, awesome breakout sessions!

Wednesday, June 8:  More exciting keynote speakers, including Cory Doctorow (@doctorow), Feross Aboukhadijeh (@feross), Brian Behlendorf (@brianbehlendorf), Myles Borins (@MylesBorins), Matteo Collina (@matteocollina), Reginé Gilbert (@reg_inee), Robin Ginn (@rginn206), Felienne Hermans (@felienne), Michael Jennings, Maggie Johnson-Pint (@maggiepint), Michaela Laurencin, and Rachel Nabors (@rachelnabors). 

Plus breakout sessions, yoga, and live band karaoke.

Thursday, June 9 and Friday, June 10: Project + Collab Summits 

Visit the event website to learn more and register today. Early bird pricing ends April 15, 2022!

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.

OpenJS In Action: Betting Your Product’s Developer Experience on Node.js and Open Source

By Blog, OpenJS In Action, Uncategorized

OpenJS recently spoke with Yavor Georgiev, Co-Founder, and Head of Product at Fusebit, to learn more about how his product leverages Node.js and other benefits of the open source ecosystem. Fusebit prides itself on being a “developer-first” focused product that takes the pain out of implementing SaaS integrations. Yavor and one of his co-founders at Fusebit previously had worked at Microsoft specifically on bringing support for Node.js to the Azure Cloud. 

We learned that the Fusebit product team strongly believes in and supports the Node.js ecosystem. The entire Fusebit service is based on a “JavaScript developer experience with Node.js and npm”, which delivers a best-in-class experience for their customers.

Programming Model Based on Node.js

The Fusebit service exposes a programming model based on Node.js, allowing any developer to create an integration. That’s key for a couple of reasons. First, since there’s already a massive community of developers familiar with Node.js and JavaScript, developers don’t have to learn anything new and can use their existing processes and DevOps techniques. Another key benefit to having their model based on Node.js is that due to the size of the npm ecosystem, there’s a module for virtually everything. One of the benefits of open source is that developers don’t have to write and implement everything from scratch. In this case, they can grab a module from npm and speed up their productivity. 

Security

We touched on the issue of security. Two of the co-founders of Fusebit were previously employees at Microsoft and later at Auth0, an identity and access management platform on which Fusebit’s security is based. Were it not for Node.js and companies like Auth0 being invested in securing the open source ecosystem, the Fusebit product itself wouldn’t be where it is today. They also leverage modules from npm where developers constantly update code and patch vulnerabilities.

Stripe for SaaS Integrations

The Fusebit service is like “Stripe for SaaS integrations.” So if you’re a developer working on a SaaS application and you need integrations to third-party SaaS products like Slack or JIRA, Fusebit provides the integrations in a turnkey way. Based on Node.js, there’s an infinite ability to customize solutions. As a result, Fusebit achieves great problem-solution-fits for their customers, unlike some low-code and no-code solutions. Another reason their product is focused on a developer audience is data fidelity is essential when connecting business software to something like Salesforce or other SaaS products. Someone has to have the right technical mindset to create that type of integration.

Open Source Contributions

The Fusebit team is also a proud contributor to open source development. Most of their source code is available on GitHub, so customers can go in and fork features, SaaS connectors, etc., and make them their own. 
We talked about everynode, a new project that Fusebit recently contributed to the open source ecosystem that lets developers run any version of Node.js, including the most recent builds on AWS Lambda. Lambda sometimes doesn’t have the latest versions available. The Fusebit team initially built it internally for integrations that required newer versions of Node.js and needed to run on AWS.

“You know, selfishly, it’s actually better for more developers to be familiar with it instead of keeping it secret. The more people are familiar with aspects of Fusebit that we’ve made open source, the better for us.”

The Fusebit team routinely takes pieces of the Fusebit service and makes them available to the public, whether it’s npm packages, repositories, or other content. The team also contributes by filing issues and contributing fixes to OSS projects and Node.js itself when needed. On making parts of their code public, Yavor commented, “You know, selfishly, it’s actually better for more developers to be familiar with it instead of keeping it secret. The more people are familiar with aspects of Fusebit that we’ve made open source, the better for us.”

JavaScript FTW!

With so many other programming languages out there, Yavor believes JavaScript is still in the lead for many reasons. It’s amazingly versatile, giving devs the ability to build end-to-end solutions. The language itself continues to evolve, and there are some remarkable initiatives around the standardization of the module spec, for example. Now you can write a module and use it pretty much anywhere JavaScript runs, whether it’s Node.js or in a browser. This continuous innovation supports the JavaScript language and the community and encourages people to continue learning JavaScript. 

Fusebit thanks the Node.js community and everybody who’s contributing unpaid hours to make Node.js and the package ecosystem great. According to Yavor, the Node.js community has been a tremendous help to their product. They also give back to our community by hiring folks with Node.js in their skillset. 

We at the OpenJS Foundation appreciate Yavor sharing his thoughts and experience.

Watch the Interview