Skip to content

Features

Everything FastAPI Admin Kit offers, in one place.

Dashboard


Core

Feature Description Link
Zero-Config Auto-Discovery Register a model, get full CRUD UI automatically Model Registration
SQLAlchemy & SQLModel Works with both ORMs out of the box Quick Start
Async-First Built for async FastAPI with AsyncSession support Quick Start
Database Support PostgreSQL, MySQL, and SQLite with auto URL normalization Configuration
Auto-Migration Automatically adds missing columns to existing tables CLI Tools
Plugin System Extend every layer (widgets, auth, routes, audit, storage) via plugins Plugins

Authentication & Security

Feature Description Link
Built-in Auth Session-based authentication with login page at /admin/login/ Auth & RBAC
Custom Auth Backend Bring your own user model and authentication logic Auth & RBAC
RBAC Role-based access control with per-model permissions (view, create, edit, delete) Auth & RBAC
Direct User Permissions Per-user permission overrides, OR'd with role permissions Auth & RBAC
Field-Level Permissions Restrict access to specific fields per role Auth & RBAC
Superuser Bypass is_superuser=True bypasses all permission checks Auth & RBAC
TOTP Two-Factor Auth QR code setup, enable/disable, backup codes via /admin/profile/2fa Auth & RBAC
CSRF Protection Signed CSRF tokens on all state-changing requests Auth & RBAC
Rate Limiting Sliding-window rate limiter on authentication endpoints Auth & RBAC
Password Hashing bcrypt with configurable rounds Auth & RBAC
Session Security Signed cookies with SameSite=Strict, Secure, and configurable TTL Configuration
Secret Key Validation Enforces minimum 32-character secret key at startup Configuration
SQL Injection Prevention Identifier validation on all raw SQL in CLI and auto-migrate Security

User Management

Feature Description Link
Default Roles SuperAdmin, Admin, Editor, Viewer seeded automatically Auth & RBAC
Custom Seed Roles Define your own roles and permissions at startup Configuration
Permission Matrix UI Visual checkbox grid for managing role permissions Auth & RBAC
User Management UI Create, edit, list, and delete admin users from the panel CLI Tools
Profile Page Users can view and edit their own profile at /admin/profile Auth & RBAC
Password Change Users can change their own password from the profile page Auth & RBAC

UI & Design

Feature Description Link
Modern UI Tailwind CSS, HTMX, and Alpine.js for a fast, responsive experience Themes & UI
Dark Mode Toggle between light and dark mode, configurable default Themes & UI
Theme Presets editorial, modern, midnight, paper, forest, minimal Themes & UI
Theme Settings Page Visual theme builder at /admin/settings/theme Themes & UI
Custom Themes Override primary colors, CSS variables, and layout settings Themes & UI
Responsive Design Mobile-friendly with collapsible sidebar Themes & UI
Shell Layout Topbar, sidebar, content area with loading bar Themes & UI
Sidebar Customization Position (left/right), style, collapse, nav groups Navigation
Table Styling Row height (compact/normal/relaxed), custom styles Themes & UI
Form Layout Single-column or two-column, configurable spacing Themes & UI
Content Width Narrow, default, or wide layout Themes & UI
Environment Badge Show "Production", "Staging", etc. with color coding Themes & UI
Flash Messages Success/error messages after operations via signed session cookie Themes & UI
Custom CSS/JS Inject inline or external CSS and JavaScript globally Themes & UI
Custom Templates Override any Jinja2 template Themes & UI
Custom Icons Material Symbols icon support throughout Themes & UI

CRUD Operations

Feature Description Link
List View Paginated table with search, filters, and bulk actions Model Registration
Create Form Auto-generated from model columns with validation Widgets & Forms
Edit Form Pre-populated form with field-level validation Widgets & Forms
Delete Confirmation dialog before deletion Inline Editing & Actions
Inline Editing Edit records directly from list view with 3-dot action menu Inline Editing & Actions
Bulk Actions Select multiple rows and apply actions (delete, custom) Inline Editing & Actions
Row Actions Per-row action menu with custom actions Inline Editing & Actions
Detail Actions Actions on detail/edit pages Inline Editing & Actions
Submit-Line Actions Actions on form submit buttons Inline Editing & Actions

