The topic of combining various projects on one engine has been discussed from different perspectives and for various reasons. As someone with multiple projects ranging from commercial to self-written CMSs, I believe it is important to approach this as a user rather than solely as a developer. The aim is to create an engine that combines all existing projects while also being suitable for new ones. Third-party developers as well as myself would be involved in creating this engine.
Due to the vast diversity of projects and end-users, we require an engine that has multilingualism, multidomain functionality, and multi-locality capabilities. Are there any existing engines that meet these requirements?
I have been recommended WordPress and Bitrix, but I have concerns about their suitability, correctness of multilingualism, and cost-effectiveness. As a result, I think it would be necessary to invest in writing our own engine that meets our specific requirements. These requirements include multilingualism incorporated into the core, deep modularity, deep localization, API for interaction, and the engine meeting modern requirements such as minimal load on hosting, fast work, security, and SEO optimization.
While I have found some interesting open source projects, I am not confident in my ability to properly compare their performances and other parameters. Additionally, some projects are abandoned and not maintained. Do you have any advice on what structure to build or what developments to take as a basis? Would anyone be interested in joining as a hired programmer or partner in this project?
In my opinion, creating a new engine would be reinventing the wheel. There are established systems like Bitrix, Drupal, and WordPress that are widely used and trusted by users. If someone specifically wants to use Bitrix, why would they opt for something else?
The question then becomes: how can a new engine be better than these established systems? However, more flexibility means more files, more code, and more difficulty in maintaining the system. It is also unlikely that a new system could fully replicate all of the functionality of Bitrix.
Another potential approach could be to develop a cloud-based product that could be offered as a service. However, this would require a significant investment of time, money, and resources. Additionally, both control systems and plugins for them are constantly evolving, so creating a new global product would not be a quick or easy process. The question remains whether such an investment would pay off in the end.
Creating a new engine is a challenging endeavor, especially since it requires a dedicated team to continue its development. However, what happens if the programmer decides to leave or become unavailable? It can be difficult to find someone to finish its development, and established companies may try to acquire the engine or overcharge for their services.
This issue is not unique to individual developers; even large corporations like Electronic Arts have struggled with it. They wanted to create all their games on an in-house engine, but they didn't have enough specialists to handle all the projects. Whenever someone left, it would cause a lot of problems, and they eventually abandoned the idea.
Therefore, it may be expensive to hire and maintain a dedicated team of programmers on a long-term basis. Even if you do, there is always a risk associated with the project's longevity, as unexpected issues could arise that would require more investment and resources.
Developing your own engine is a challenging and time-consuming task that requires constant maintenance to correct errors and shortcomings. In comparison, popular CMS solutions have an advantage with their broad capabilities, ease of modification, and extensive plugin support. Although hand-written code provides greater freedom and creativity, automatically generated code prevents common manual errors.
Ready-made CMS solutions offer automation of routine processes and ease of use, allowing non-programmers to easily create and manage web pages. However, free CMS solutions are more prone to virus attacks due to their open code availability, so it is important to regularly update the CMS and check for malicious code.
In summary, while developing a custom CMS may seem appealing, it is more practical and effective to use an established CMS solution. The cost and effort of developing a custom solution outweigh the benefits, as modern CMS solutions already satisfy the needs of most clients.
The goal of combining multiple projects onto one engine is ambitious and can bring significant benefits if implemented effectively. However, it also comes with technical and architectural challenges that need to be carefully addressed.
When considering existing engines or platforms to serve as the foundation for your project, it's essential to evaluate their flexibility, extensibility, and performance. While WordPress and Bitrix are popular choices, their suitability for combining diverse projects can be limited. WordPress, for example, has multilingual plugins and themes, but it may not offer the deep modularity and localization capabilities you seek without significant customization.
One approach to building a custom engine that meets your specific requirements is to leverage existing open-source frameworks like Laravel or Symfony as the underlying architecture. These frameworks provide robust foundations for building modular, multilingual applications and can be extended to accommodate various project types. By defining a set of core APIs for interaction and establishing clear guidelines for module development, you can create a framework that allows third-party developers to contribute to the ecosystem effectively.
In terms of finding the right talent for this ambitious project, reaching out to the open-source community and professional networks can be valuable. Many developers and engineers are passionate about contributing to innovative projects, especially ones that embrace modern requirements like minimal hosting load, speed, security, and SEO optimization. A clear articulation of the project vision and its potential impact can attract like-minded professionals who may be interested in joining as hired programmers or partners.
In addition to technical considerations, it's crucial to address the financial aspects of the project. Involving a financier or a banker in the early stages can help in outlining the budget, managing costs, and potentially securing investment if needed. A well-structured financial plan can ensure the sustainability and success of the project in the long run.
Building a custom engine that combines diverse projects while incorporating multilingualism, modularity, and localization requires a strategic approach, collaboration with skilled professionals, and a deep understanding of the technical and financial landscape. If done thoughtfully, it has the potential to create a powerful and versatile platform that caters to a wide range of users and projects.