We use NextJS 14, which is a React based framework.

Dashboard listing all the tools in a project

Example of a tool

A single project can have multiple tools, each tool can be thought of as a separate mini-app within the project.

The entire project is deployed at once, you can configure user permissions for each of the tools from your organization dashboard.

Directory Structure

We follow a file based routing system, where each directory in the apps/tools directory is a separate tool. All pages, routes and actions for a tool are placed in the same directory. This is to make sure that no HTTP request can be made to a tool for which the user does not have permission.

To create a new tool, you can start by creating a new directory within the apps/tools directory, following this structure: apps/tools/<tool-name>. Inside this new directory, add a file named page.tsx that includes a default export of a React component. Alternatively, you can utilize the VSCode extension to create a new tool.