Internal tool platforms in 2022 — part 1

Dmitry Gorshkov (L8e)
Locomotive company blog
19 min readApr 12, 2022

by Roman Kutanov

This article is the first part of a two-part series and will cover SaaS platforms for building internal tools and admin panels. The 2nd part will cover viable open-source options. The article’s audience is anyone starting an internal tools project in a technical or PM role.

A lot is going on with internal tools builders. We see new projects appearing almost daily and software on the market getting new valuable features. It’s tough to choose the right tool. Please don’t underestimate the hardship of this task. The fundamental problem is that you don’t really know the tool before you start using it. And if you’re in a startup environment, you don’t really know how requirements will change over the next years. Internal tools projects can be incredibly fuzzy, as they follow the company’s business pivots. It’s the ambiguity of the second order. So that is why you should know your tools and don’t disregard prototyping, especially for low-code and no-code tools. Low-code and no-code tools are especially tricky in this sense. They could save you tons of time or ruin your project when you discover that the UI component is not working as you expect just before the deadline. We encourage you to speak with an expert before starting the project.

Internal tools are essential

Software is eating the world. As an industry professional, you firsthand witness the automation of more and more aspects of human activities. Mobile applications, games, internet banking, AI assistants, good old e-commerce platforms. The growing complexity of client-facing software requires more sophisticated back-office instruments.

Moreover, the software market competition is rising. As a result, you must serve your customers better, quickly fix bugs, and provide excellent support. And, of course, support is vital as a source of feedback for your app. But if your toolset sucks, feedback signals from your users become noise.

The recent dawn of new business models and technologies makes internal tools even more important:

  • The process of digitalization of old but complex business models like banking, insurance, and logistics produces more demand for good internal tools. These businesses used to be about personal connection and bespoke services that the business provides to clients. Digitalization decreases the requirement for personal 1-on-1 communication and gives users the ability for self-service. But to make it happen, internal tools have to be manageable and flexible, reduce the probability of human error, and be secure. For example, a slight error of an operator like an incorrect cross-currency conversion rate could lead to millions in losses;
  • “Uber-like” marketplace companies that connect clients to service providers through an app. For this type of business, it’s important to quickly detect and solve communications and service problems, fraud, and abuse. For a marketplace, internal tools are often more critical than client-facing apps. Quick and qualified support reaction is impossible without suitable tools.
  • The boom of AI also contributes to the rise of internal tools. From an admin panel standpoint, you may think about AI apps as a hyper-personalization of your application. Previously your applications had a fairly limited number of states, and you could quickly figure out what was going on with each user. However, there are often hundreds of interconnected parameters in an AI-powered feature. As a result, It’s not easy to figure out what’s going on just by looking at the raw data. For example, imagine you have an AI fitness trainer. (I’m waving to my friends at Palta’s Zing Coach.) You have the weight, height, age, gender, and trauma history of a user. Also, there are your AI-powered training routines. Each user has a history of app usage, what they like, and what drills were too hard or easy. Thanks to the ML part, there’s a ton of stuff going on, and it’s hard to follow. AI is not magic, and it doesn’t work perfectly, so you have to be able to correct the app behavior even more proactively.
  • Last but not least, internal software is occupying a lot of time and brainpower. Apparently, between 30% and 45% of engineering time is spent on internal software. This adds up to millions of annual investments even for small and medium-sized companies. If things can be improved even slightly, you get a noticeable boost to unit economics.

Why now the theme of internal tools is underserved

Traditionally companies pay less attention to internal tools as they understandably want to put customers first. The customer-facing apps get the attention and the budgets.

So the internal engineering team usually builds the internal tools quick and dirty, using familiar open-source tools. Typical examples are Django Admin for python developers or Rails Admin for Ruby on Rails developers. Nothing wrong with this approach in the early stages of your software project. But as the business gets some traction and success, issues start to stack up. Let’s outline some of them:

  • Programmers create most admin panels for programmers. Usually, frontend technologies behind such libraries are outdated as they need to be tightly coupled with the corresponding framework. As a result, they typically lack good UX.
  • Security, compliance, and human error prevention are crucial in the modern world. But in this case, it gets a low priority;
  • Non-programmers who use internal tools, usually have less influence on decision making. So some serious problems with internal tools are getting less attention than they deserve.

Let’s illustrate the problems with a remarkable example.

In 2020 Citibank sent its clients a $1 billion wire by mistake. Even the six eyes policy failed, meaning that three employees should approve such transactions. The correct state of the form would be three boxes checked “FRONT, FUND, and PRINCIPAL.” Unfortunately, all three employees were happy with only the “PRINCIPAL” checkbox. I can’t blame them because this UI is bad, even for a bank notorious for its bad UI.

