Skip to content
On this page

Introduction

Welcome to the apex of Vue Data Modeling and FeathersJS connectivity for the artisan developer. Feathers-Pinia is the first-class data modeling solution built with the Vue Composition API. It is well known for its features which maximize perceived application speed for end users while providing a pleasant developer experience.

Overview of Features

  • Data Modeling using pure functions with stellar TypeScript Support.
  • Model Associations with the new associateFind and associateGet utilities.
  • Clone and Commit support for keeping mutation count low.
  • Per-Record Defaults offer a functional way of adding default values to every record.
  • Realtime by Default: It's ready for WebSocket-enhanced, multi-user interactivity.
  • Independently Reactive: no need to assign records to component or store data to enable reactive binding.
  • Local Queries: Make requests against locally-cached data as though it was a FeathersJS database, now with support for SQL $like operators.
  • Live Queries with client-side pagination allow arrays of data to automatically update as new records are added, modified, or removed.
  • Server-Side Pagination: alternative to live-list pagination, optionally give all control to the server and perform manual fetching. In this mode, lists only update when new queries are made.
  • SSR Support: optimize server-loaded data on the client without refetching. The latest Nuxt APIs are fully supported.
  • Fall-Through Cache like SWR but with built-in, low-memory query intelligence. It knows which records can be shared between different queries, which allows relevant records to show immediately while additional data is fetched.
  • Flexible code patterns allow developers to work as they wish.
    • Active Record Pattern: allows use of utility methods built on each instance. This pattern allows creation of loosely-coupled components built around the instance interface.
    • Data Mapper Pattern: allows you to use a store-centric workflow where you let store logic perform operations on your data.
  • Flexible Auth Support with the new useAuth composition utility.
  • New utilities for data fetching and working with form data, fully powered by the Vue Composition API.
  • Full support for FeathersJS v5 Dove.

While built for Pinia, it has evolved to support standalone configurations not requiring Pinia. Both the standalone and Pinia-based workflows are first-class integrations with almost 100% feature parity. Pinia-based setups support easy SSR integration.

Coming from Feathers-Vuex

Feathers-Pinia is the next generation of Feathers-Vuex. The difference is that it's built on Pinia: a Vue store with an intuitive API.

Using Pinia in your apps will have a few positive effects:

  • The clean API requires lower mental overhead to use.
    • No more weird Vuex syntax.
    • No more mutations; just actions.
    • Use Composable Stores instead of injected rootState, rootGetters, etc.
  • Lower mental overhead means developers spend more time in a creative space. This usually results in an increase of productivity.
  • You'll have smaller bundle sizes. Not only is Pinia tiny, it's also modular. You don't have to register all of the plugins in a central store. Pinia's architecture enables tree shaking, so only the services needed for the current view need to load.

See the Migration Guide for developers coming from Feathers-Vuex.

Many thanks go to the Vue, Vuex, Pinia, and FeathersJS communities for keeping software development FUN!