We might need to use Alembic for schema migrations at some point, but
until then, creating the database tables when the application first
starts will work fine.
The web API server is built using FastAPI. Although there are several
issues with the framework, and it is basically unmaintained at this
point, I still like it better than the alternatives. Django is too big
and cumbersome, and its async story still needs improvement. I do not
like Flask at all. Starlette would be great, but OpenAPI spec
generation is too useful to give up, and the solutions for Starlette are
not nearly as good as FastAPI, even with its bugs and limitations.
Ultimately, the development experience with FastAPI is unmatched, and
for this project, I want to develop quickly.