Open source · MIT license

Admin panel for
Fastify + MikroORM

Drop in a plugin. Get authentication, role-based access control, entity CRUD, and a polished UI — in minutes.

$ npm install fastify-admin coming soon

See the admin panel in action

Entities
Users
Posts
Security
Roles
Permissions
Users
Page 1 of 1

Built to give, not to sell

Free forever

MIT licensed. No tiers, no paywalls, no seats. Take it, use it, ship it — no strings attached.

Learn by doing

The source is yours to read. See how auth flows, RBAC, CRUD, and real-world Fastify plugins are built — then apply it to your own work.

Skip the boilerplate

Stop rebuilding the same admin panel for every project. One plugin install and you're done — more time for the product that actually matters.

Community driven

Built in the open, shaped by real use cases. Open issues, send PRs, share ideas — this grows with the people who use it.

Everything your admin needs

One plugin, zero boilerplate. Works with any MikroORM entity.

Authentication

Email + password login, OAuth (Google, GitHub, Microsoft), JWT session cookies, and signup flows out of the box.

Role-based access

Fine-grained per-entity permissions. Roles and permissions are seeded automatically and fully manageable in the UI.

Entity CRUD

Auto-generated list, show, edit, and create views for every MikroORM entity. Customise columns, fields, and operations per entity.

MFA support

Optional two-factor authentication via email OTP. Enable per user from the profile settings — no extra configuration.

Dark mode

Light, dark, and system-preference modes with a persistent toggle. Every component respects the active theme.

Plugin API

Standard Fastify plugin. Wraps any existing app. Fully typed — configure entity labels, icons, field order, and custom operations.

Up in five minutes

1

Install the package

Add fastify-admin to your Fastify project alongside MikroORM.

2

Register the plugin

Pass your ORM instance and optional resource configs. Everything else is handled automatically.

3

Create an admin user

Run npx create-admin once to seed your first admin account and start exploring.

4

Customise

Override labels, icons, field order, operations, and permissions per entity — all in TypeScript.

plugin registration
import { fastifyAdmin } from 'fastify-admin'
import { initORM } from './db.js'

const db = await initORM()
const orm = db.orm

await app.register(fastifyAdmin, {
  orm,
  name: 'My Admin',
  views: {
    post: {
      icon: 'FileText',
      list: { columns: ['id', 'title', 'author'] },
      edit: { fields: ['title', 'body', 'author'] },
    },
  },
})

// admin UI is now live at /

Roadmap

Planned features and improvements. Contributions welcome.

Planned

CLI (npx fastify-admin)

First-party command-line tool for scaffolding, migrations, and user management — init, migrate:up, create-admin, and more. No package manager scripts required.

Lifecycle hooks

Per-entity async hooks — beforeCreate, afterCreate, beforeUpdate, afterUpdate, beforeDelete, afterDelete — to run custom logic, validations, or side effects around every data operation.

Audit log

Built-in activity log that tracks who created, updated, or deleted every record — with timestamps and diffs.

OpenAPI & API Explorer

Auto-generated OpenAPI 3.1 spec from MikroORM entity metadata. Scalar UI embedded in the sidebar — auth pre-filled, dark mode native, request playground included.

Internationalisation (i18n)

Full UI localisation with pluggable locale files. Translate labels, messages, and validation errors into any language.

Rate limiting

Built-in rate limiting on auth endpoints — login, signup, MFA, and password reset — to prevent brute-force attacks. Configurable limits via plugin options, powered by @fastify/rate-limit.

Considering

Log monitoring integration

Ship admin activity and application logs to external monitors — Kibana, Datadog, Grafana Loki, or any OpenTelemetry-compatible sink — via a pluggable transport config.

Multi-tenancy

Isolate data per tenant with schema-level or row-level separation. Each tenant gets its own scoped view, users, and permissions.

Charts & reports

Built-in charting for entity data — bar, line, and pie charts configurable per entity. Export reports as CSV or PDF directly from the admin panel.

Custom dashboard widgets

Pluggable dashboard with stat cards, charts, and activity feeds built from your own entity data.

ORM adapters

Adapter layer to support other ORMs — Prisma, TypeORM, Drizzle — beyond the current MikroORM integration.

AI integration

Natural language search across entities, smart data summaries, anomaly detection, and a chat interface for querying your data — powered by your choice of provider (Anthropic, OpenAI).

Extendable built-in entities

Extend User, Role, and Permission with your own fields and relations without forking core entities. EntityView is already subclassable today — this brings the same flexibility to the entities themselves.

Customisable theme builder

Brand the admin panel to match your product — configure primary colours, typography, and logo via plugin options or a live theme editor, without touching any source files.

Gughanathan Mani
Gughanathan Mani — Gugu

Building fastify-admin as an open-source project. Contributions, issues, and feedback are welcome.