I’ve been working with Akita pretty much since its inception, and while I’ve created many, many Akita stores in Angular, and wrote about it extensively, and even played around with an Akita/Svelte combo, I had yet to use it myself in a React App. I’ve decided to check that box, and whip up a classic todo app in React, using Akita for state management. Let’s get cooking 👩‍🍳👨‍🍳

This article assumes some familiarity with Akita State Management. To learn more about Akita and all its capabilities, check out one of the articles I’ve listed above or its great documentation.

We…


Since its inception, the Akita state management solution has delivered hundreds of thousands of developers an easy, simple way to manage their application state data and ui data. The newest complementary feature to come out is Akita’s Entity Service.

Akita is a state management pattern, built on top of RxJS, and based on OOP design principles. It saves you the hassle of creating boilerplate code and offers powerful tools with a moderate learning curve, suitable for both experienced and inexperienced developers alike.

Till now, the main components of Akita were the Akita Store and the Akita Query, which both have…


There’s a new player in the world of JS frameworks — Svelte. As its name suggests, Svelte is lean, extremely lean. In fact, Svelte’s modus operandi, of compiling code to (ideal) vanilla js during the build phase rather than interpreting it during the run phase, has had people describing it as a non-framework and its own creator calling it a language, rather than a framework. Specifically, one created for describing reactive user interfaces.

I’ve started playing around with Svelte and so far I’ve been having a blast. The tutorial offered by creator Rich Harris functions as a very pleasant introduction…


A neat package offered to Akita users

The Akita ng-router-store is a neat package offered to Akita users, which enables binding the Angular router state to an Akita store. The benefits of this approach are:

  • The router state is stored in an Akita store named router, which serves as the single source of truth for things such as URL, state data parameters, query parameters, etc.
  • Our components don’t have to be familiar with the data source. The RouterQuery can be injected in any one of the queries to create an encapsulated derived selector.
  • The library exposes Akita style queries, saving you from dealing with all the required…


State management is ubiquitous in web applications, be they big or small. One of the notable solutions in this field is Akita. Whether it’s entities arriving from the server or UI state data, Akita has custom-built stores, powerful tools, and tailor-made plugins, which help you manage the data and negate the need for massive amounts of boilerplate code. Here are ten reasons why you should start using it:

  1. Akita is a veteran in the field: It’s been out for a year already and even before that it was used for over a year in Datorama, as part of a real-world…


When you have to poll, poll. Don’t talk.

When creating web applications we sometimes come across the need to perform a certain operation repeatedly over time, with a set period of time between runs. The most common example is when we need to poll a server for data.

While the initial inclination might be to use setInterval for such cases — after all, it seems made for the task, and setting it would take a single line of code — however, this is not advised if the operation in question is asynchronous. …


When it comes to maintaining a multistep form in your application, it can turn into quite a big headache, as any step or combination of steps can affect others, and you need to have real-time knowledge of both the form’s overall validity as well as each step’s status.

But not when you have Akita! Apart from being one of the leading state management libraries, with over 240K downloads to date, Akita has an additional library, AkitaNgFormsManager, which offers form-specific functionality that can significantly simplify your form management experience.

The AkitaNgFormsManager lets you sync Angular’s formGroup, formControl, and formArray, via a…


Akita continues to evolve and attract more users, and while using it is pretty simple and straightforward, there are ways where Akita can become even more efficient and useful to us. One such way is implementing the mediator pattern by combining multiple Queries and/or Stores.

Even the most casual Akita users are familiar with the Query. It’s a class used to query the Akita Store, which functions similarly to database queries. Its constructor function receives as parameters its own store or other query classes. …


We’ve all been there: You’re writing your code, chugging along, when suddenly the mere thought of the amount of unit tests you’ll have to write paralyzes you. Sure, you know they’re important — they help you and others understand your code, they check edge cases, they even force you to improve your code (because very often testable code = better code). So why do we balk at writing specs, delaying them till the last possible minute or skipping them outright?

Because, to be totally frank, testing sucks.

But why does it suck? Well, there are a couple of reasons: testing…


In the process of building web applications, we often need to manage basic CRUD operations for entities with a shared structure. This can result in a lot of boilerplate code unless we employ tools which offer built-in support for this functionality.

This is where Akita comes in. It’s a state management pattern, built on top of RxJS, which takes the idea of multiple data stores from Flux and the immutable updates from Redux, along with the concept of streaming data, to create the Observable Data Store model. …

Inbal Sinai

I'm a front-end developer at Datorama (a Salesforce company 😎) and a blogger. Passionate about code, photography and pizza.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store