gitwtfhub

wtf is akita?

salesforce/akita — explained in plain English

Analysis updated 2026-07-03

3,676TypeScriptAudience · developerComplexity · 3/5Setup · moderate

TL;DR

Akita is an archived TypeScript state management library for Angular, React, and Vue apps, built on top of RxJS. The team no longer maintains it and recommends their newer Elf library instead, but the code remains a useful reference for Observable Data Store patterns.

Mindmap

mindmap
  root((Akita))
    What it does
      State management library
      Observable Data Stores
    Tech
      TypeScript
      RxJS
    Design Patterns
      Flux-inspired stores
      Redux immutability rules
    Status
      No longer maintained
      Elf is the replacement

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Read the Akita source code to understand how Observable Data Stores combine Flux and Redux patterns with RxJS

REASON 2

Migrate an existing Akita-based Angular project by studying its patterns before switching to the recommended Elf library

REASON 3

Use Akita as a reference implementation for building state management utilities with RxJS observables

What's in the stack?

TypeScriptRxJSAngularJavaScript

How it stacks up

salesforce/akitacodeforreal1/compressophiresky/sql.js-httpvfs
Stars3,6763,6773,677
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderateeasymoderate
Complexity3/51/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Library is archived, install it only for migrating existing projects, use Elf for new ones.

Wtf does this do

Akita is a TypeScript library for state management in JavaScript applications. State management refers to a pattern for keeping track of data that changes over time in a web application, such as what a logged-in user has in their cart, which items are loaded from a server, or which view is currently active. Akita was designed to work with Angular, React, Vue, or plain JavaScript. The library is built on top of RxJS, which is a toolkit for working with streams of data that change over time. Akita takes ideas from two earlier patterns: Flux, which uses separate data stores for different parts of an application, and Redux, which requires data to be updated in a controlled, immutable way. Akita combines these with RxJS's observable streams to create what it calls Observable Data Stores. The README states that the library is no longer maintained and advises against using it in new projects. The team behind it has released a newer solution called Elf, which they recommend instead. The README links to the Elf documentation for anyone looking for an actively supported alternative. When it was active, Akita aimed to reduce the amount of repetitive setup code that other state management libraries required, while still providing tools suitable for both small and large applications. A command-line tool, a documentation site, and a sample application were all available to help developers get started. The project was originally developed at Datorama before the repository moved to the Salesforce GitHub organization.

Yoink these prompts

Prompt 1
I have an Angular app using Akita for state management. Help me migrate the store, query, and service pattern to the newer Elf library step by step.
Prompt 2
Show me how to create an Akita entity store in TypeScript that tracks a list of items with loading state and error handling.
Prompt 3
How does Akita's Observable Data Store pattern differ from Redux, and which Elf equivalent replaces each Akita concept?

Frequently asked questions

wtf is akita?

Akita is an archived TypeScript state management library for Angular, React, and Vue apps, built on top of RxJS. The team no longer maintains it and recommends their newer Elf library instead, but the code remains a useful reference for Observable Data Store patterns.

What language is akita written in?

Mainly TypeScript. The stack also includes TypeScript, RxJS, Angular.

How hard is akita to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is akita for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.