Get started

Overview

subZero is a collection of libraries that make it easy to build REST APIs and UIs for internal tools (Enterprise B2B apps) on top of your databases.

While most of the documentation here focuses on the TypeScript / Node.js ecosystems, for the libraries used on the backend (REST, Auth) we provide bindings for other languages (Java, Rust, C).

Here are the core libraries:

  • REST - Expose a PostgREST compatible REST API based on your database schema. You can think of this library as "Embedded PostgREST" with support for more databases and additional features like analytical queries
  • Auth - Expose a GoTrue compatible authentication service
  • UI Components - A set of React Admin components that enable automatic UI creation based on database schema introspection. For example you can get automatically generated lists (with filtering, sorting, pagination), create/edit forms, etc. for all your models exposed by the REST api.
  • Scaffolding - A CLI tool that will generate the necessary files to get you started with a complete project that includes the REST API, authentication service and UI all wired together. The development experience is manage by Vite so you get instant feedback when you make changes. The backend server is Express that you can customize as needed.

While you can use the low level functionality of these libraries individually in your code, we recommend using the scaffolding package what will generate a complete project for you.

The end result is a simple express server (~ 200 LOC) that provides a powerful REST API and authentication service out of the box that you can customize as needed.

The UI is a React (Admin) application that talks to the express server and provides a complete CRUD interface for all your models which you can customize as needed (mostly by creating better looking custom Show components).

The experience in the first 5 minutes of creating a new project is similar to Django Admin but without writing a single line of code (models are inferred from the database schema on the fly) while in the later stages you can use the full power of React / React Admin / Tailwind CSS to customize the UI as needed while being able to rely on the automatic REST API to handle all your data fetching and user authentication needs.