Component-based software engineering is a reusability-focused approach to defining and implementing individual software pieces that ultimately comprise a system.

The idea that software can be built from premade components was first theorized in 1968 and has since become the norm. Nowadays, nearly every software is created out of individual components.

What is a component?

A component is a block of programming that, when combined with other components, forms an application. A component can be a checkbox, a form, a button, an image, or anything else that comprises a piece of an application. A component itself is made up of modules or functions that perform specific actions.

A module is a piece of a component, which is a piece of a system or application.

Using components in Internal

Internal’s app-building software follows this same ideology. Application components are readily available and map to functions that auto-generate once a data source is connected.

Some of Internal's premade components.
Some pre-made components in Internal

Components are very easy to use in Internal, and can be connected to data and execute functions without any code or SQL. Of course, users who want to write their own code can do so as well.

Component examples


A list of buttons in Internal
A list of in-line buttons in Internal

Buttons are configurable components that perform an action when clicked.

Buttons can perform functions like calling APIs, updating data, inserting new data, and so on. They can also be added in-line to a table, detail view, and card list (as a parent component), and will be automatically displayed for each record in the parent component.


A chart is a custom way of visualizing data. Internal currently includes bar, line, and pie charts.

A chart dynamically filtering data by a selected row
A chart dynamically filtering data by a selected row

Chart components connect to data sources and can be grouped and displayed based on pre-existing values like count or sum, or by any custom measures.

Also, chart X-axes can now be grouped by multiple time parameters. Check out the recent update!


A dropdown is a component that saves space in an application by listing items vertically once the dropdown menu is selected.

Using a form with a data source of company records can allow users to quickly search for company IDs per employees, for instance.

Dropdown menus can be populated with an existing list of strings, or dynamically with a function. If an HR application lists employees in a specific department, the dropdown menu connects to a datasource of all employee records, but filters based on other criteria to only display the pertinent values.


A form component provides a way for users to view and manipulate multiple data fields with user input, and are a key part of many internal tools.

Upon submission, a form performs functions like creating a data record, updating an existing record, calling an API, or any other custom function.

Creating a form that will allow your business to take orders over the phone
Creating a form that will allow your business to take orders over the phone

Getting started

This is just a handful of Internal’s available components. For further reading, or to see the full list, we recommend checking out our components documentation.