Criteria

UI features

Right now, most builders concentrate on user interface aspects. We believe that will likely change, and data management solutions will become a core part of admin tools.

Roughly speaking, there are three categories of tools on the market: table-centric, form-centric and universal. Table-centric tools are primarily focused on working with data in a table. It’s convenient for many applications with well-structured data, like credit card applications. On the other hand, if you have different types of social media posts, it is still possible to represent them in the form of a table, but it’s not convenient. Universal systems are trying to combine two approaches, usually representing data in tables and giving you the ability to view details in the side panel if you want to look at some specific record. Here’s an example made with Retool:

Performance

As we said earlier, modern internal tool builders pay much attention to flexible and rich interfaces. To make it possible, most of them utilize fat client-side frameworks like React. Furthermore, some instruments allow you to use custom scripts. As a result, a complex panel’s interface may have dozens of APIs.

Data sources and connectors

Modern software is interconnected. There are plenty of online services you can take advantage of for card processing services like Stripe, SaaS databases like Firebase, and customer relationship platforms like Intercom. And, of course, you want to manage your system as a whole, not switching between admin panels all the time.

First, the basics. Most internal tool platforms push to use database connectors to work with internal data. We believe this is an anti-pattern, but you may try this approach if the system is not mission-critical. As a compromise, you may also set up a read-only replica of your database and use it. Otherwise, we strongly object to this approach.

Besides just having a connector, you probably also want this connector to give you specific abilities. Most often, abilities to search and filter information. For example, a good admin panel allows you to represent a subset of the data according to some entity’s features presented or absent. It may be a full-text search through some database fields; it may be a filter of some inquiry predefined statuses like “Approved,” “Rejected.” And in best cases, everything works well together, so you can find all entities that are “Approved” and have “Dmitry Gorshkov” in the description field.

Testing and deployment practices

The modern approach to software development has standard practices like code review, code versioning, automated testing, staging, and production environments. Platform-dependent tools like Django/Rails/React Admin support these practices out of the box. They are based on popular programming frameworks, and plenty of tools are available. However, speaking about platform-independent tools, not everything in the garden is rosy. For example, these tools usually have an internal configuration format, WYSIWYG editors, and visual interfaces. So testing and deployment may become a real pain. Typical issues that may arise:

  • Your API has changed, but there is no way to sync your UI changes promptly by an automatic rollout procedure. You have to make changes and publish them manually. This significantly increases the possibility of human errors;
  • With all changes being done through a WYSIWYG UI, proper code review is not possible;
  • There is no way to perform automated testing against a non-production environment. As a result, changes regularly break the live system.

Pricing

If applicable, pricing is always one of the vital factors to consider. Most SaaS providers have at least three pricing plans with different options. Usually, the cheapest plans have flaws with security, functions like connectors to popular services, or a restricted user count.

Comparing and negotiating prices has become difficult. A lot of SaaS companies started doing “strategic pricing”, which mostly leads to table-stakes features like SSO being in the expensive tier.

Flexibility

At some point, everybody wants something special from their admin panel. For example, some custom UI controls, like a map with live vehicles or a 2d car projection, where you can mark a dent.

But not every tool is easy to customize. And for some instruments, it’s not even possible. This is not always a red flag as limited abilities sometimes come together with a streamlined interface. But you definitely should understand what you can do with a tool and what you can’t.

Security

Support more complex security procedures such as three-factor authentication, 4 eyes or 6 eyes principles, access logs, and an advanced access control list. The ability to protect the access to internal tools through IP whitelists, security tokens, and VPN access.

For some companies, it’s also crucial to have full control over the software, having it on-premise. Especially if we consider industries with mandatory security standards like government, medicine, and finance.

Learning curve

The platform may be perfect, but to understand how it works and configure it correctly, you would need a Ph.D. in computer science. If you are familiar with a related technology or framework, it’s always a big plus. How good is the documentation, are there enough examples, and how good is public and private support? The platform’s adoption level in the industry is an important factor since popular tools have large communities.

Quality

One of the critical questions, especially for low-code and no-code platforms, is how mature are they? Or maybe the tool itself is not so popular and will die in months, and you will have to migrate from a platform you invested a ton of time and resources.

Retool

https://retool.com

With 100M in funding, Retool is one of the leading internal tools builders. It’s a universal SaaS working primarily in the cloud. But on-premise installation is possible. The tool itself is heavily React-based, UI-focused, and customizable. There are 100+ standard UI components, including basics like buttons/tables, but also more advanced stuff like charts or even signature input.

