Why architecture is important
Every day, in every project we use and reuse code (libraries, packages, modules, APIs, etc). These building blocks help us be more productive and help us create something of greater value. We expect these blocks to provide stability and predictability. We do not want to think about how they work. We want them to do their job efficiently and consistently. And we can easily recognize when they are architected/designed in a good way, and it hurts when they are not. Often we are "sold" on some library only by scanning the examples and seeing how straightforward they are.
Why I made Bear Framework
Almost 9 years ago (2010) I started working on a website creation service called Alle.bg. Clients liked it very early on and that motivated me to make improvements regularly. A couple of years later Bear CMS was born. As you can imagine these are not small projects and require many components to operate seamlessly. Some of these components (let's call them services) output HTML code, others perform background tasks. Some handle API request, others make API calls. Some resize and optimize images, others provide SSL certificates. As every service evolved, I've started to see similarities. I've started to see how a concept from one service can be beneficial for another. I've just needed something to help me make them more efficiently. So on January 2016, I've published the initial release of Bear Framework. From day 1 it provided some awesome functionality (data storage, cache, logs, assets helpers, etc.) that radically improved the projects I was working on. As the projects evolved they pushed me to simplify and improve the framework, and 3 years later I am really happy with the results.
Why it took so long?
Some say mastery requires 10,000 hours. Bear Framework took 25,000+ hours (almost 3 years) of running web applications and services at a high scale at production environments. During that time the main requirements of the framework were to provide a stable foundation and common tools for the projects to grow. For me, it does not matter if the version is called v0.5, v0.10 or v1.0. I value the benefits it brings. And now, I'm finally confident that Bear Framework brings these benefits in a well-designed package.
Why you should you try Bear Framework
I believe a simple, easy to use and performant framework like Bear Framework can help you achieve more. It can support your small hobby/school projects and global high-traffic websites. It can teach you new concepts (like OOP, caching, events, etc.). It can be used for websites, console applications, and APIs. And the best thing is that addons support is in the Bear Framework's core. With this strong foundation, the sky is the limit.
There is more ahead
I'm excited to share version 1.0 with you. I'll be more than happy to learn that it's useful for you too. I'll continue working on improvements, optimizations, and addons and hope you too join the journey.
I would like to invite you to check the documentation and get started with your first Bear Framework application.