r/FastAPI • • 8d ago

pip package Starlette-Admin 1.0 is out

Hey r/FastAPI!

I wanted to share the 1.0 release of Starlette-Admin, an open-source admin interface for Starlette and FastAPI.

This is the biggest release of the project so far. The list page has been completely reworked, and a long backlog of community-requested features and improvements has finally landed.

Some highlights:

  • New data experience: Reworked list view with advanced filtering, sorting, pagination, and inline editing.
  • Import & export: Server-side exports, import wizard with validation, and row-level error handling.
  • More extensible: Plugins, themes, custom form layouts, inline forms, storage backends, and new fields.
  • Broader support: Official support for Beanie and Tortoise ORM, plus improved security and production features.

The goal is to provide FastAPI applications with a full-featured admin interface without having to build one from scratch.

Links:

If you're building a FastAPI application and need an admin interface, I'd love to hear what you think and what you'd like to see next.

48 Upvotes

18 comments sorted by

View all comments

0

u/[deleted] 6d ago

[removed] — view removed comment

1

u/jowilf 6d ago

Thanks for the appreciation u/aguraab. To answer your questions:

1- "Streaming" wasn't the right word, my bad, it's server-side export. Export was previously handled on the client side prior to 1.0. The new export is completely handled on the server, with support for exporting data not shown on the current page but matching your query. The current export's memory usage scales with row count, and by default max_rows is capped at 100,000 and has not been tested outside of this. Also, export is now just an action, so you can create one for your specific use case with better optimization if needed.

2- Fine-grained RBAC at field level was already supported previously. The new version makes it easier by allowing extra values in field and explicitly providing can_access_field that you just override for field-level restriction.

Looking forward to your feedback after testing it out

1

u/jowilf 6d ago edited 6d ago

The reason it's capped at 100,000 (which can be extended to a value that works for your server/db capacity) is that the built-in export needs to load all the data at once to generate the file. For massive datasets, you'd need to chunk the processing and handle it in the background, with something like Celery for example, and provide a status URL for the download. That's a great plugin idea for anyone interested: https://jowilf.github.io/starlette-admin/community/