An update from the Faker team

January 14th, 2022

đź‘‹ We're pretty excited to give new life to this project.

We want the project to have a fresh start and become even cooler.

What is Faker?

Faker is a library that generates fake (but reasonable) data for you. Mock data. Data for testing, development, and the like.

Faker was first implemented in Perl in 2004 by Jason Kohles (he reached out to us in support đź’›), and has since been ported to many languages including Ruby, Python, Java, Clojure, PHP, and C#.

This is the JavaScript port.

Is it called Faker or faker.js?

We try to call it Faker in the code and in titles, but faker-js is more available as a username.

Is this the official library?

We're referring to it as the official library in the immediate term in order to disambiguate between the many rewrites and forks that are not community-maintained. We've merged all active forks to date. We'll drop "official" once things have died down and there's less chaos around the library in general.

(someone) is also working on a Faker library

Please send them to our Discord and we can share ideas and collaborate.

Who are the current maintainers?

We're a group of engineers who were using Faker in prod when the main package was deleted.

We have eight maintainers currently.

What has the team done so far?

  1. Created a GitHub org for the new Faker package under @faker-js/faker.
  2. Put together a team of eight maintainers.
  3. Released all previous versions of Faker at @faker-js/faker on npm.
  4. Released the Version 6 Alpha
  5. Almost completed migrating to TypeScript so that DefinitelyTyped no longer needs to maintain its external @types/faker package.
  6. Created a public Twitter account for communicating with the community.
  7. Released the first official Faker documentation website.

Thank you Jeff!

Faker has never had an official docs website and the awesome Jeff Beltran has been maintaining a project called "Un-Official faker.js Documentation" for the last 3 years.

He gave us permission to re-use his work to create fakerjs.dev

  1. Cleaned up tooling like Prettier, CI, Netlify Deploy Previews, and GitHub Actions.

  2. Done a TON of issue triage and many, many PR reviews.

64 pull requests were opened. 34 were merged. 44 issues were opened. 25 were closed.
  1. We've gotten in contact with the Open Collective and discussed a transition plan for the project.

Is there a roadmap?

We fully intend to extend Faker, continuously develop it, and make it even better.

As such, we will work on a roadmap after we release 6.x and merge all of the TypeScript Pull Requests in the next week.

Some of the items on our roadmap:

  1. ESM Support!
  2. Browserify => Rollup/Vite
  3. Improved testing infrastructure
  4. typegen docs
  5. Engage with existing maintainers of the Faker ecosystem
  6. Interactive Playground within the docs
  7. Node 18 compatibility

I heard something happened. What's the TLDR?

The Faker project was maintained by Marak Squires, an early-days impactful Node enthusiast and professional who went rogue and acted maliciously on January 4th, 2022. The package was deleted, and the project was abandoned.

We're now turning Faker into a community-controlled project currently maintained by eight engineers from various backgrounds and companies.

From the news

For more information, here are some major news articles that covered what happened:

The Verge, BleepingComputer, The Register, ZDNet, Naked Security.

FUNDING.yml

When we opened the repository, we received an influx of issues to remove Marak from the FUNDING.yml. #15, #43, #110, #111, #112

We were closing issues every other hour. Discussing the FUNDING.yml was inevitable. We pushed it off for four days so that we could focus on re-establishing the health of the project in service of the community.

When we became aware that this project was the most stable fork of Faker with the most community support, we realized that we needed to deal with the FUNDING.yml file and take a stance.

Short version, please

Jess posted a concise and thorough writeup of the logic behind our actions and decisions.

This was backed by the support of all of the co-maintainers. It's a much less narrative version of this section, so if you want the TLDR and some photos of the transactions, give it a read.

We came to the determination that users unfamiliar with the whole Faker situation wouldn't know that the repository's sponsorship links aren't funding the continued development of the project.

Faker’s financial support is held on behalf of the project by https://www.oscollective.org/ and managed on https://opencollective.com/fakerjs, and so on January 12th, 2022, we contacted https://twitter.com/BenJam, the Executive Director at Open Source Collective…

During the conversation with Ben, he went over the terms and conditions of the Open Collective with me.

Ben said that simply, "The funding is attached to the project, not the current maintainer."

Unanimously, we agreed that we wanted absolutely no ability to touch the existing funding and created a cut-over plan with the support of Open Collective.

Legacy collective

There is now a fakerjs-legacy collective. Open Collective transferred all funds into the legacy account and invited Marak and the other maintainer, Brian, into the legacy collective so that they could do whatever they wanted with the funds.

After the funds were moved we were invited to become admins of the Faker collective. This meant that we retained the existing sponsors of the Faker collective who were paying for the continued maintenance of the project.

We believed that this was the most equitable and transparent way to act. The project's sponsors were able to continue to support the project and its ongoing development. Marak and Brian were able to retain the $11,652.69 USD previously donated to the project.

Since Open Collective champions transparency in funding, you can visit the fakerjs-legacy collective's transactions to see the deposits and any other transactions that have been made.

SPONSORING MARAK

For those who were sponsoring the fakerjs open collective as a way to personally sponsor Marak, please donate to the fakerjs-legacy open collective OR Marak's other open collective. We don't know which is his preferred one. We will update this notice and post a new link if we hear otherwise from Marak.

An e-mail from our team will also arrive in the next few days notifying Open Collective sponsors that the maintainer team has changed.

We have no information with regards to his GitHub Sponsors.

How will the team operate financially?

We reached out to Ben Nickolls, the Executive Director of Open Collective to get advice.

He had two recommendations:

  1. To do what ESLint is doing. "A year of paying contributors: Review"
  2. To attend the "Deciding on how to use your money" workshop and apply what we learn there.

Those are the models we will follow.

In closing...

We're excited to give new life to this idea and project.

This project can have a fresh start and it will become even cooler.

We felt we needed to do a public announcement because of all of the attention the project received in the media and from the community.

We believe that we have acted in the way that is best for the community.

We will continue to work on the project and not only maintain it, but actively develop new and awesome features.

- Jessica Sachs and the Faker Team