The builder allows you to add and configure connectors to many popular data sources like PostgreSQL or REST and supports 3rd party interfaces like Stripe, Slack, etc. In addition, there are extensive capabilities to use custom javascript and even write custom components.

UI features

Retool has an impressive UI components library. Ready to use tools cover the following areas:

  • tables;
  • presentations elements: progress bar, video, avatars, etc.
  • buttons;
  • inputs for different types of data: text, numbers, special types;
  • dropdowns, selections, calendars;
  • containers and forms;
  • modals;

These components are well-developed with a lot of options like regex to check input, the ability to programmatically call them, hide conditions, etc. It’s possible to transform data to represent it in the interface.

Conveniently, it’s possible to organize UI components and underlying data sources modules and use them for multiple panels.

Mobile support is basic at the moment. There are mobile layout instruments, but they are not holistic.

⭐️⭐️⭐️⭐️⭐️

Performance

As the client application is pretty fat, performance may be an issue if you build a feature-rich panel. Follow the guidelines, don’t make your panel overly complex, and you will be fine.

⭐️⭐️⭐️⭐️

Data sources and connectors

Retool is one of the leaders in the segment, so has an impressive list of integrations.

However, a word of advice: before you decide to go with some connector, read the documentation and try it in the playground. There is no guarantee that it supports everything you need.

Worth mentioning that Retool, compared to competitors, is often ahead in real-world scenarios. For example, REST API support has complex authentication scenarios.

⭐️⭐️⭐️⭐️⭐️

Testing and deployment practices

Multiple environments can be set up, which is a huge help.

Great news, the automated testing is in beta.

There is internal versioning, so you can easily rollback.

⭐️⭐️⭐️⭐️

Pricing

There are two lines of plans: cloud and self-hosted.

There are three plans for the cloud version, starting from zero. The free plans allow you to test almost everything, besides some security and modules features. A 10$ per user plan looks like a good option for those who have lower security requirements. Advanced security will cost you 45$ per user. Enterprise plans are available.

⭐️⭐️⭐️⭐️

Flexibility

It’s possible to write custom components. Besides that, the tool provides extensive support for custom code: you can trigger components programmatically, transform data coming from and going to connectors, and run custom scripts on interface events. Deep-linking support allows you to direct users to a particular view state.

⭐️⭐️⭐️⭐️

Security

Security options for basic plans are limited, audit logs are available starting from 45$/user plans. If we speak about serious security, it seems like we need an on-premise installation or enterprise-level plan. Single sign-on with google is available from the start.

⭐️⭐️⭐️⭐️

Learning

The tool itself has a visual interface, but we would say that without at least very basic JavaScript skills it’s tough to get something out of Retool. If you know React, it would definitely help. Documentation is detailed, and there is a good community around the product.

Some parts are not so intuitive, better to have some web programmer onboard. For a junior programmer, I would say that implementing such a tool can be challenging, as it requires an understanding of many different aspects of the modern web. But for a middle+ specialist, Retool can save a lot of time.

⭐️⭐️⭐️⭐️

Quality

The tool is in active development, so there are some hiccups and glitches like small visual bugs. But Retool is improving fast.

⭐️⭐️⭐️⭐️

Overall

A powerful tool for many scenarios, an impressive visual editor, and many connectors. The Retool team seems to work on deployment and testing practices actively. Good documentation, community, and support.

On the other hand, tons of opportunities and a visual interface require skills to craft a good internal instrument.

Definitely an option to consider.

Internal

https://www.internal.io

Internal are universal internal tool builder with a visual editor and many connectors for getting and writing data to data sources, including 3rd party service providers. To build a tool interface, you can use 26 predefined UI components like inputs, forms, tables, and popups. In addition, about 20 data connectors allow you to work with PostgreSQL, MongoDB, Stripe, Google Spreadsheets, and other sources.

Provision is either SaaS or on-premise (if you have deep pockets).

As near as we can guess, Internal is trying to be a more user-friendly and ready-to-use instrument compared to its more complex competitors.

UI features

Internal operates spaces — a page grid where you can put components. By combining these components and connecting data sources, you create a working tool.

UI components are pretty standard: inputs, text area, tag selector, checkbox, dropdown, image.

⭐️⭐️⭐️

Performance

The tool is trying to balance being mighty and straightforward, so performance is relatively better than its more complex counterparts.

⭐️⭐️⭐️⭐️

Data sources and connectors

