All Projects β†’ agile-ts β†’ agile

agile-ts / agile

Licence: MIT license
🌌 Global State and Logic Library for JavaScript/Typescript applications

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to agile

Vue Class Store
Universal Vue stores you write once and use anywhere
Stars: ✭ 243 (+170%)
Mutual labels:  reactive, state-management, simple
mutable
State containers with dirty checking and more
Stars: ✭ 32 (-64.44%)
Mutual labels:  state-management, state, functional-reactive-programming
nstate
A simple but powerful react state management library with low mind burden
Stars: ✭ 11 (-87.78%)
Mutual labels:  state-management, simple, react-state-management
Effector
The state manager β˜„οΈ
Stars: ✭ 3,572 (+3868.89%)
Mutual labels:  reactive, state-management, state
Swiftdux
Predictable state management for SwiftUI applications.
Stars: ✭ 130 (+44.44%)
Mutual labels:  reactive, state-management, state
Reatom
State manager with a focus of all needs
Stars: ✭ 567 (+530%)
Mutual labels:  reactive, state-management, state
Mobx Keystone
A MobX powered state management solution based on data trees with first class support for Typescript, support for snapshots, patches and much more
Stars: ✭ 284 (+215.56%)
Mutual labels:  reactive, state-management, functional-reactive-programming
Mobx Rest
REST conventions for Mobx
Stars: ✭ 164 (+82.22%)
Mutual labels:  reactive, state-management, state
Mag.js
MagJS - Modular Application Glue
Stars: ✭ 157 (+74.44%)
Mutual labels:  modular, reactive, state-management
storken
🦩 Storken is a React State Manager. Simple as `useState`.
Stars: ✭ 22 (-75.56%)
Mutual labels:  state-management, state
atomic-state
Atomic State is a state management library for React
Stars: ✭ 15 (-83.33%)
Mutual labels:  state-management, state
deep-state-observer
State library for high performance applications.
Stars: ✭ 25 (-72.22%)
Mutual labels:  reactive, state
reactive-states
Reactive state implementations (brainstorming)
Stars: ✭ 51 (-43.33%)
Mutual labels:  reactive, state-management
react-state
React-State - Superpowers for managing local and reusable state in React
Stars: ✭ 14 (-84.44%)
Mutual labels:  state-management, state
vuse-rx
Vue 3 + rxjs = ❀
Stars: ✭ 52 (-42.22%)
Mutual labels:  state-management, state
snap-state
State management in a snap πŸ‘Œ
Stars: ✭ 23 (-74.44%)
Mutual labels:  state-management, state
rex-state
Convert hooks into shared states between React components
Stars: ✭ 32 (-64.44%)
Mutual labels:  state-management, state
enform
Handle React forms with joy 🍿
Stars: ✭ 38 (-57.78%)
Mutual labels:  state-management, state
XUI
XUI makes modular, testable architectures for SwiftUI apps a breeze!
Stars: ✭ 100 (+11.11%)
Mutual labels:  state-management, state
useSharedState
useSharedState is a simple hook that can be used to share state between multiple React components.
Stars: ✭ 0 (-100%)
Mutual labels:  state-management, state

⚠️ No longer actively maintained. In case there will be a higher demand and more known bugs in the future, I will be happy to continue improving this project. But as for now its stable and can be used in any sort of project. In case you face any problem feel free open an issue.

❓ If you've any questions, don't hesitate to start a discussion.

AgileTs

πŸŽ‡ Global State and Logic Library


GitHub License npm minified size npm total downloads

Status Build Status Build Status Coverage Badge

Tweet Join Discord


How to create a State?

// -- core.js ------------------------------------------

// 1️⃣ Create State with the initial value "Hello Friend!"
const MY_FIRST_STATE = createState("Hello Friend!");


// -- MyComponent.whatever ------------------------------------------

// 2️⃣ Bind initialized State to the desired UI-Component.
// And wolla, the Component is reactive. 
// Everytime the State mutates the Component re-renders.
const myFirstState = useAgile(MY_FIRST_STATE);
console.log(myFirstState); // Returns "Hello Friend!"

Want to learn how to implement AgileTs in your preferred UI-Framework? Check out our Quick Start Guides.

⛳️ Sandbox

Test AgileTs yourself in a codesandbox. It's only one click away. Just select your preferred Framework below.

More examples can be found in the Example section.



Why should I use AgileTs?

AgileTs is an atom based global State and Logic Library implemented in Typescript. It offers a reimagined API that focuses on developer experience and allows you to easily and flexible manage your application States. Besides States, AgileTs offers some other powerful APIs that make your life easier, such as Collections and Computed States. The philosophy behind AgileTs is simple:

πŸš… Straightforward

Write minimalistic, boilerplate-free code that captures your intent.

// Create State with the inital value 'frank'
const MY_STATE = createState('frank');

// Update the State value from 'frank' to 'jeff'
MY_STATE.set('jeff');

// Undo the latest State value change
MY_STATE.undo();

// Reset the State value to its initial value
MY_STATE.reset();

// Permanently store the State value in an external Storage
MY_STATE.persist("storage-key"); 

πŸ€Έβ€ Flexible

  • Works in nearly any UI-Framework (currently supported are React, React-Native and Vue).
  • Surly behaves with the workflow that suits you best. No need for reducers, actions, ..
  • Has 0 external dependencies.

⛳️ Centralize

AgileTs is designed to take all business logic out of the UI-Components and put them in a central place, often called core. The advantage of keeping logic separate to UI-Components, is that your code is more decoupled, portable, scalable, and above all, easily testable.

You can learn more about ways to centralize your application logic with AgileTs in our Style Guides.

🎯 Easy to Use

Learn the powerful tools of AgileTs in a short period of time. An excellent place to start are our Quick Start Guides, or if you don't like to follow tutorials, you can jump straight into the Example section.



Installation

In order to use AgileTs in a UI-Framework, we need to install two packages.

  • The core package contains the State Management Logic of AgileTs and therefore provides powerful classes like the State Class.

    npm install @agile-ts/core
    
  • A fitting Integration for the UI-Framework of your choice, on the other hand, is an interface to the actual UI and provides useful functionalities to bind States to UI-Components for reactivity. I prefer React, so let's go with the React Integration for now.

    npm install @agile-ts/react
    


Documentation

Does AgileTs sound interesting to you? Take a look at our documentation, to learn more about its functionalities and capabilities. If you have any further questions, feel free to join our Community Discord. We will be happy to help you.



Contribute

Get a part of AgileTs and start contributing. We welcome any meaningful contribution. πŸ˜€ To find out more about contributing, check out the CONTRIBUTING.md.

Maintainability

β™₯️ Contributors

Become a contributor



Packages of Agile

Name Latest Version Description
@agile-ts/core badge State Manager Logic
@agile-ts/react badge React Integration
@agile-ts/vue badge Vue Integration
@agile-ts/api badge Promise based API
@agile-ts/multieditor badge Simple Form Manager
@agile-ts/event badge Handy class for emitting UI Events
@agile-ts/logger badge Logging API of AgileTs
@agile-ts/utils badge Utilities of AgileTs
@agile-ts/proxytree badge Proxy Tree for tracking accessed properties


Credits

AgileTs is inspired by MVVM Libraries like MobX and PulseJs.

πŸ• Time spent building this project

wakatime

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].