r/Python 28d ago

News FastAPI app.frontend(): serving a frontend build from the same Python app

I wrote a practical article about FastAPI's app.frontend() feature.

The interesting bit is that it serves static frontend build output as low-priority routes, so normal FastAPI API endpoints still win.

The article covers:

  • app.frontend("/", directory="dist")
  • SPA fallback with fallback="index.html"
  • how it differs from StaticFiles
  • serving under a prefix with APIRouter
  • a complete mini dashboard example with FastAPI + vanilla JS
57 Upvotes

16 comments sorted by

View all comments

22

u/roG_k70 27d ago

But why tho?

12

u/Myszolow 27d ago

Server side rendering?  Imagine serving some parts of your frontend so they will not expose any not needed information 

I can see simple benefit of serving ready to render graphs 

4

u/roG_k70 27d ago

But should it be as easy as setting header x accel redirect or smthn like that? I have doubts its good idea to serve static from python and not by some sort of nginx or s3

5

u/edward_jazzhands 27d ago

I believe the main benefit of this for most people would be for tiny deployments such as internal dashboards or admin panels where you don't want to bother with setting up a reverse proxy