Building CRUD apps has never been so fast.

With Internal, you can connect PostgreSQL and build CRUD apps in minutes—to create, read, update, and delete data. Internal comes out-of-the-box with everything you need to build great CRUD apps for PostgreSQL including components (e.g. tables, buttons, forms), CRUD Functions, and granular permissions.
Out-of-the-Box Components for PostgreSQL
Internal provides a variety of components that you can simply drag and drop onto your Space to start designing your CRUD app. These components include tables, buttons, forms, dropdowns, images, CSV uploads, and more:

Internal’s app builder is easy to use, and doesn’t require SQL or code— although you can always use code and SQL if you want! Here’s what building a PostgreSQL CRUD app feels like with Internal:

CRUD Functions for PostgreSQL
As soon as you connect PostgreSQL, Internal automatically generates List, Get, Update, Insert, and Delete functions for each table in your database. These Functions can be used with Internal’s components to create a CRUD app quickly.
No need to write any SQL. All you have to do is choose a component (such as a table or a button) and a Function to display or modify data from PostgreSQL.
Custom CRUD Functions for PostgreSQL
If you want to join multiple tables, run a stored procedure, or execute other complex SQL operations, you can use Internal’s Function Editor to create a custom PostgreSQL Function. Internal supports creating several different types of custom PostgreSQL Functions:

Select Functions
This type of function is used to read data from your PostgreSQL database. Enter a SQL query to create your function. When you create a Select function, Internal will automatically include filtering and pagination. You don't have to do anything else to configure that.
Insert, Update, Delete Functions
Use an Insert Function to create new records in a PostgreSQL database and an Update Function to update records in your PostgreSQL database. You’ll use Internal’s query builder to quickly create these custom Functions.
Raw SQL Exec
This type of function can be used to run custom insert, update, and delete queries as well as Stored Procedures in your PostgreSQL database.
Raw SQL Query
This type of function can be used to run custom queries that return data from your PostgreSQL database.
SQL Params
When you’re creating custom CRUD Functions for PostgreSQL, you can also add SQL Parameters to create variable inputs that can be used by your CRUD app. Internal uses the same syntax for parameters as SQL function arguments: $n. $1 refers to the first argument, $2 to the second, and so on.

Granular Permissions for your PostgreSQL CRUD Apps
Internal comes out-of-the-box with field-level permissions that can be applied across all your PostgreSQL CRUD apps. For example, if you create a CRUD app for editing your database data, you can invite your IT manager and allow them to view and edit all fields. You can also invite your operations team and allow them to view and edit a subset of the fields in your CRUD app.
Additional Out of the Box Features for PostgreSQL CRUD Apps
Internal also comes with 2FA, Azure AD support, environments (e.g. staging and production), usage history, version history, and more. These features help keep your PostgreSQL data protected, allow you to test your app properly, and let you revert changes to the app as needed.
And if you aren’t an Internal customer, we invite you to sign up for an account and see what you can build!