Skip to main content


Node.js Certifications and Training Sale

By Announcement, Blog, Node.js

Node.js Certifications and Training Sale + New Preview of Testing Environment

Training and certifications are some of the most valuable investments we can make in ourselves, to both sharpen our skills, but also to show prospective employers, and the world, that you have what it takes as a developer. Now is a great time to invest in yourself, or in your engineering team. Starting March 29 through April 9, the OpenJS Foundation, in partnership with the Linux Foundation, will be discounting all Node.js Certification and Training. 

Node.js logo

Limited offer: check out the new preview testing environment
Today, in partnership with the LF,  we are rolling out a free Node.js Environment Preview beta exam, which focuses on our Node.js certifications, the OpenJS Node.js Application Developer (JSNAD) and OpenJS Node.js Services Developer (JSNSD). 

One of the most frequent requests we receive is to preview what the certification exam experience is like before actually sitting for an exam. Whether you get tripped up from text anxiety or low bandwidth, running through this Node.js Environment Preview will make you more familiar with the look and feel of the certification exam experience. This way you will know what to expect so you can focus on your Node.js knowledge.

This Node.js Environment Preview beta is available for a limited time — we have 4,000 free coupons to give away. Try it out and see how you performed on this self-graded environment preview. And don’t pass up this big sale.

Full sale details

Discounts include 

What’s included with certifications?

  • 12 month exam eligibility    
  • Free exam retake
  • Digital badge and PDF certificate upon passing

What’s included in online trainings?

  • Hands-on labs & assignments
  • Video content
  • 12 months of access to online courses
  • Discussion forums
  • Digital badge and PDF certificate upon completion

Node.js Certifications

Certifications are excellent ways to validate your own development skills to yourself, employers, and the world. 

The OpenJS Node.js Application Developer certification is ideal for the Node.js developer with at least two years of experience working with Node.js. For more information and how to enroll:

The OpenJS Node.js Services Developer certification is for the Node.js developer with at least two years of experience creating RESTful servers and services with Node.js. For more information and how to enroll:

Node.js Trainings

Feel confident in taking your exams with the Node.js Training courses. These courses help prepare developers for the Node.js certification exams. 

This course provides core skills for effectively harnessing a broad range of Node.js capabilities at depth, equipping you with rigorous skills and knowledge to build any kind of Node.js application or library. While by design the training content covers everything but HTTP and web frameworks, the crucial fundamentals presented prepares the student to work with web applications along with all types of Node.js applications.

This course provides a deep dive into Node core HTTP clients and servers, web servers, RESTful services and web security essentials. With a major focus on Node.js services and security, this content is an essential counterpart to the Node.js Application Development (LFW211) course, and will prepare you for the OpenJS Node.js Services Developer (JSNSD) exam.

If this sounds like something you’d like to know more about, check out more information at this link

Project Update: Next 10 years of Node.js

By Announcement, Blog, Node.js

Understanding the needs of the Node.js constituencies

This post originally appeared on the Node.js Medium blog.

node.js logo

TLDR; We need your help to make sure the Next 10 years of Node.js are as successful as the first. We are launching a survey, you can take it here to help us do that. To get a bit more context on why this survey is important, read on….

Node.js had a very successful first 10 years of Node.js and the project is working to make the next 10 years even better. As part of that we’ve kicked off the Next-10 effort to document what we think is important for that to happen. You can follow the ongoing work of that team in this repo:

Without a handy crystal ball, it turns out that it’s a lot harder than just diving in and discussing our favorite technologies to see what the keys to success are going to be. Are things like WebAssembly, Typescript, etc. important to the people who use Node.js? I guess we need to better understand/document who uses Node.js first…..

So far the team has spent most of its time laying the foundation on which we hope to base discussions around specific technologies.

We started by documenting our understanding of the project’s technical values as these will help us balance different aspects when necessary: It’s not as simple as X overrides Y but instead highlight what key values need to be factored into decisions. For example, there was consensus that good developer experience has been a key part of the success of Node.js and that it’s important for future success that we maintain that.

Next the team documented the Node.js “Constituencies”. The people/groups who have a stake in the Node.js ecosystem. We captured these in are include:

  • Direct end users
  • Application operators
  • Application Developers
  • Back-end server authors
  • Library/package authors
  • Node.js core maintainers
  • Organizations with investments in Node.js

We also documented what we thought was important to those “constituencies” in

