Adminizer is a framework-agnostic, open-source admin panel designed for Node.js with a powerful TypeScript backend and a dynamic React frontend. Build robust dashboards and manage your data with ease.
Everything you need to build powerful admin panels for modern applications
Works with any Node.js framework and any ORM.
Configure your admin panel at runtime without server restarts.
Built-in tools for handling temporary and disposable data.
Fine-grained permissions and roles for secure data management.
Create custom dashboards and data visualizations.
Built with ESM, TypeScript, React, Radix UI, and Tailwind CSS.
Adminizer works with any Node.js frameworks and ORMs. Perfect for kickstarting your new app, site, and backend where you need an admin panel.
Prisma, TypeORM, Sequelize, Mongoose, and more
Combine different ORMs in one project
Control access to specific model fields
🚀 Start building in minutes!
Get up and running with Adminizer in minutes
npm install adminizer
import { Adminizer } from "@adminization/adminizer";
import { SequelizeAdapter } from "@adminization/adminizer/v4/model/adapter/sequelize";
import { Sequelize, DataTypes } from "sequelize";
import http from "http";
async function start() {
// 1. Initialize Sequelize
const sequelize = new Sequelize('sqlite::memory:', { logging: false });
// 2. Define a model
const Example = sequelize.define('example', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
title: {
type: DataTypes.STRING,
allowNull: false,
},
description: {
type: DataTypes.TEXT,
},
}, {
tableName: 'examples',
timestamps: false,
});
// 3. Synchronize the database (this will create the table)
await sequelize.sync({ force: true });
// 4. Create an adapter
const sequelizeAdapter = new SequelizeAdapter({
sequelize: sequelize,
models: { example: Example },
});
// 5. Create Adminizer instance
const adminizer = new Adminizer([sequelizeAdapter]);
await adminizer.init({
routePrefix: "/adminizer",
projectName: "Adminizer with Sequelize",
dbConnection: null,
auth: false,
buildAssets: true,
});
// 6. HTTP server
const mainApp = http.createServer((req, res) => {
if (req.url.startsWith("/adminizer")) {
adminizer.app(req, res, (err) => {
if (err) {
res.writeHead(500, { 'Content-Type': 'text/plain' });
res.end('Internal Server Error');
}
});
} else {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('<h1>Welcome</h1><p>Go to <a href="/adminizer">Adminizer</a></p>');
}
});
mainApp.listen(3000, () => {
console.log('Server started: http://localhost:3000/adminizer');
});
}
start();
Be part of the open-source revolution! Join thousands of developers building the future of admin panels. Your ideas, contributions, and feedback shape Adminizer's evolution.
Contribute and report issues
Live chat and support
News and updates
Community discussions