In our digital agency, our mission is clear. Not only to meet our client’s expectations but to consistently exceed them. The majority of our projects involve crafting user-facing applications, where a stunning user interface and seamless communication with our flawless backend solution is essential. In our work, we consider more than just technical aspects. It’s about understanding our clients and their resources.
As we develop apps with dynamic content, the importance of effective application data management becomes obvious. This leads us to make decisions like choosing between a third-party tool or developing a custom CMS solution. In this blog post, we will dive into custom solution challenges as well as what we gain when using a third-party tool.
Challenge of Custom Solution
If you decide to proceed with a custom CMS solution, it’s essential to understand that you will develop a completely new project, starting from scratch. It is not just about displaying the data you have in the database. It’s crucial to follow the entire project lifecycle process.
Firstly, you’ll need to gather and define specific requirements that the CMS should meet. Followed by multiple iterations of the design process that shape how the custom solution will look and work. The next step involves setting up both the frontend and backend teams. The frontend team focuses on the user interface to be aligned with the desired design and user experience. Both teams must make strategic decisions regarding their codebase architecture and select the most suitable technology stack. Backend developers concentrate on building the server-side solution which handles data storage, retrieval and communication with the frontend via an API. It’s also crucial to highlight the DevOps team’s role in ensuring the development process runs smoothly. Finally, once you have something to test, it should undergo the complete testing process.
It’s worth noting that building a custom CMS solution is like creating a completely new application which must undergo the same process: requirements definition, design, development and later maintenance. Personally, I think that treating the development of custom CMS solutions with the same level of importance as the main user-facing application is the key to success. However, this decision should be perfectly aligned with the known resources, especially the budget. In the worst-case scenario, when the implementation of a custom solution is underestimated, it could lead to the CMS having a terrible user experience, admin users might not want to work with it and the developers could have a hard time during the maintenance.
In addition to our work with larger clients, we also frequently collaborate with smaller businesses and startups. These clients often aim to start their journeys with a minimum viable product (MVP) to attract investors for their project idea. In such cases, we also seek cost-effective solutions to meet their needs. This is where leveraging a third-party tool for the CMS becomes a beneficial choice.
One of the tools we use on client projects is Forest Admin. It is a powerful SaaS tool designed to simplify the process of managing application data and content. The Forest Admin team did a great observation of what functionality custom CMS solutions have and tried to develop the best generic solutions with user friendly interfaces. It provides all the common admin tasks such as CRUD operations, simple chart rendering, user group management, and WYSIWYG interface editor.
Forest Admin consists of:
- Admin Backend – an API solution that is generated and hosted on your server to retrieve the data for the Forest Admin UI. When running the admin backend, file
forestadmin-schema.jsonis provided to Forest Admin servers. Thus Forest Admin servers have the information on how to build the user interface.
- Forest Admin UI – a user interface to access and manage your data from your browser which is hosted on Forest Admin servers.
Forest Admin – Our Use Cases
In one of our recent projects, we integrated Forest Admin as our primary CMS solution. This enabled us to address core scenarios within our client’s back office operations. By doing so, not only we save our developers' time, but it also allowed them to focus on the main application, resulting in reduced costs for our client.
The key requirement from the back office team was to see what data our application currently holds and make limited adjustments to it when needed. Within our admin backend codebase, we specified the database entities we want to retrieve to the user interface. The Forest Admin schema file was updated and everything was ready to be served. The remaining work was easily manually configured in the Forest Admin UI. We also set up what roles can access and manipulate the data.
Within our application, several database entities contained records that the back office team didn’t need to manipulate regularly. We had two options, either let the CMS users manually apply filters on the data every time they need to work with it, or create smart segments.
Smart Segment is a subset of a collection with defined filters applied. By implementing smart segments, we enabled the back office team to instantly access the data they needed, eliminating manual repetitive work.
If you would need to interact with the data beyond basic CRUD operations, sorting, and filtering, then Forest Admin’s Smart Actions feature is an ideal solution for you. Implementation of the Smart Action adds a button visible in the Forest Admin UI that seamlessly triggers server-side logic through an API call. This feature supports 3 types of actions - single, bulk, and global actions that will be executed on all the records.
One of our tasks was to implement Smart Actions for the back office team. Within their competence, the team was responsible for reviewing user applications and deciding whether to approve or reject them. These actions involved data manipulation such as inserting records into various database entities and distributing templated emails to selected users, among other tasks.
Data visualization in Dashboards
Finally, our client expressed the need for a clear view of project performance based on specific client metrics, visualized in charts. To accomplish this, we took the initiative to create several SQL Views, and for these views to be accessible on the Forest Admin UI, we created Sequelize models within the admin backend repository. Then we configured this data to be read-only on the user interface and we had data sources ready for the desired metrics.
In this blog post, we discussed the management of your main application’s data and explored two options: implementing a custom CMS solution and the use of a third-party tool such as Forest Admin. The objective here is not to highlight a specific choice but rather to make you, the reader, aware of the existence of powerful third-party tools that can be cost-effective alternatives to custom solutions.
If you find yourself leaning towards a custom solution, it might be relevant to evaluate the costs and go through the functionality your CMS needs. In many cases, reinventing the wheel can be avoided, as approximately 80% of admin panel features are generic: list views, pagination, detail views, search, filters, CRUD operations, data import and export, permission management, and dashboards. Custom solutions may limit you to their set of features, while third-party tools, like my experience with Forest Admin, offer dedicated teams that can guide you through use cases you may not be familiar with, providing consultations to unlock full potential with their solution for your specific needs.
Adopting third-party tools can lead to cost savings, not only in the present but also in future development and maintenance. With that being said, it's important to point out that custom solutions can still be valuable in certain scenarios, particularly when unique functionality is required.