Source: https://seerepo.com/r/rommapp/romm/built
Markdown source: https://seerepo.com/r/rommapp/romm/built.md
Description: romm is a Python repo built with FastAPI, starlette, anyio, AIOHTTP, uvicorn, and 3 more. It stores its data in rq and reaches it with SQLAlchemy and alembic.

# What is romm built with?

romm is a Python repo built with FastAPI, starlette, anyio, AIOHTTP, uvicorn, and 3 more. It stores its data in rq, reaches it with SQLAlchemy and alembic, signs people in with cryptography, joserfc, authlib, bcrypt, and itsdangerous, watches its errors with Sentry, makes its content with pillow-jxl-plugin, defusedxml, pillow, python-magic, and mutagen, validates its data with Pydantic, is tested with Vitest, @vue/test-utils, @playwright/test, fake-indexeddb, and axe-core, deploys with Gunicorn, OpenTelemetry, opentelemetry-instrumentation-aiohttp-client, opentelemetry-instrumentation-fastapi, opentelemetry-instrumentation-httpx, and 3 more, and uses psycopg, Redis, and Postgres. It has 467,510 written lines, with 739 test files.

Read on November 9, 2026, at commit 54fecf2.

Repository: https://github.com/rommapp/romm

## Backend (/)

### The base