We think we’ve got a good start, but at this point it only reflects the understanding of the small number of Next-10 team members contributing. At this point, we need your help to make sure we’ve got it right and/or update until we do. You can do that by:

Thanks for reading and we hope to get your feedback through the survey or see you get involved in the ongoing work of the Next-10 team. Thanks in advance for your help.

JavaScript in the Age of COVID

By Announcement, Blog, Event

The OpenJS Foundation recently hosted a panel to discuss current JavaScript trends. The panel was moderated by Nick Nisi and featured Chris Aniszczyk, Alex Williams, and Liz Parody

This panel is a follow-up from one held at an OpenJS Foundation event held in Montreal in 2019. How has our view of the future of JavaScript changed? What can we expect in 2021? 

Topics ranged from positive changes to the JavaScript ecosystem in 2020 to the ways in which virtual learning allows for more diversity and inclusion at conferences. 

With moves such as the release of Node.js 14, a resurgence in web component development, and continued work on TypeScript, the JavaScript community clearly continued to iterate and develop during the COVID-19 pandemic. 

There are some notable bright spots due to the pandemic. Because of the shift to virtual conferencing, users from all over the globe are now able to take advantage of industry seminars and workshops in ways that previously were not financially or geographically appropriate. 

And, the panel also covered how the JavaScript community continues to make efforts to create a more inclusive environment for underrepresented members, as well. 

The full AMA is available here: JavaScript Trends Panel


0:00 Brief Introduction

1:45 Moderator Introduction

2:45 Positive JavaScript Changes In the Last Year

5:00 Microsoft’s Influence 

6:40 Other Positive 2020 Notes

9:38 Security in the JavaScript Community

12:30 Security in the World 

15:15 Supply Chain Attacks

15:42 Are Custom Elements the Future?

16:40 Diversity and Inclusion

24:00 Inclusion for Conferences

26:00 Low or No Code

32:20 JamStack

38:15 JamStack vs WordPress

40:45 JavaScript Remains a Leader

45:08 JavaScript Performance Issues As a Writing Tool

49:55 Deno as a Node Competitor 

52:38 Anticipating 2021

57:00 Wrap-Up

58:05 Wrap-Up

Project Update: jQuery 3.6.0 Released!

By Announcement, Blog, jQuery, Project Update

Congrats to the jQuery team on their most recent release, version 3.6.0! jQuery is an Impact Project at the OpenJS Foundation.

The new release includes bug fixes and other improvements including:

Thank you to all of you who participated in this release by submitting patches, reporting bugs, or testing, including Dallas FraserMichal Golebiowski-OwczarekWonseop KimWonhyoung ParkBeatriz RezenerNatalia Sroka, and the whole team.

To read more about the new version and to download, visit the project’s blog.

OpenJS World: 2021 change and 2022 dates

By Announcement, Blog, Event, OpenJS World

OpenJS World: New dates for 2021 and Dates announced for 2022

OpenJS World, the OpenJS Foundation’s annual, global event, will now be taking place on Wednesday, June 2, 2021. With so many virtual events, we know that Zoom fatigue is real. A wonderful community event, JS Nation, is now taking place on our original date. We had the flexibility to help alleviate the fatigue and to spare the community from this good problem of having so much great content from which to choose – so we are moving our event up. 

Text "OpenJS World 2021 Virtual Experience, June 2, 2021" over geometric lines.

OpenJS World 2021 will continue to take place as a free, virtual experience, and with keynotes premiering from the OpenJS Foundation YouTube Channel and sessions to be published immediately after. This format will allow for an on demand, “Netflix style” experience with a specific premier time and flexibility for international audience viewing, as well as more discussion opportunities with speakers. The event will also feature additional engagement opportunities, such as Slack chats and live workshops, mixed throughout. 

In addition, we are so excited to announce that OpenJS World is coming back, in person, for 2022!

Save the date for June 6-8, 2022 in Austin, TX. Get ready for great content, delicious BBQ, and a honkey tonk good time as we can’t wait to welcome our communities back in person, while keeping our global reach with more virtual connections. 

Q & A with Sara Chipps, CPC Director and newest OpenJS Board Member

By Announcement, Blog

Sara Chipps, the newest  OpenJS Foundation board member, took some time to give the OpenJS Foundation some valuable insights into her new role on the board. Sara Chipps is a JavaScript developer based in NYC. She has been working on Software and the Open Source Community since 2001. She is the cofounder of Jewelbots, a company dedicated towards drastically changing the number of girls entering STEM fields through play, and Girl Develop It, a non-profit that has taught over 100,000 adult women how to code. By day she’s the Director of Product, Community at Stack Overflow and works there to empower millions of coders to build and ship.

