Open source application development
Today, both public and enterprise applications primarily operate through the web. Whether for content management, business presentation, social interaction, or heavy applications formerly installed on personal computers (such as Office or Adobe suites), and particularly in the case we are addressing here — enterprise applications — the capabilities of web browsers, coupled with the flexible management of web applications compared to their desktop counterparts, lead to the majority of these use cases being developed, at least in part, for the web.
In the context of internal corporate applications, whether they involve data collection, simple digitization of paper processes, or the consolidation of previously scattered content across the IT landscape, a company needs digitization to respond in a modern and flexible manner to its functional needs.
Assuming that no “ready-to-integrate” tool perfectly meets a raised functional need, the company will then need to call upon its own developers or external ones to create a “custom-made” solution to address its specific challenges.
The Custom-Made Ocean
The reality is that when the first application is developed, there’s no issue; you work with the technologies known to the existing developers. However, when a second application needs development, if not done by the same people, the developers in place at that time may tend to opt for technologies they are familiar with, sometimes different from those used initially. After developing around the thirtieth application in this way, you end up with an IT landscape where many technologies collide, requiring a diverse set of skills for maintenance.
Get KLANIK’s stories in your inbox
Join Medium for free to get updates from this writer.
For this reason, from the beginning of internal application development, it is essential to discuss and decide on a technical stack that will form the basis for all developments. This could be a set of languages, technologies, or tools used for all application developments or their interaction. The goal is for all applications to be based on a common foundation, allowing them to be maintained and taken over by the same teams.
Another objective is to avoid having the same discussions over and over with each new development. Indeed, if no common technical base has been decided before the development of the first applications, teams working in parallel on multiple applications will need to have parallel discussions to define the stack for their development. Over time and on an enterprise scale, this would lead to a loss of time, coherence, and therefore money.
The Mountain of Solutions
In this series of articles, I would like to discuss several solutions that we ourselves have studied in developing the technical stack used for our internal projects.
These solutions all share common traits — they are open-source, self-hostable, easy to grasp, and all facilitate the acceleration of application development by out-of-the-box handling of a significant portion of the “common” needs of your application, whether it is perfectly standard or addresses advanced requirements.
Some of these solutions are services designed to accelerate development by handling needs such as user authentication, authorization, API engines, etc. Others focus more on manipulating data from various sources or automating technical or business processes.
This article is brought to you by Julien Pontillo | Consultant KLANIK






