A minimalist real-time framework for tomorrow's apps.

Get Started

Devices Created with Sketch.

Build incredible apps in record time.


With Feathers you can build prototypes in minutes and production ready real-time apps in days. Seriously.

Create your first real-time app in minutes.

$ npm install -g feathers-cli

$ mkdir my-app

$ cd my-app

$ feathers generate

$ npm start

Check out the docs to learn more about Feathers, feel free say hello in the Slack group, or show us some love on Twitter.

Stay nimble with elegant, flexible code.

We're not just hiding behind generators. See just how easy it is to create a real-time app from scratch, complete with authentication.

# Install modular dependencies

$ npm install feathers feathers-hooks feathers-socketio feathers-rest feathers-errors feathers-memory feathers-authentication body-parser

SERVER

BROWSER

REACT NATIVE

const feathers = require('feathers');
const rest = require('feathers-rest');
const socketio = require('feathers-socketio');
const hooks = require('feathers-hooks');
const memory = require('feathers-memory');
const authentication = require('feathers-authentication');
const bodyParser = require('body-parser');
const handler = require('feathers-errors/handler');
// A Feathers app is the same as an Express app
const app = feathers();
// Parse HTTP JSON bodies
app.use(bodyParser.json());
// Parse URL-encoded params
app.use(bodyParser.urlencoded({ extended: true }));
// Register hooks module
app.configure(hooks());
// Add REST API support
app.configure(rest());
// Configure Socket.io real-time APIs
app.configure(socketio());
// Register our authentication plugin
app.configure(authentication({ idField: 'id' }));
// Register our memory "users" service
app.use('/users', memory());
// Register a nicer error handler than the default Express one
app.use(handler());
// Register a before hook to hash passwords
app.service('users').before({
create: authentication.hooks.hashPassword()
});
// Create a test user
app.service('users').create({
email: 'admin@feathersjs.com',
password: 'admin'
});
// Start the server
app.listen(3030);

See what makes Feathers so special

Modern, solid, and 100% JavaScript

Built using promises and ES6 features, Feathers is a tiny, fully compatible wrapper over Express and Socket.io, both of which have been used in production by thousands of companies.

Universal

Feathers can be used in the browser, React Native and server side with NodeJS. Using the Feathers client you can quickly add authentication, share code between your server and client, and easily make your apps real-time.

Framework Friendly

Feathers easily integrates with any client side framework. It plays especially well with React and React Native. They’re practically BFFs.

Service Oriented

Feathers gives you the structure to build service oriented apps from day one. When you eventually need to split up your app into microservices it’s an easy transition and your Feathers apps can scale painlessly.

Instant Real-time REST APIs

Feathers provides instant CRUD functionality via Services, exposing both a RESTful and real-time API automatically through Socket.io or Primus.

Datastore Agnostic

Feathers has adapters for 15+ data sources out of the box, including MongoDB, Postgres and S3. You can have multiple datastores in a single app and swap them out painlessly due to our consistent query interface.

Flexible Plugins

Feathers is a “batteries included but easily swappable framework”. We have entirely optional plugins that provide authentication and SMS or email messaging out of the box. Include exactly what you need. No more, no less.

Create your first Feathers app today!

Get Started