The Auk Takes Flight!

Photo by Bruce J Robinson. You can buy a print of it here.

A new FeathersJS release and a year in review

A whole year has passed since we began talking about what the next Feathers release (code named Auk) entails. My how time flies! In that year; Feathers, the ecosystem, the community and the core team has grown a lot. Here are some highlights:

  • We’ve closed over 1,200 issues and landed almost 2,000 pull requests! Not bad for a part time team of 6.
  • The Slack group has grown from 40 people to over 1,500 members and is still going strong. Most importantly, it is still very friendly and supportive! 😃
  • Feathers was named the 3rd fastest growing NodeJS framework last year.
  • Feathers is now used in almost every country in the world, everywhere from side projects, to startups, to the most valuable companies in the world. If you have a project to add, please submit a PR!
  • We’ve had 130,000 different people flock to the Feathers docs this year (you see what I did there 😉) and 60% of them keep coming back.

Almost every country has seen FeathersJS

Since Feathers is so modular a lot of the components that fall under this release have been out and used in production for months, already. However, because of this modularization there was also some confusion around what was available and ready for use. This release post is an attempt to bring some clarity to those of you that are new to Feathers and our friends that have been around for some time.

When we announced the Auk release, the intent was to give people insight into all the changes across all the modules on a regular basis and to group things logically so that we could do succinct release announcements. This has been easier said than done and as a result we have learned a ton about how best to release and maintain all these modules and accept new modules from the community.

Going forward we’re going to be shipping and announcing updates more frequently. In order to do this we’ve have come up with a process to determine the readiness of a module. This is what that looks like:

  • The module has been tested, tests are run through Travis CI, and have > 80% test code coverage
  • The repo is hooked up to Slack and CodeClimate
  • Any other dependent modules are updated, tested and documented
  • The module and its dependent modules have been released as a pre-release and tested in production by a small group of users
  • Modules have been properly documented
  • If all is good, we release it to main line NPM under the proper semantic version (we treat 0.x versions as subject to change) and tell you about it! 🎉

We’ve also decided that the code named releases (Buzzard is the next one) will only be for core modules — modules that, when they have breaking changes, impact many others:

We think that these changes are going to allow us to ship faster, while still maintaining high quality. So, with that out the way. Let me tell you what we did ship! 🚢

Authentication 1.0

After 6 months of real-world battle testing we completely overhauled feathers-authentication to be more flexible and future forward. Unlike other frameworks, we didn’t reinvent our own auth layer and instead managed to create a small adapter to Passport — the defacto NodeJS authentication layer. As a result you now get:

  • More flexible JWT authentication tokens
  • The ability to hook into when users login and logout so that you can run custom logic when those events occur.
  • Compatibility with ANY of the 300+ passport authentication strategies so that you can authenticate over HTTP(S)and Websockets with just a few lines of code.
  • Better warnings and debugging; and
  • A ton of bug fixes and improved code coverage

This is the only major breaking change in the Auk release. To help you out we’ve created a migration guide and all apps generated with the new CLI v2.x use this new authentication version.

Better documentation

We also gave the docs a nice little overhaul to make them a little prettier 💄, easier to navigate and more beginner friendly. This was a huge team effort so huge props especially to John Szwaronek (aka.

  • Split the docs into 2 sections — Guides and API — to make it easier to get started and to find info once you’ve started building.
  • Added a new beginner guide to explain the basics of Feathers
  • Improved our Guide to Building A Chat App to focus more on the core Feathers use case: building great APIs
  • Added an Ecosystem section to highlight all the amazing work happening in the community.
  • Moved our hosting to Netlify to make the docs lightening fast. ⚡️
  • Updated the FAQ

Updated CLI and Generators

Getting started with Feathers is easy!

We completely overhauled the CLI and generators to make them more flexible and easier to maintain going forward. This involved:

  • Fixing a bunch of bugs
  • Adding support for all official database adapters
  • Simplifying the generated folder structure to make it easier to search in your editor of choice
  • Reducing amount of generated code even further
  • Adding support for authentication 1.x

To get started generating your first app, check out the guide.

And more

There were a bunch of other things that crept in but we can’t highlight them all as this is already long enough. However, some other notable updates include:

Looking back at the last year. I’m really proud of what the whole Feathers Core Team and community has accomplished. We still have more to do but

I’m looking forward to seeing what we can accomplish in the next year. We have some big plans for Feathers! 🚀

If you haven’t tried FeathersJS yet, take it for a spin and let us know what you think in Slack or on Twitter. We’re really friendly.

If you found this useful, interesting or exciting please hit the heart button below and recommend this article so that others can see it as well.

Stay up to date

Get notified when I publish something new, and unsubscribe at any time.