Q) Why is it important for the CPC to have a voice on the board of directors, in your opinion?

A lot of the work on the CPC is in service of the OpenJS projects. We work to make sure the individual projects have the resources and representation they need. The CPC having a voice on the board of directors means that the projects have a direct line to the people at the highest decision-making levels and that means as an organization we can provide effective governance. 

Q) What do you plan to focus on as a Foundation BoD member?   

I plan to focus on learning and listening from and to both the board and project organizations initially. As a person and a software developer, my focus is always on developer happiness, open ecosystems, representation, and inclusion. I imagine those things will reflect when I bring them to the board and I hope that I can be a positive voice.  

Q) What you hope your impact will be in this role?

I hope to continue the foundation’s work of sustainability in the open source JavaScript community. I hope I can bring the perspective of a long-time community member who cares deeply about representation and the ability to level up in open source development. 

Q) What advice would you offer others wanting to get involved with the Foundation?  

Join us! We have many open meetings throughout the week, you can just show up and listen. You don’t even need to do anything or have an opinion until you are inspired. People do it all the time and it’s great. 

Ajv Version 7, Big changes and improvements

By Announcement, Blog, Project Update

The following post was written by Evgeny Poberezkin, lead maintainer of Ajv (incubation project of the OpenJS Foundation). 

It’s been over a month since Ajv version 7 was released, and in this time many users have migrated to the new version. Ajv v7 is a complete rewrite that both changed the language to TypeScript and also changed the library design. I’m happy to share that it has been relatively smooth, without any major issues.

What’s new

I’ve written previously about what has changed in version 7, to summarize:

1. Support of the JSON Schema draft 2019-09 – users have been asking specifically for `unevaluatedProperties` keyword, which adds flexibility to the valuation scenarios, even if at a performance cost.

2. More secure code generation in case untrusted schemas are used. Execution of code that might be embedded in untrusted schemas is now prevented by design, on a compiler type system level (and you don’t need to use TypeScript to benefit from it, unless you are defining your own keywords).

3. Standalone validation code generation is now comprehensively supported, for all schemas.

4. Strict mode protecting users from common mistakes when writing JSON Schemas.

That is a big list of improvements that was possible thanks to Mozilla’s MOSS program grant.

Better for community

I’m also excited to share that Ajv v7  has grown contribution interest from its users, with some cases when independent users are interested to collaborate between them on some new features.

There are several reasons for that, I believe:

– the code is better organised and written on a higher level – it is easier to read and to change than before.

– documentation is now better structured with additional sections specifically for contributors – code components and code generation.

I am really looking forward to all the new ideas and features coming from Ajv users.

What’s changed and removed

These improvements came at a cost of a full library redesign, that requires being aware of these changes during migration:

– Importing from your code

– Installation

– Code generation performance

– Validation of JSON Schema formats

– Migrating from JSON Schema draft 4

Below these changes are covered in detail – they were causing migration difficulties to some users.

Importing Ajv from your code

To import Ajv in typescript you can still use default import:

 import Ajv from "ajv"
 const ajv = new Ajv()

But to import in JavaScript you now need to use `default` property of the exported object:

 const Ajv = require("ajv").default
 // or const {default: Ajv} = require("ajv")
 const ajv = new Ajv()

And if you use JavaScript modules you need to import Ajv this way:

 // from .mjs file
 import Ajv from "ajv"
 const ajv = new Ajv.default()

This is a compromise approach that leads to a bit simpler compiled JavaScript code size of Ajv, and, what is more important, allows to export additional things alongside Ajv and does not force dependencies to use `esModuleInterop` setting of TypeScript. Possibly, there is a better way to export Ajv – please share any ideas to this issue.

Ajv installation

Several users, in particular those who use `yarn` rather than `npm`, had issues related to version conflicts between old and new versions. Because Ajv is a dependency of many JavaScript tools, the users can have both version 6 and version 7 installed at the same time.

When version 6 was released 2 years ago there were a lot of version conflicts. Since then npm seems to have improved – it handles multiple versions correctly when performing a clean installation – at least I have not seen any example that shows version conflicts in this scenario. But when performing incremental installations version conflicts still happened to a few users.