Widgets (17 built-in)

Widget Description Link
TextInputWidget String/VARCHAR fields Widgets & Forms
TextareaWidget Text fields with configurable rows Widgets & Forms
NumberInputWidget Integer/Float with step and min/max Widgets & Forms
ToggleWidget Boolean toggle switch Widgets & Forms
SelectWidget Enum dropdown with choices Widgets & Forms
DatePickerWidget Date-only picker Widgets & Forms
DateTimePickerWidget DateTime picker Widgets & Forms
JsonEditorWidget JSON editor Widgets & Forms
AutocompleteWidget Datalist autocomplete with static/dynamic suggestions Widgets & Forms
PasswordWidget Masked input, never pre-fills Widgets & Forms
ReadOnlyWidget Display-only value Widgets & Forms
HiddenWidget Hidden input field Widgets & Forms
FileUploadWidget File upload with size limits and type filtering Storage & Uploads
ImageUploadWidget Image-specific upload with preview Storage & Uploads
WysiwygWidget Rich text editor for HTML content Widgets & Forms
ArrayWidget Dynamic list input for JSON arrays Widgets & Forms
RelationPickerWidget Searchable FK dropdown Widgets & Forms
MultiRelationWidget Multi-select with search and removable tags Widgets & Forms

Form Features

Feature Description Link
Auto-Generated Forms Columns mapped to widgets automatically Widgets & Forms
Fieldsets Group form fields into titled sections Model Registration
Conditional Fields Show/hide fields based on other field values Model Registration
Field Overrides Replace widget for any field via formfield_overrides Widgets & Forms
Extra Fields Add non-model fields to forms Model Registration
Readonly Fields Show fields without allowing edits Model Registration
Placeholders Custom placeholder text per field Model Registration
Unsaved Changes Warning Browser warning when leaving with unsaved edits Widgets & Forms
HTMX Partial Validation Field-level validation on blur without page reload Widgets & Forms
Object-Level Validation Cross-field validation after all fields are parsed Widgets & Forms
Global Validator Validate across all models Widgets & Forms

List View Features

Feature Description Link
Search Full-text search across specified fields Model Registration
Relation Search Search across FK and M2M relations (user__email, tags__name) Model Registration
Filters Sidebar filters (text, boolean, relation, enum) Filters
Filter Registry Register custom filter types Filters
Ordering Default sort order with clickable column headers Model Registration
Pagination Offset, cursor, or dynamic strategies per model Pagination
Custom Columns @column decorator for computed columns with formatting, icons, width Model Registration
Column Export CSV export support per column Model Registration

Audit Logging

Feature Description Link
Automatic Tracking Every create, update, and delete is recorded Audit Logging
Change Diffs Before/after comparison for updates Audit Logging
Full Snapshots Complete object state at time of change Audit Logging
User Attribution Records who performed each action Audit Logging
IP & User-Agent Captures request metadata Audit Logging
Audit Log UI Timeline view with filters by model, user, action, date Audit Logging
Per-Object History Edit forms show audit history for that record Audit Logging
Retention Policy Configurable retention period with automatic purge Audit Logging
External Sinks Send audit logs to Elasticsearch, webhooks, etc. Audit Logging
Custom Audit Writer Override the default audit recording logic Audit Logging

Dashboard

Feature Description Link
Stat Cards Display key metrics with values and descriptions Dashboard
Charts Line, bar, pie, and doughnut chart placeholders Dashboard
Tables Dashboard table components Dashboard
Progress Bars Visual progress indicators Dashboard
Link Buttons Quick-action buttons Dashboard
Configurable Grid Auto or custom grid layout Dashboard
Permission Gating Restrict dashboard access by permission Dashboard

