Feathers provides a lot of the things that you need for building modern web and mobile applications. Here are some of the things that you get out of the box with Feathers. All of them are optional so you can choose exactly what you need. No more, no less.
We like to think of Feathers as a "batteries included but easily swappable" framework.
|Instant REST APIs||Feathers automatically provides REST APIs for all your services. This industry best practice makes it easy for mobile applications, a web front-end and other developers to communicate with your application.|
|Unparalleled Database Support||With Feathers service adapters you can connect to all of the most popular databases, and query them with a unified interface no matter which one you use. This makes it easy to swap databases and use entirely different DBs in the same app without changing your application code.|
|Real Time||Feathers services can notify clients when something has been created, updated or removed. To get even better performance, you can communicate with your services through websockets, by sending and receiving data directly.|
|Cross-Cutting Concerns||Using "hooks" you have an extremely flexible way to share common functionality or concerns. Keeping with the Unix philosophy, these hooks are small functions that do one thing and are easily tested but can be chained to create complex processes.|
|Universal Usage||Services and hooks are a powerful and flexible way to build full stack applications. In addition to the server, these constructs also work incredibly well on the client. That's why Feathers works the same in NodeJS, the browser and React Native.|
|Authentication||Almost every app needs authentication so Feathers comes with support for email/password, OAuth and Token (JWT) authentication out of the box.|
|API Versioning||As an application matures the API typically evolves to accommodate business needs or technology changes. With Feathers it's easy to version your API by mounting a sub application or spinning up an entirely new service or app.|
|Pagination||Today's applications are very data rich so most of the time you cannot load all the data for a resource all at once. Therefore, Feathers gives you pagination for every service from the start.|
|Rate Limiting||When an app goes to production you'll need to have some protection against denial of service attacks. With Feathers it's easy to add Express middleware to do rate limiting at a service level.|
|Error Handling||Feathers removes the pain of defining errors and handling them. Feathers services automatically return appropriate errors, including validation errors, and return them to the client in a easily consumable format.|
|Logging||Feathers comes with a very simplistic logger that has sane defaults for production. However, it is easily swappable to allow you to customize to your needs.|