This situation should resolve itself as dependencies migrate, and in all cases clean installation resolved the problem.

Code generation performance

Validation code that Ajv v7 generates is at least as efficient as code generated by v6, and in many cases it is faster – version 7 introduced several tree optimisations and other improvements for it. The primary objective to re-design code generation was to improve its security when using untrusted schemas and to make the code more maintainable.

As a side effect, it also led to the reduction of Ajv bundle size.

The downside that may be affecting some users though is that the code generation itself is 4-5 times slower.

For most users it won’t have an impact on the application performance, as schema compilation should only happen once, when the application is started, or when the schema is used for the first time. But there are several scenarios when it can be important:

1. When using schemas in short lived environments when validation is performed only once or few times per compilation – it may include serverless environments, short-lived web pages, etc. In this case you should explore the possibility of using the standalone validation code to compile all your schemas at build time. Ajv v7 improved the stability of generating standalone validation code and it is now supported for all schemas.

2. When a schema is generated dynamically for each validation (or to perform a small number of validations). There is no solution for such scenarios – Ajv (and any other validator that compiles schemas to code) is simply not a good fit for such scenarios, if the performance is critical. The main advantage of schema compilation is that the produced validation code is much faster than it would have been to interpret the schema. But if the schema is dynamic, then there is no benefit to the compilation – a validator that interprets the schema in the process of validation could be a better fit. While it may be 50-100 times slower to validate, it may still be faster than compiling schema to code. You need to run your own benchmarks and decide what is better for your application.

3. When you used Ajv incorrectly and compiled schema for each validation. The correct usage is either to use the same Ajv instance to manage both schemas and compiled validation functions, or to manage (cache) them in your application code. In Ajv v7 this incorrect usage is more likely to be noticeable both because of slower compilation speed and also because Ajv caches the functions using schema itself as a key and not it’s serialised presentation.

To summarize, if you use Ajv correctly, as it is intended, it will be both safer and faster, but if you use(d) it incorrectly it may become slower.

Caching compiled schemas

Ajv compiles schemas to validation code that is very fast, but the compilation itself is costly, so it is important to reuse compiled validation functions.

There are 2 possible approaches:

