finds.dev← search

// the find

feathersjs/feathers

★ 15,248 · TypeScript · MIT · updated Jun 2026

The API and real-time application framework

Feathers is a Node.js framework for building REST and real-time APIs, where the same service interface handles both HTTP and WebSocket protocols automatically. It's been around since ~2015 and targets developers who want socket.io real-time sync without writing separate HTTP and WebSocket handlers. The v5 rewrite added first-class TypeScript and a schema/resolver system.

The service abstraction is genuinely clever — define find/get/create/update/patch/remove once and it works over REST and socket.io with zero extra code. The hook system (before/after/error middleware per method) composes cleanly and covers 90% of cross-cutting concerns like auth, validation, and logging without middleware spaghetti. TypeScript support in v5 is thorough, with generated types flowing from schema definitions through resolvers to the client SDK. The CLI generator scaffolds a working authenticated CRUD app with DB adapter, schema validation, and typed client in one command.

The real-time channel system for controlling what data gets pushed to which socket connections is powerful but notoriously confusing — most teams end up with a single 'authenticated' channel and never touch the rest. The v5 migration from v4 was a large breaking change and the ecosystem (third-party adapters, plugins) hasn't fully caught up; you'll hit unmaintained packages if you go off the happy path. The query syntax for filtering (Feathers query object format) is its own thing and has to be learned separately from anything else — it doesn't map to SQL, MongoDB, or any standard. At 15k stars for a 10+ year old framework it's not declining but also not growing, which is a signal worth noting for long-term adoption bets.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →