The TypeScript library to build internal tools fast
Modular components to build impressive end-to-end solutions for internal tools on top of your database, with user authentication included.

5 min
Building Blocks for Internal Tools
Leverage our suite of libraries for rapid development of internal tools.
Simplicity
Integrates in your existing codebase
Instead of combining multiple tools and managing complex production infrastructure, subZero integrates into your existing codebase and runs as part of your code.
Self-Configuration
Automatic database introspection
There is no need write custom code for each endpoint, just point subZero at your database and it will automatically introspect your schema and create a REST API for you.
Security
Built-in authentication & authorization
Complete user registration and authentication flows out of the box. To implement authorization you can rely on grants and policies from your database or specify them separately in a JSON file.
No Lock-In
Standardized API format
subZero's API format is compatible with PostgREST and GoTrue, so you can use the open-source client libraries and tools in your frontend code.
Adaptive UI
Automatic Interface Generation
Complete auto-generated CRUD interfaces using React-Admin, covering 80% of typical use cases. Seamless adaptation ensures no code changes when the database schema evolves. The rest is fully customizable.
Productivity
Rapid Development
The automatic creation of APIs and UIs reduces manual coding, allowing for rapid tool creation and faster project timelines.
Built for developers
Build more while worrying less. Reduce errors and boosts productivity.
Seamless Backend Integration
Unlike competing products that require your code to adapt to their framework (and lock you into their SaaS), subZero, as a library, seamlessly integrates into your existing Node, Express, or NextJs backend. It becomes an integral part of your codebase, giving you control over how your product is built.
import {auth} from '@subzerocloud/auth';
import {rest} from '@subzerocloud/rest';
//...
const app = express();
app.use('/auth', auth);
app.use('/rest', rest(['public']));
//...
app.listen(3000, () => console.log('Listening on port 3000'));
Streamlined Frontend Development
While the choice of frontend framework ultimately lies in your hands, subZero has been fine-tuned to take full advantage of React and React-Admin. This combination enables an automated, efficient, and superior frontend generation.
import {loadSchema} from '@subzerocloud/ra-subzero';
//...
useEffect(() => { loadSchema(client).then(schema => setSchema(schema));}, []);
//...
<Admin>
{Object.keys(schema).map(model => {
return <Resource key={model} name={model} /* ... */ />
})}
</Admin>
Comprehensive and Versatile Security
Secure your application with a wide array of authentication methods tailored to your needs.
grant select (id, name) on customers to employee;
-- filter customers to only those belonging to the current user
create policy 'Access to own customers'
on customers to employee
using (account_manager_id = auth.uid()) ;
Advanced Access Controls
Granularly control what users can access by leveraging your database permissions system (grants and row level security). For databases without these features, subZero provides an equivalent external configuration option.
email: 'alice@email.com',
password: 'secret-password'
});
client.auth.signInWithOtp({email: 'alice@email.com'});
client.auth.signInWithOAuth({provider: 'google'});
client.auth.signInWithSSO({domain: 'company.com'});
SAML SSO, 2FA, and More
subZero offers versatile authentication with SAML SSO, 2FA, and multiple sign-in options, including Google, Okta, and traditional email/password. It supports OAuth flows and ensures high security standards for your application.
Simplify your infrastructure.
Eliminate countless services that need to be managed and maintained.
Simplicity
All you need is your database and a way to run JavaScript.
Other solutions require deploying multiple services or lock you into a specific SaaS. subZero provides all the benefits of auto-generated APIs without the hassle of managing complex backend infrastructure.
No Lock-In
You can use subZero with any database, on any platform.
By providing a clean interface consisting of pure functions, our library can be used on any platform with a JavaScript runtime and any PostgreSQL/MySql/SQLite/ClickHouse compatible database.
Zero-Dependency
Almost a full backend in just 322 kB package.
With such a small footprint, our library can be used even in the most resource-constrained environments. Now your entire backend can fit into a single Cloudflare worker which has a 1MB limit.
Easy deployment on these platforms
Less Code,
More Capabilities
We've taken care of the heavy lifting for you. Connect to your database, subZero will understand its structure, and create an API without extensive coding. The system communicates available resources to the frontend based on the database schema, enabling automatic creation of complete CRUD interfaces. No need to modify code when the database schema changes - everything works seamlessly. Focus on what matters: building amazing applications.

Begin crafting your internal tool in less than 10 minutes.
Experience the simplicity, speed, and power of subZero firsthand and redefine your development process.
