A simple, modular, and extensible global state management library for Vue 3 applications.
Harlem is a global state management library designed specifically for Vue 3 applications. It provides a simple functional API for creating, reading, and mutating state, with built-in immutability and TypeScript support. It solves the problem of managing complex application state in a predictable, modular, and developer-friendly way.
Vue 3 developers building applications that require scalable and maintainable global state management, from small projects to large enterprise software.
Developers choose Harlem for its balance of simplicity and power, offering strong typing, Vue devtools integration, and extensibility through official plugins and extensions, all while being lightweight and tree-shakeable.
Powerfully simple global state management for Vue 3
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides full type safety for state, getters, mutations, and actions, as emphasized in the README's focus on being 'built using TypeScript' for a predictable developer experience.
Integrates directly with Vue devtools for real-time state inspection and event tracking, highlighted in the features list to enhance debugging and development workflows.
Dependency-free and optimized for modern bundlers, allowing unused store parts to be eliminated in production builds, as noted in the README's modularity and performance claims.
Offers a suite of add-ons like undo/redo, storage sync, and transactions, making it adaptable to complex needs without bloating the core library, per the extensibility section.
Not compatible with Vue 2, which excludes legacy projects or teams that haven't migrated, a clear gap compared to more versatile state management libraries.
The functional approach requires explicit setup for mutations and actions, leading to more boilerplate code than declarative alternatives, which might feel cumbersome for simple state needs.
As a newer library compared to Pinia or Vuex, Harlem has fewer community contributions and third-party tools, potentially limiting integration options and long-term support.