Internal has essential connectors. You can transform data and run functions on received data.

⭐️⭐️⭐️

Testing and deployment practices

There are different environments available where you can specify additional credentials for staging, production, and testing environment.

There is internal versioning, so you can go back in time and restore the old admin panel configuration.

For testing, as usual, you can use browser automation kits like Selenium, but again it will require some skills.

⭐️⭐️

Pricing

All the pricing plans are billed annually, which could be a big lock-in for a lot of folks**.** You can try basic functionality for free, but to have environments and versioning you must pay at least 25$/user.

⭐️⭐️

Flexibility

Flexibility is limited to basic scripting, and you can’t write any custom code.

⭐️⭐️

Security

Security options include audit logs, and access controls lists. Public single sign-on is available only for enterprise plans. Two-factor authentication starts with a 50$/user plan.

It’s possible to self-host if you splurge for the enterprise plan.

⭐️⭐️

Learning

The tool has a visual and minimalistic interface. As a result, it’s easy to learn how to use the UI toolset and do basic interfaces. The complexity of configuring connectors and writing scripts is moved to a separate section.

⭐️⭐️⭐️⭐️

Quality

There are no serious quality issues. Great job team!

⭐️⭐️⭐️⭐️

Overall

Internal gives you a tool with basic but powerful functionality. It’s much leaner but easier to master. The interface is minimal and doesn’t have panels with endless parameters.

It’s a good option for situations when you have to do things quickly, and the host system you are going to work with is not too complex. However, it is worth noting that the pricing seems a little bit steep.

ForestAdmin

https://www.forestadmin.com

ForestAdmin is a table-oriented tool for building internal tools. It takes a different approach compared to Retool and Internal.

ForrestAdmin provides libraries for popular open-source frameworks and data management libs: Django, Rails, Mongoose, and Sequelize. You have two choices: you can integrate these libraries into your host application or set up a separate application with direct access to your database. The libraries or apps create an API layer that exposes application models (instead of just data) to ForestAdmin. It is a really great approach, but it requires a good command of corresponding frameworks and increased complexity of integration in most cases.

ForestAdmin’s front-end app, that in charge of interface and permissions, is running on the cloud for non-enterprise users. So the application consists of two parts, one is under your control, the other is maintained by the ForestAdmin team.

UI features

UI wise, the tool offers you the following approach:

  • Table view of the selected model.;
  • Detailed view or summary of an individual item.

As you may see, it’s already quite different from the ‘tabula rasa’ approach of many platforms from this overview. Again, all tools are different and there is no silver bullet. Different tasks require different solutions. This approach could really shine in the case of a straightforward CRUD application.

To configure an advanced view, for example, a calendar view, you have to write code using the Ember framework. On one hand, this requires not just elementary JS skills but also significant web programming experience; on the other hand, it allows you to build functional and beautiful widgets.

There are collaborative tools like assignments and notes.

There is no real support for mobile devices.

⭐️⭐️⭐️

Performance

As the tool offers you almost a full bundle, the performance mainly depends on your host system and the resources you dedicate to your admin API.

⭐️⭐️⭐️⭐️

Data sources and connectors

Besides database connectors, there are integrations with 12 third-party tools like Stripe, Intercom, Twillio, and HubSpot. Some of the libraries support practical functions out of the box, like Stripe integration provides refund action.

⭐️⭐️⭐️⭐️

Testing and deployment practices

ForestAdmin has extensive testing and deployment capabilities. But again to gain an advantage of these capabilities you have to possess a particular skill set for programming modern web applications.

Different environments, automated testing, and built-in deployment command-line interface tools are presented.

⭐️⭐️⭐️⭐️

Pricing

As always there is a free version with 1 user and most of the features available. Paid plan starts at 30$/user for the working version, with security options like 2FA and IP whitelisting costing you 60$/user. Annual plans have a 20% discount. The Enterprise version grants you the ability to run the front-end part on-premise.

⭐️⭐️

Flexibility

There are a lot of opportunities, but most of them come with heavy coding. The visual editor is mostly used for initial configuration and views customization.

⭐️⭐️⭐️

Security

The two-part architecture where all your data is served to the browser from the app under your control could potentially increase the security level if you configure your system correctly.

⭐️⭐️⭐️⭐️

Learning

ForestAdmin has great abilities. But there are costs. To fully employ its abilities you need to possess good command of the corresponding framework/programming language. The integration with your host app in many cases could be challenging.

⭐️⭐️

Quality

