Mantra blog

Mantra is a culture of software development

Why Mantra development principles build big and complex applications with minimal technical debt

08-Mar-2022
A  A  A 

This is a happy week for Mantra team, cause finally, after working hard to launch a version to run Mantra applications in production, this release is already published (currently, 1.2.2).

Yes, I know, there many others projects called frameworks, specially in javascript (for UI and for backends), and all of them have their space.

Then, which is the space of Mantra?

Mantra follows a number of design principles, described at Mantra Whitepaper you can download and read, so that we can write applications that will evolve considerably in the furture, with changes we cannot event imagine.

Mantra project is composed of small pieces of code, encapsulated in components: small, easy to read, with only one purpose, with single responsabilities.

All in a Mantra project remembers to S.O.L.I.D. and agile principles.

But Mantra comes many other features, because Mantra has been written and its being improved by developers with enough experience after working for years in big, complex and high performance projects.

We know perfectly how technical debt is generated, how difficult is to test anything if all code stuff is too coupled: Mantra project, following Mantra principles, is exactly the opposite to monolithics applications...

Some basic features of Mantra:

  • If needed, a number of differents data providers can be used transparently in the same project.

  • A Mantra project defines a number of differents related applications.

  • All Mantra code resides in components, that, following the principles, are reusable in other projects.

  • You can build any kind of application with Mantra, but its design allows high performance applications to be deployed in differents scenarios (single server, cloud, hybrid, etc.).

  • Components doesn't known anything about how data is persisted.

And tens of other main features.

But Mantra is much more than other software stuff to build secured applications in the top of it: Mantra, and this site, offers a number of incresing components and projects you can use in your own projects, given that 50%/60% or any project shares common functionality. Reusability is a concept in which Mantra resides.

In the time of writting this, Mantra has almost 3 years, but now is when it is launched so that any developer can use it freely and learn good development principles because Mantra forces you to do software in the right way.

One of my goal when releasing Mantra in its current state, is that we can develop projects easily (thus, more competitive), with minimal technical debt and high flexibily at the same time, with minimal frictions in migrations and high reusability in mind.

Mantra requires you to change your mind paradigm about how high quality software should be built. Each one of Mantra principles have deep impact in the maintenability and ease of evolution of a Mantra project.

But, how to start with Mantra?

Here some resources as first steps:

And, for last, we'll publish weekly new components and projects to start with in our Mantra site repository. As Mantra CTO and as developer for 25 years, I promise that in less than a week, you can build your own first Mantra application.

Sincerely, Rafael Gómez Blanes (Mantra CTO and developer).