- **[FastAPI](https://seerepo.com/uses/fastapi)**: 87 files

### Data

- **[psycopg](https://seerepo.com/uses/psycopg)**
- **[Redis](https://seerepo.com/uses/redis)**: 17 files · [backend/handler/redis_handler.py, line 11](https://github.com/rommapp/romm/blob/54fecf2500db910f16a2248d0e034cdcd226dd9a/backend/handler/redis_handler.py#L11)
- **rq**: 12 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [pyproject.toml, line 44](https://github.com/rommapp/romm/blob/54fecf2500db910f16a2248d0e034cdcd226dd9a/pyproject.toml#L44)

### Data access

- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 66 files
- **[alembic](https://seerepo.com/uses/alembic)**: 1 file

### Sign-in

- **[cryptography](https://seerepo.com/uses/cryptography)**: 3 files
- **[joserfc](https://seerepo.com/uses/joserfc)**: 3 files
- **[authlib](https://seerepo.com/uses/authlib)**: 2 files
- **[bcrypt](https://seerepo.com/uses/bcrypt)**: 1 file
- **[itsdangerous](https://seerepo.com/uses/itsdangerous)**: 1 file

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [backend/utils/sentry.py, line 11](https://github.com/rommapp/romm/blob/54fecf2500db910f16a2248d0e034cdcd226dd9a/backend/utils/sentry.py#L11)

## Support (/)

### The base

- **[starlette](https://seerepo.com/uses/starlette)**: 22 files
- **[anyio](https://seerepo.com/uses/anyio)**: 13 files
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 9 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 1 file

### Content

- **pillow-jxl-plugin**
- **[defusedxml](https://seerepo.com/uses/defusedxml)**: 7 files
- **[pillow](https://seerepo.com/uses/pillow)**: 5 files
- **python-magic**: 2 files
- **mutagen**: 1 file

### Validation

- **[Pydantic](https://seerepo.com/uses/pydantic)**: 44 files

### Deploy

- **[Gunicorn](https://seerepo.com/uses/gunicorn)**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**
- **opentelemetry-instrumentation-aiohttp-client**
- **opentelemetry-instrumentation-fastapi**
- **opentelemetry-instrumentation-httpx**
- **opentelemetry-instrumentation-redis**
- **opentelemetry-instrumentation-sqlalchemy**
- **uvicorn-worker**

### Tools

- **watchfiles**

### Other

- **yarl**: 13 files
- **httpx2**: 12 files
- **pydash**: 11 files
- **python-socketio**: 5 files
- **unidecode**: 3 files
- **asyncssh**: 2 files
- **apprise**: 1 file
- **certifi**: 1 file
- **colorama**: 1 file
- **croniter**: 1 file
- **python-dotenv**: 1 file
- **pyyaml**: 1 file
- **ua-parser**: 1 file

## Support (backend/utils/rom_patcher)

### The base

- **[anyio](https://seerepo.com/uses/anyio)**: 1 file

## Frontend (frontend)

### The base

- **[Vue](https://seerepo.com/uses/vue)**: 400 files · [in frontend/package.json](https://github.com/rommapp/romm/blob/54fecf2500db910f16a2248d0e034cdcd226dd9a/frontend/package.json)
- **[vue-router](https://seerepo.com/uses/vue-router)**: 81 files
- **[Vite](https://seerepo.com/uses/vite)**: 1 file · [in frontend/package.json](https://github.com/rommapp/romm/blob/54fecf2500db910f16a2248d0e034cdcd226dd9a/frontend/package.json)

### Styles

- **[PostCSS](https://seerepo.com/uses/postcss)**: 1 file

### Interface

- **@floating-ui/vue**: 5 files
- **md-editor-v3**: 3 files

### Icons

- **@mdi/font**: 1 file

## Support (frontend)

### Testing

- **Vitest**: 356 files
- **@vue/test-utils**: 194 files
- **@playwright/test**: 8 files
- **fake-indexeddb**: 4 files
- **axe-core**: 3 files

### Tools

- **Storybook**: 1 file

### Other

- **vue-i18n**: 255 files
- **Pinia**: 91 files
- **VueUse**: 82 files
- **mitt**: 28 files
- **Axios**: 23 files
- **Lodash**: 10 files
- **bowser**: 3 files
- **date-fns**: 2 files
- **fflate**: 2 files
- **js-cookie**: 2 files
- **country-flag-emoji-polyfill**: 1 file
- **cronstrue**: 1 file
- **SemVer**: 1 file
- **socket.io-client**: 1 file
- **spark-md5**: 1 file

## Other repos with a similar stack

- [open-webui/open-webui](https://seerepo.com/r/open-webui/open-webui/built): FastAPI, psycopg, Redis, Postgres, AIOHTTP, uvicorn, SQLAlchemy, alembic, cryptography, joserfc, authlib, bcrypt, itsdangerous, pillow, Pydantic, OpenTelemetry, opentelemetry-instrumentation-aiohttp-client, opentelemetry-instrumentation-fastapi, opentelemetry-instrumentation-httpx, opentelemetry-instrumentation-redis, opentelemetry-instrumentation-sqlalchemy · [Compare](https://seerepo.com/compare/open-webui/open-webui/vs/rommapp/romm)
- [apache/superset](https://seerepo.com/r/apache/superset/built): Redis, Postgres, starlette, anyio, AIOHTTP, uvicorn, SQLAlchemy, alembic, cryptography, joserfc, authlib, bcrypt, itsdangerous, defusedxml, pillow, Pydantic, Gunicorn, OpenTelemetry · [Compare](https://seerepo.com/compare/apache/superset/vs/rommapp/romm)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): FastAPI, Redis, Postgres, starlette, anyio, AIOHTTP, uvicorn, Vue, vue-router, Vite, SQLAlchemy, alembic, bcrypt, pillow, Pydantic, OpenTelemetry · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/rommapp/romm)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): FastAPI, Redis, Postgres, Sentry, AIOHTTP, uvicorn, SQLAlchemy, cryptography, bcrypt, pillow, Pydantic, PostCSS · [Compare](https://seerepo.com/compare/rommapp/romm/vs/Significant-Gravitas/AutoGPT)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): FastAPI, Redis, starlette, AIOHTTP, uvicorn, Vite, SQLAlchemy, cryptography, bcrypt, defusedxml, pillow, Pydantic · [Compare](https://seerepo.com/compare/langflow-ai/langflow/vs/rommapp/romm)
- [vectorize-io/hindsight](https://seerepo.com/r/vectorize-io/hindsight/built): FastAPI, Postgres, AIOHTTP, uvicorn, SQLAlchemy, alembic, cryptography, pillow, Pydantic, OpenTelemetry, opentelemetry-instrumentation-fastapi, PostCSS · [Compare](https://seerepo.com/compare/rommapp/romm/vs/vectorize-io/hindsight)

## Frequently asked questions

### What language is romm written in?

romm is written in Python, with 467,510 written lines.

### What framework does romm use?

romm is built with FastAPI, starlette, anyio, AIOHTTP, uvicorn, Vue, vue-router, and Vite.

### What database does romm use?

romm stores its data in rq and reaches it with SQLAlchemy and alembic.

### What does romm sign people in with?

romm signs people in with cryptography, joserfc, authlib, bcrypt, and itsdangerous.

### What services does romm use?

romm watches its errors with Sentry and uses psycopg, Redis, and Postgres.

The proof: [backend/utils/sentry.py, line 11](https://github.com/rommapp/romm/blob/54fecf2500db910f16a2248d0e034cdcd226dd9a/backend/utils/sentry.py#L11)

### Does romm have tests?

Yes. romm has 739 test files and is tested with Vitest, @vue/test-utils, @playwright/test, fake-indexeddb, and axe-core.

### Which repos have a stack like romm's?

The ones that share most of its stack: open-webui/open-webui, apache/superset, and datawhalechina/hello-agents.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
