diff --git a/README.md b/README.md index 37089e59..fda6385c 100644 --- a/README.md +++ b/README.md @@ -1,110 +1,147 @@ Banner - > **Spacy**, **Simple**, **Scalable** State Management Framework + > **Spacy, Simple, Scalable State Management Framework**
GitHub License + + npm minified size + + Build Status + + Build Status + +
+ npm monthly downloads npm total downloads - - npm minified size - - GitHub Code Size - - GitHub Repo Size + -## πŸš€ Look how easy it is -Below example is based on React +
+ + +
+How to create State Header + ```tsx -// At first we have to create an Instance of Agile +// -- core.js ------------------------------------------ + +// At first we need an Instance of Agile const App = new Agile(); -// Now we can create a State which has an initial Value of "Hello Stranger!" +// Than we can create our first State const MY_FIRST_STATE = App.State("Hello Stranger!"); -// Our cool React Component -const RandomComponent = () => { - // With the Hook 'useAgile' we bind the State to our 'RandomComponent' - const myFirstState = useAgile(MY_FIRST_STATE); // Returns "Hello Stranger!" - // ^ - return ( // | -
// | Through the 'set' action the State Value -

{myFirstState}

// | gets changed to "Hello Friend!" - -
- ); -} +// -- myComponent.whatever ------------------------------------------ + +// Now we can bind our State to nearly any UI-Component +// And wolla its reactive. Everytime the State mutates the Component gets rerendered +const myFirstState = useAgile(MY_FIRST_STATE); // returns "Hello Stranger!" ``` -_You can't believe the simplicity?! Convince yourself [here](https://codesandbox.io/s/agilets-first-state-f12cz)._ +To find out more checkout our [documentation](https://agile-ts.org/docs). +### ⛳️ Sandbox +Test AgileTs yourself, it's just a click away. Select your preferred Framework below. +- [React](https://codesandbox.io/s/agilets-first-state-f12cz) +- Vue (coming soon) +- Angular (coming soon) -## ❓ Why AgileTs -#### πŸš… Straightforward -Write minimalistic, boilerplate free code that captures your intent.
-**For instance** -- Store State in Local Storage +
+ + +
+Why should I use AgileTs + +### πŸš… Straightforward +Write minimalistic, boilerplate free code that captures your intent. + +**Some straightforward syntax examples:** +- Store a State in the Local Storage ```ts MY_STATE.persist("storage-key") ``` -- Reactive Collection of States +- Create a reactive Collection of States ```ts const MY_COLLECTION = App.Collection(); MY_COLLECTION.collect({id: 1, name: "Frank"}); MY_COLLECTION.collect({id: 2, name: "Dieter"}); ``` -- Cool State checks and mutations +- Mutate or Check States with simple Functions ```ts MY_STATE.undo(); // Undo last change MY_STATE.is({hello: "jeff"}); // Check if State has the Value {hello: "jeff"} ``` -#### πŸ€Έβ€ Flexible -Agile can be used in nearly every UI-Framework -and surly works with the workflow that suits you best, -since Agile isn't bound to _dispatches_, _reducers_, .. +### πŸ€Έβ€ Flexible +- Works in nearly every UI-Framework. Check [here](TODO) if the Framework you are using is supported, too. +- Surly behaves with the workflow that suits you best. + No need for _reducers_, _actions_, .. +- Has **no** external dependencies -#### 🎯 Easy to Use -Learn the powerful and simple tools of Agile in a short amount of time. +### 🌌 Centralize +Manage your Application Logic in a central place outside any UI-Framework. +This makes your code more decoupled, portable, and above all, easily testable. -#### ⛳️ Centralize -Manage your Application Logic outside of any UI-Framework in a central place. -This makes your code more decoupled, portable, and above all, easily testable. +### 🎯 Easy to Use +Learn the powerful tools of AgileTs in a short amount of time. +A good place to start is in our [documentation](https://agile-ts.org/docs). -#### πŸƒ Lightweight -Agile has an unpacked size of [52.7kB](https://bundlephobia.com/result?p=@agile-ts/core@0.0.6) +### πŸƒ Lightweight +AgileTs has an unpacked size of [52.7kB](https://bundlephobia.com/result?p=@agile-ts/core@0.0.6) and [0 dependencies](https://www.npmjs.com/package/@agile-ts/core). -## ⬇️ Installation -``` -npm install @agile-ts/core -``` -To use Agile we have to install the _core_ package, it's the brain and handles your States, Collections, ..
-``` -npm install @agile-ts/react -``` -In addition, we need to install a _fitting integration_ for the Framework we are using.. in my case [React](https://www.npmjs.com/package/@agile-ts/react). -## πŸ“„ Documentation -The Agile Docs are located [here](https://agile-ts.org/docs/) +
+Installation +To use AgileTs properly, in an UI-Framework we have to install 2 packages. + +- The _Core Package_, which is the brain of AgileTs and handles your States, Collections, .. + ``` + npm install @agile-ts/core + ``` + +- A _fitting integration_ for the UI-Framework you are using.. in my case [React](https://www.npmjs.com/package/@agile-ts/react). + ``` + npm install @agile-ts/react + ``` + + +
+ + +
+Documentation + +If AgileTs sounds interesting to you and you want to find out more. +Checkout our **[docs](https://agile-ts.org/docs/)**. +If you have any questions don't mind joining our [Discord Community](https://discord.gg/FTqeMNCxw7). + + +
+ + +
+Contribute + +Get a part of AgileTs and start contributing. To find out more read the [CONTRIBUTING.md](./CONTRIBUTING.md). + + +
+ + +
+Packages of Agile -## πŸ—‚ Packages of Agile | Name | Latest Version | Description | | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | | [@agile-ts/core](/packages/core) | [![badge](https://img.shields.io/npm/v/@agile-ts/core.svg?style=flat-square)](https://www.npmjs.com/package/@agile-ts/core) | Brain of Agile | @@ -113,9 +150,10 @@ The Agile Docs are located [here](https://agile-ts.org/docs/) | [@agile-ts/multieditor](/packages/multieditor) | [![badge](https://img.shields.io/npm/v/@agile-ts/multieditor.svg?style=flat-square)](https://www.npmjs.com/package/@agile-ts/multieditor) | Simple Form Manager | -## πŸ‘¨β€πŸ’» Contribute -Feel free to contribute +
+ +
+Packages of Agile -## 🌠 Credits AgileTs is inspired by [PulseJs](https://github.com/pulse-framework/pulse) diff --git a/static/contribute_header.png b/static/contribute_header.png new file mode 100644 index 00000000..03baada3 Binary files /dev/null and b/static/contribute_header.png differ diff --git a/static/credits_header.png b/static/credits_header.png new file mode 100644 index 00000000..e1ade96e Binary files /dev/null and b/static/credits_header.png differ diff --git a/static/documentation_header.png b/static/documentation_header.png new file mode 100644 index 00000000..269172a1 Binary files /dev/null and b/static/documentation_header.png differ diff --git a/static/how_to_create_state_header.png b/static/how_to_create_state_header.png new file mode 100644 index 00000000..67b29ca2 Binary files /dev/null and b/static/how_to_create_state_header.png differ diff --git a/static/installation_header.png b/static/installation_header.png new file mode 100644 index 00000000..d804d509 Binary files /dev/null and b/static/installation_header.png differ diff --git a/static/packages_of_agile.png b/static/packages_of_agile.png new file mode 100644 index 00000000..af681711 Binary files /dev/null and b/static/packages_of_agile.png differ diff --git a/static/why_should_i_use_agile.png b/static/why_should_i_use_agile.png new file mode 100644 index 00000000..1691ae50 Binary files /dev/null and b/static/why_should_i_use_agile.png differ