Skip to content
This repository was archived by the owner on Feb 15, 2025. It is now read-only.

Commit 8340d54

Browse files
committed
Added creation of AgileTs part
1 parent 8599973 commit 8340d54

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/main/Introduction.md

+40
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,46 @@ If you find issues with the documentation or have suggestions on how to improve
163163
general, please [file an issue](https://github.com/agile/agile-ts/issues) for us or join
164164
our [Discord Community](https://discord.gg/T9GzreAwPH).
165165

166+
## 🌏 Creation of AgileTs
167+
168+
After exploring the many options for Javascript State libraries, including Redux.
169+
I felt like I need a simpler, more straightforward solution.
170+
So I started searching for Redux alternatives and accidentally stumbled across a stream from [@jamiepine](https://twitter.com/jamiepine).
171+
Jamie was using an interesting approach of State Management which was more modular and flexible, called PulseJs.
172+
I instantly fell in love with the syntax of this framework.
173+
At this point (spring 2020) it wasn't officially released and had no documentation.
174+
But I tried to figure out how to use it anyway, and after some painful hours, I got it to work in my React application.
175+
To save others this time, I decided to write a small [pre-documentation](https://www.notion.so/bennoworkspace/Pulse-v3-No-official-Docs-4e92e8d02dd3423582fa95072806cab6) for PulseJs.
176+
Unfortunately, this documentation didn't make PulseJs more stable, and it remained very buggy.
177+
So I waited and waited until summer where still no stable version of PulseJs was released.
178+
In July, I decided to contribute to PulseJs, in order to help to stabilize the framework faster.
179+
But before I could contribute, I had to figure out how PulseJs works internally.
180+
After hours, I still couldn't figure out how it works. This was due to the fact that I wasn't very experienced in Typescript,
181+
and the codebase was pretty messy (no comments, variables called x, a, b, ..).
182+
In order to change that, I rewrote PulseJs from scratch (in a separate project)
183+
and after a while, I got the hang and figured out how PulseJs works internally.
184+
Now that I know how it works, I could finally contribute to PulseJs. My [first contribution](https://github.com/pulse-framework/pulse/commits?author=bennodev19) was on the 16th August 2020,
185+
where I refactored the `PulseHOC`.
186+
At the end of August, PulseJs was moving further and further away from my idea of an ideal State Management Framework.
187+
Mainly because of the introduction of the `Pulse.Core`,
188+
which more or less forced you to define all States, Actions in a single object called `core`
189+
and didn't work correctly at all.
190+
I wouldn't say I liked that behavior since I mainly switched to PulseJs in order not to define all my States in a single object.
191+
And I hadn't seen fit to rewrite my entire global State Management Logic of my applications to use the latest stable version of PulseJs.
192+
Another reason I turned away, was that some of my changes never got merged into the `master`. For instance, I fixed an annoying usePulse type issue,
193+
and 8 months later, it is still not in the `master`. Why should I contribute if my changes will never be in the release version?
194+
Luckily I had the refactored PulseJs lying around, which I created to learn how PulseJs works internally and released it as an own framework called
195+
[`agile-architecture`](https://www.npmjs.com/package/agile-architecture).
196+
Agile-Architecture was at that point just the old refactored PulseJs without the `Pulse.Core`.
197+
I liked the old PulseJs more than the new PulseJs, so I stuck to my version of PulseJs.
198+
Now that I had my own State Management Framework, I adapted it to my needs and optimized it.
199+
Over time AgileTs has evolved away from PulseJs and can be seen as a standalone state management framework.
200+
Today AgileTs has only a similar syntax to PulseJs. Internal, it works entirely different.
201+
202+
Conclusion: The idea of AgileTs is based on PulseJs, and I would have loved to continue working on PulseJs.
203+
But the organisation was a mess, and I wasn't following the same vision anymore.
204+
Therefore, I created AgileTs. To make the things better that Pulse wasn't able to accomplish.
205+
166206
## 🎉 Credits
167207

168208
AgileTs is inspired by MVVM frameworks like [MobX](https://mobx.js.org/README.html)

0 commit comments

Comments
 (0)