As ForestAdmin is in active development and has complex architecture and from our personal experience we think that quality issues like the number of incidents are relatively higher if we compare ForestAdmin to leading tools or standard framework solutions.

⭐️⭐️⭐️

Overall

From our analysis, you may see that ForestAdmin is a powerful and very promising tool. But we think that the audience of the tool is a little bit different. You may try ForestAdmin in case your admin panel use cases are mostly CRUD operations. Or you have resources to code custom views with Ember. The tool is much more opinionated and developer-oriented. From the operator’s perspective, it’s easier to work with standardized interfaces with clear logic.

For many tools in our review, you can try to explore them yourself but in this case, we advise you to speak with your technical team. Are they happy with the tool architecture and technologies they going to use? ForestAdmin will be more fruitful for some teams than the drag-and-drop-everything internal tools builders.

Jet Admin

https://www.jetadmin.io

Jet Admin is a universal builder tool with a drag and drop interface. The tool is trying to be universal in many ways. Despite having a lot of native integrations, Jet Admin also has Jet Bridge, an open-source app for exposing your databases via an API to the JetAdmin frontend. It works in similar ways to Forest Admin’s Toolbelt and may save a lot of time.

UI features

In terms of interface building, JetAdmin offers a lot of options. There are more than 50 drag and drops UI components. The components are customizable. For the calculation of fields values, you may use built-in formulas (they resemble Excel formulas with operators like CONCAT, IF, etc.) Of course, you can use data from your data sources in calculations. There is documentation and in-place help for writing formulas.

At the moment mobile support is poor. If this is a crucial factor for you, better to choose a different tool.

There is a basic layout and branding configuration. You can make your internal tools in your colors, and place your logo on top.

Collaboration is supported by JetAdmin Workflows, where you can form a queue of tasks and assign them to your operators. You can also set rules, so some actions may be triggered only if certain workflows will be performed.

⭐️⭐️⭐️⭐️

Performance

Again, drag and drop UI, a lot of components, JS, and freedom to create are not always good for performance. Always think are you really need so many queries, data sources, data transformations. Keep performance in mind and you will probably be fine.

⭐️⭐️⭐️

Data sources and connectors

The tool allows you to connect to more than 30 data sources. The important factor — data transformations are available with JavaScript. The most basic example, you have two separate fields for First Name and Second name, and you want to have them merged.

There is also internal data storage called JetTables, which is helpful for advanced scenarios.

⭐️⭐️⭐️

Testing and deployment practices

Different environments are available.

Testing is possible with external instruments.

⭐️⭐️⭐️

Pricing

Pricing starts from 0$ for development with only one user. The plan 30$/user per month gives you all the features, except custom domain, workflows, and custom components. These are available for 60$/user per month. Annual plans give you discounted prices: 24$ and 48$ respectively.

⭐️⭐️⭐️

Flexibility

You can write custom components for JetAdmin using Web Components specification. This basically allows you to use any modern JS framework: Angular, React, etc. It’s worth mentioning that JetAdmin UI uses Angular. Web components allow you to pass input and get output to integrate your component with the JetAdmin easily.

⭐️⭐️⭐️⭐️

Security

Your browser loads the data from your data storage, so the data doesn’t go through JetAdmin servers.

The following security features are supported:

  • 2 Factor Authentication
  • DMZ and VPN support
  • IP Whitelisting

⭐️⭐️⭐️

Learning

There are a lot of educational materials and a good community around the product. Adopting the tool could be challenging, as there are many options and the interface is feature-rich. There are a lot of video guides. Users praise the tool support.

There is dedicated support for customers who hire an external JetAdmin expert.

⭐️⭐️⭐️⭐️

Quality

The tool has a solid basis, and the team is working hard to deliver you a good product.

⭐️⭐️⭐️⭐️

Overall

JetAdmin offers you a pretty solid low-code instrument. There are a lot of features that you should probably compare with your tasks and goals. If it fits you well, go ahead and try it. Learning-wise it’s perhaps not the most accessible tool to master, but you can’t compare it to custom development. Custom development will require a lot more time and resources.

General thoughts and conclusion

While working on the first part of internal tool builders, we discovered many topics and questions that we should probably cover. Your input is crucial. Please ask questions, and offer new topics and themes to cover.

This concludes part 1 of the overview. In part 2 we will cover the currently viable open-source platforms. To make sure you don’t miss it, subscribe to our newsletter here.

Roman is the CTO of Locomotive, a digital consultancy specializing in internal tools.

--

--

Dmitry Gorshkov (L8e)
Locomotive company blog

Co-founder of Locomotive, a digital consultancy focused on internal tools.