1. Compile schemas either at start time or on demand, lazily, and manage how validation functions are re-used in your application code:

 const schema = require("mu_schema.json")
 const validate = ajv.compile(schema)
 // ...
 // in this case schema compilation happens
 // when app is started, before any request is processed
 async function processRequest(req) {
   if (!validate(req.body)) throw Error("bad request")
   // ...

It is important that `ajv.compile` is used outside of any API endpoints, as otherwise ajv may recompile the schema every time it is used (depending whether you pass the same schema reference or not).

2. Add all schemas to Ajv instance, using it as a cache of compiled validation functions, later retrieve them using either the schema `$id` attribute from the schema or the key passed to `addSchema` method.

File `./my_schema.json`:

   "$id": "",
   "type": "object",
   "properties": {
     "foo": {
       "type": "string"


 const schema = require("./my_schema.json")
 ajv.addSchema(schema, "my_schema")
 // ...
 // schema compilation happens on demand
 // but only the first time the schema is used
 async function processRequest(req) {
   const validate = ajv.getSchema("")
   // or
   // const validate = ajv.getSchema("my_schema")
   if (!validate(req.body)) throw Error("bad request")
   // ...

If you are passing exactly the same (and not just deeply equal) schema object to ajv, ajv would use a cached validation function anyway, using schema object reference as a key.

But if you pass the new instance of the schema, even if the contents of the object is deeply equal, ajv would compile it again. In version 6 Ajv used a serialized schema as a cache key, and it partially protected from the incorrect usage of compiled validation functions, but it had both performance and memory costs. Some users had this problem ( when migrating to version 7.

Validation of JSON Schema formats

Format validation has always been a difficult area, as it is not possible to find an optimal balance between validation performance, correctness and security – these objectives are contradictory, and, depending on your application, you would need a different approach to validate the same format.

JSON Schema specification evolved to the point of declaring format validation as an optional, opt-in behaviour, and Ajv v7 made the same choice – formats are now released as a separate package ajv-formats.

Unlike JSON Schema specifies, Ajv does not just quietly ignore formats – it would have been error-prone – you have to explicitly configure it for the desired behaviour (or do not use formats in the schemas).

You have several options:

1. Fully disable format validation with the option `validateFormats: false`. In this case, even if you use formats in the schema, they will be ignored.

2. Define the list of formats that you want to be ignored by passing `true` values for some formats in `formats` option:

 new Ajv({formats: {email: true}})

The configuration above would allow and ignore `email` format in your schemas, but would still throw an exception if any other format is used. This approach is more performant than passing regular expressions `/.*/` or function `() => true` because they would have to be executed, and in case of `true` no validation code is generated when this format is used.

3. Use ajv-formats package – it includes all formats previously shipped as part of Ajv, some of the formats have two options – more performant and more correct (`fast` and `full` – see the docs to ajv-formats).

4. Define your own functions (or use some a 3rd party library) to validate formats that suit your application – you can pass functions to ajv for each format you use and you can even use asynchronous validation if, for example, you want to validate the existence and/or configuration of domain name as part of `email` or `hostname` validation.

The last approach to validate formats – defining your own functions or using a library – is strongly recommended as it allows you to achieve the right balance between validation security, speed and correctness that fits your application.

JSON Schema draft 4 should be used with version 6

Draft 4 of the JSON Schema is the first version that Ajv supported, and since then there were several important changes in the specification that made supporting multiple versions of JSON Schema in the same code unnecessarily complex.

JSON Schema draft 2019-09 has introduced further complexity, so the support for draft 4 was removed.

You can either continue using JSON Schema draft 4 with Ajv version 6, or if you want to have all the advantages of using Ajv version 7 you need to migrate your schemas – it is very simple with ajv-cli command line utility.

What is next

Thanks for continuing sponsorship from Mozilla, many new improvements are coming in Ajv – the new major version 8 will be released in a few months.

The most exciting new feature that was just released in version 7.1.0 is the support for the alternative specification for JSON validation – JSON Type Definition – it was approved as RFC8927 in November 2020. This is a much simpler and more restrictive standard than JSON Schema, and it enforces better data design for JSON APIs, prevents user mistakes and maps well to type systems of all major languages. See Choosing schema language section in Ajv readme for a detailed comparison.

Ajv version 8 will bring many additional features and stability improvements and also will support the changes in the most recent JSON Schema draft 2020-12.

The second exciting change that is coming soon is a new website for Ajv – to make the documentation more accessible and discoverable, and to make contributions easier.

Thanks a lot for supporting Ajv!

Pointer Events Polyfill (PEP) enters emeritus status at the OpenJS Foundation

By Announcement, Blog, Project Update

The Pointer Events Polyfill (PEP), originally part of the jQuery project family, is fully deprecating after 8 years. Current project maintainer, Patrick H. Lauke (who also chairs the W3C Pointer Events Working Group) worked with contributors to push the final stable and secure release to npm in December 2020.

The OpenJS Foundation is honored to have been the neutral home for PEP and is grateful for those who have kept the project up and running over the years. 

PEP History and Milestones

PEP is an early example of open source experimentation and developer adoption driving web standards development.

Originally part of Google’s Polymer Project, PEP gave developers an early opportunity to experiment with the ideas introduced by Microsoft’s W3C member submission for a Pointer Events specification – providing websites and application with a more cohesive way to handle DOM events from a variety of input devices – such as touch, mouse, and stylus – rather than having to handle use separate event models (mouse events and touch events) in parallel.

PEP came to join the jQuery Foundation on December 17, 2014 in order to ensure that the polyfill was maintained in a sustainable and browser-agnostic way, and that tool developers could use it as a path to implementation in all browsers.

Active development of PEP continued through the initial standardisation process, which also saw jQuery members directly involved in the W3C working group, and that led to the stable Pointer Events 1 specification in 2015. PEP played an important role in the Pointer Events standardisation process, allowing an early test-bed for both spec implementers and developers in the wider web community to familiarise themselves with the new standard.

PEP eventually came to the OpenJS Foundation by way of the JS Foundation, the successor of the jQuery Foundation.

The Pointer Events specification has since grown and evolved – with Pointer Events Level 2 reaching recommendation status in April 2019, and current development on Pointer Events Level 3. Many of the functionalities introduced in these newer versions were, unfortunately, too fundamental to be easily “patchable” with a polyfill, which gradually slowed development on PEP – focusing mostly on security patches and bug fixes.

However, while PEP may now be deprecated, the future of Pointer Events themselves is looking good, with the native API now supported in the majority of current browsers (see For this reason, unless a project specifically targets older browser versions, we would strongly encourage developers to stop including PEP and to instead rely solely on native Pointer Events.

Thank yous

Open source projects don’t run, or archive, themselves. There are people behind the GitHub repos that ensure things run smoothly. We’d like to thank all the contributors of the project (including Daniel Freedman from the Polymer Project, Scott González who represented the jQuery Foundation on the W3C working group and led the bulk of the development during that time, and Patrick H. Lauke who coordinated the final release) for maintaining PEP over the years and for giving back to the open source community. 

Project News: WebdriverIO v7 Release

By Announcement, Blog, Project Update, WebdriverIO

Today, the WebdriverIO team has released v7! Webdriver is a hosted project at the OpenJS Foundation. To further grow the project, this new release brings with it an almost complete rewrite to the code base. With the v5 update, the project moved from a multi-repository setup to a mono-repo. This time, the rewrite of the code base is just as important and impactful but comes with almost no implications for the end user.

This major update will have the biggest impact on TypeScript users as types in all places have been updated and the way they are distributed has also been changed. As part of the rewrite, WebDriver has upgraded to Cucumber v7, which also moved its codebase to TypeScript. 

Hear from Christian Bromann, software engineer and core contributor of the Webdriver Project, as he explains some key updates:

Several updates include:

TypeScript Rewrite

Webdriver has rewritten the complete code base and almost touched all files to add type safety and to fix a lot of bugs on the way. This was a true community effort and would have taken much longer if they didn’t have so many people helping with code contributions. Bog thanks to the community for that ❤️! Before, WebdriverIO auto-generated all type definitions, which caused the creation of a lot of duplicate types and inconsistency. With this overhaul, all types are directly taken from the code itself and centralised in a single new helper package called @wdio/types. If you have been using TypeScript, you will now have much better type support for various commands and the configuration file.

Improved Google Lighthouse Integration

Since v6 WebdriverIO can run on the WebDriver protocol for true cross browser automation, but also automate specific browsers using browser APIs such as Chrome DevTools. This allows for interesting integrations into tools that allow broader testing capabilities such as Google Lighthouse. With the `@wdio/devtools-service`, WebdriverIO users were able to access these capabilities using Google Lighthouse to run performance tests. In this release we’ve also updated Google Lighthouse to the latest version to enable new performance metrics such as Cumulative Layout Shifts or First Input Delay.

New PWA Check Command

In addition,  Webdriver has deepened its integration to the tool and added audits for capturing the quality of your progressive web apps (PWA). These applications are built with modern web APIs to deliver enhanced capabilities, reliability, and installability while reaching anyone, anywhere, on any device with a single codebase. 

Webdriver will continue to add more integrations into tools like Google Lighthouse to provide more testing capabilities, e.g. accessibility, best practices and SEO.

New Docs

As you might already have seen, Webdriver has updated their docs to give this new release a brand new face. They have upgraded their Docusaurus setup to v2 and gave the whole design a new touch. Big shout out to Anton Meier for helping out and making the robot on the front page so lively.

Drop Node v10 Support

Webdriver has dropped support for Node v10, which was moved into a maintenance LTS phase by the Node.js team in May 2020. While this version still receives important security updates until April 2021, it is recommended to update your Node.js version to v14 or higher.

If you have any questions don’t hesitate to start a conversation on the discussions page or join our growing support chat that has already reached 6.7k active members.

Node.js Mentorship Initiative: N-API Opportunity

By Announcement, Blog, Node.js, Project Update

This blog was written by A.J. Roberts and the Node.js Mentorship Initiative team. This post was first published on the Node.js blog. Node.js is an impact project at the OpenJS Foundation.

The Node.js Mentorship Initiative is happy to announce our next opportunity. This one is open to developers with experience in C++. You will work hand-in-hand with the N-API working group members with the eventual goal of becoming a full-fledged member of the working group.

If you’re not familiar with the working group, we recommend checking out their recent blog post.

The N-API working group has the goal of making it easier to develop native addons for Node.js and other runtimes like Electron. They have already accomplished a lot of crucially important work for the Native Addons ecosystem. You can help them accomplish even more by improving test coverage, adding features to N-API, and creating examples for native plugin authors to follow.

The N-API working group will set aside time specifically for helping and guiding you, so it’s definitely worth applying through the Mentorship Initiative if you feel like this would benefit you. In order to do that, you should complete the application and its included challenge. The challenge is expected to take 2–4 hours to complete.

Please apply here by January 29th, 2021. We look forward to seeing your submissions.