Feature Description Link
Auto-Generated Sidebar Models grouped by tags automatically Navigation
Custom Nav Groups Define your own navigation structure Navigation
Sidebar Builder Custom sidebar builder protocol Navigation
Nav Ordering Control sidebar item order with nav_order Navigation
Nested Nav Items Create sub-menu items with nav_children Navigation
Active State Current page highlighted in sidebar Navigation
Collapsible Sidebar Sidebar collapses to icons on toggle Navigation

CLI Tools (fak-admin / fak)

Command Description Link
createsuperuser Create admin users with email and password CLI Tools
users List all admin users CLI Tools
changepassword Change a user's password CLI Tools
createpermissions Create permissions for tables CLI Tools
createadminpermissions Create permissions for all admin-registered models CLI Tools
deletepermissions Delete permissions for tables CLI Tools
migrate Add missing columns or drop obsolete columns CLI Tools
migrate-permissions Convert old shared permissions to per-role format CLI Tools
init Scaffold a new FastAPI project with uv CLI Tools

JSON API

Feature Description Link
REST Endpoints Full CRUD API for all registered models JSON API
Token Authentication JWT-based auth for external frontends JSON API
Token Refresh Refresh token rotation JSON API
Role Management API CRUD for roles via API JSON API
Search API Programmatic search endpoint JSON API
Schema Generation Auto-generated JSON schemas for models JSON API

Pagination

Feature Description Link
Offset Pagination Traditional page numbers (default) Pagination
Cursor Pagination Keyset pagination with opaque cursors for large datasets Pagination
Dynamic Pagination Auto-switches between offset and cursor based on record count Pagination

Storage & File Uploads

Feature Description Link
LocalStorageBackend File uploads to local filesystem Storage & Uploads
Storage Backend Protocol Implement custom backends (S3, GCS, etc.) Storage & Uploads
Upload Widgets File and image upload with size limits and type filtering Storage & Uploads

Feature Description Link
Command Palette Cmd+K / Ctrl+K to search models and fields Command Palette
List View Search Per-model search across configured fields Model Registration
Relation Search Search across foreign key and many-to-many relationships Model Registration
Search API JSON endpoint for programmatic search JSON API

Filters

Feature Description Link
TextFilter Text/substring matching Filters
BooleanFilter True/false toggle Filters
RelationFilter Filter by related model Filters
EnumFilter Filter by enum choices Filters
Filter Registry Register custom filter types Filters

Customization & Extensibility

Feature Description Link
ModelAdmin Full control over list, form, and behavior per model Model Registration
Lifecycle Hooks on_create, after_create, on_update, after_update, on_delete, after_delete Inline Editing & Actions
Custom Actions Decorator-based action system for list, row, detail, and submit-line Inline Editing & Actions
Custom Widgets Extend the Widget base class with custom parse, validate, render Widgets & Forms
Widget Registry Override widgets by type or field name pattern Widgets & Forms
Custom Auth Backend Implement AuthBackend protocol Auth & RBAC
Custom Session Backend Swap session storage Auth & RBAC
Custom Permission Checker Override RBAC logic Auth & RBAC
Custom Audit Writer Override audit recording Audit Logging
Custom Sidebar Builder Override sidebar generation Navigation
Hook/Event Bus Register before/after hooks for any lifecycle event Plugins
Template Overrides Override any Jinja2 template Themes & UI
Custom Template Dirs Add your own template directories Themes & UI
Jinja2 Globals & Filters Inject custom functions into templates Plugins
Column Decorator @column() with header, format, icon, width, exportable options Model Registration

Code Quality

Feature Description
Type Hints Ships with py.typed marker
Ruff Linting Enforced in CI
Ruff Formatting Enforced in CI
Test Coverage 580+ tests with coverage reporting
CI/CD GitHub Actions for tests, lint, and PyPI publishing
Pre-commit Hooks Ruff lint and format on commit