Four TSC members resigned over a failed vote. Forked as 'Ayo' (Yoruba for 'joy'). Archived after 1 year, zero development.
Node.js is a JavaScript runtime built on Chrome's V8 engine, enabling server-side JavaScript execution. It's one of the most widely used platforms for web development, with millions of production deployments. Ayo.js was a direct fork of the Node.js codebase with no technical modifications.
Node.js had already been through one dramatic fork — the io.js split of 2014 — so when Ayo.js appeared in August 2017, there was a certain 'here we go again' energy. But while io.js was about Joyent's corporate control and technical direction, Ayo.js was about something far more personal: a Code of Conduct dispute that tore the Technical Steering Committee apart.
The trigger was Rod Vagg, a TSC member and chief Node officer at NodeSource. Vagg tweeted support for an article critical of codes of conduct, which several community members found inflammatory and contrary to Node.js's own CoC. A formal vote was called to remove Vagg from the TSC. The thirteen-member committee voted: six 'no,' four 'yes,' two abstentions, one recusal. Vagg stayed.
The four who voted to remove Vagg — Anna Henningsen, Bryan Hughes, Myles Borins, and Jeremiah Senkpiel — didn't take the result well. They resigned from the TSC and, together with other community members, forked Node.js as Ayo.js (pronounced 'eye-oh,' Yoruba for 'joy,' and a nod to the io.js precedent). The name was clever; the project was not.
Unlike io.js, which had clear technical goals and experienced leadership, Ayo.js had no coherent vision beyond 'Node.js but with better community standards.' No significant technical changes were made. No releases were ever shipped. The repository was archived within a year, with zero meaningful development having occurred. The four who resigned eventually returned to the Node.js ecosystem in various capacities. Ayo.js became the textbook example of a spite fork — born from genuine frustration but without the technical purpose or community mass to sustain itself.
Rod Vagg tweets support for article critical of codes of conduct
TSC votes 6-4 (with 2 abstentions, 1 recusal) against removing Vagg
Four TSC members resign; Ayo.js fork announced
Initial Ayo.js repository created on GitHub
Ayo.js repository archived with no releases or significant development
Ayo.js had no technical impact whatsoever, but it remains highly relevant as a case study in fork dynamics. It demonstrated that a fork needs more than legitimate grievances — it needs technical differentiation, sustained contributor energy, and a clear vision for why it should exist as a separate project. Without those elements, even justified anger dissipates quickly.
The incident did, however, contribute to ongoing discussions about governance, codes of conduct, and accountability in the Node.js community. Several of the Ayo.js participants continued to push for better community standards within Node.js itself, arguably achieving more through continued engagement than through the fork.