Source: https://seerepo.com/r/dagster-io/dagster/built
Markdown source: https://seerepo.com/r/dagster-io/dagster/built.md
Description: dagster is a Python repo built with React, FastAPI, graphene, pyspark, starlette, and 5 more.

# What is dagster built with?

dagster is a Python repo built with React, FastAPI, graphene, pyspark, starlette, and 5 more. It stores its data in dlt, azure-storage-blob, Celery, pyarrow, DuckDB, and 3 more, reaches it with SQLAlchemy, alembic, and sqlglot, signs people in with flask-session, azure-identity, google-auth, pyjwt, and oauth2client, uses AI through deepeval, openai, and MLflow, connects to Google, makes its content with markdown, wordcloud, jinja2, highlight.js, react-markdown, and 6 more, validates its data with cattrs, Pydantic, jsonschema, validators, validator, and 1 more, is tested with testcontainers, Testing Library, Faker, and jest-canvas-mock, deploys with boto3, kubernetes, docker, Prefect, structlog, and 5 more, and uses azure-storage-file-datalake, db-dtypes, dbt-core, mysql-connector-python, psycopg2-binary, and 3 more. It has 1,373,416 written lines, with 2,682 test files.

Read on November 7, 2026, at commit 55208da.

Repository: https://github.com/dagster-io/dagster

## Frontend (/)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)

### Interface

- **bokeh**
- **[Rich](https://seerepo.com/uses/rich)**: 6 files
- **[questionary](https://seerepo.com/uses/questionary)**: 1 file

## Backend (/)

### Data

- **azure-storage-file-datalake**
- **db-dtypes**
- **dbt-core**
- **mysql-connector-python**
- **[psycopg2-binary](https://seerepo.com/uses/psycopg2-binary)**
- **snowflake-sqlalchemy**
- **dlt**: 6 files
- **[azure-storage-blob](https://seerepo.com/uses/azure-storage-blob)**: 5 files
- **[Celery](https://seerepo.com/uses/celery)**: 5 files
- **[pyarrow](https://seerepo.com/uses/pyarrow)**: 5 files
- **[DuckDB](https://seerepo.com/uses/duckdb)**: 4 files
- **clickhouse-driver**: 2 files
- **deltalake**: 2 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 1 file · [python_modules/libraries/dagster-mysql/pyproject.toml, line 14](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/python_modules/libraries/dagster-mysql/pyproject.toml#L14)

### Data access

- **[SQLAlchemy](https://seerepo.com/uses/sqlalchemy)**: 30 files
- **[alembic](https://seerepo.com/uses/alembic)**: 4 files
- **sqlglot**: 4 files

### Sign-in

- **flask-session**
- **[azure-identity](https://seerepo.com/uses/azure-identity)**: 6 files
- **[google-auth](https://seerepo.com/uses/google-auth)**: 5 files
- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 2 files
- **oauth2client**: 1 file

### AI

- **deepeval**
- **[openai](https://seerepo.com/uses/openai)**
- **MLflow**: 2 files

### Services

- **[Google Cloud Storage](https://seerepo.com/uses/google-cloud-storage)**: 8 files · [python_modules/dagster-pipes/dagster_pipes/__init__.py, line 1](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/python_modules/dagster-pipes/dagster_pipes/__init__.py#L1)
- **[Google](https://seerepo.com/uses/google)**: 7 files · [python_modules/dagster-cloud/dagster_cloud/dagster_insights/bigquery/dbt_wrapper.py, line 1](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/python_modules/dagster-cloud/dagster_cloud/dagster_insights/bigquery/dbt_wrapper.py#L1)

## Support (/)

### The base

- **[FastAPI](https://seerepo.com/uses/fastapi)**
- **graphene**: 73 files
- **pyspark**: 6 files
- **[starlette](https://seerepo.com/uses/starlette)**: 5 files
- **[AIOHTTP](https://seerepo.com/uses/aiohttp)**: 3 files
- **[uvicorn](https://seerepo.com/uses/uvicorn)**: 1 file

### Content

- **[markdown](https://seerepo.com/uses/markdown)**
- **wordcloud**
- **[jinja2](https://seerepo.com/uses/jinja2)**: 7 files

### Validation

- **cattrs**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 179 files
- **[jsonschema](https://seerepo.com/uses/jsonschema)**: 2 files
- **validators**: 1 file

### Testing

- **testcontainers**: 1 file

### Deploy

- **[boto3](https://seerepo.com/uses/boto3)**: 28 files
- **[kubernetes](https://seerepo.com/uses/kubernetes)**: 13 files
- **[docker](https://seerepo.com/uses/docker)**: 9 files
- **Prefect**: 6 files
- **[structlog](https://seerepo.com/uses/structlog)**: 4 files
- **[azure-core](https://seerepo.com/uses/azure-core)**: 3 files
- **coloredlogs**: 2 files
- **[psutil](https://seerepo.com/uses/psutil)**: 2 files
- **Datadog**: 1 file
- **[prometheus-client](https://seerepo.com/uses/prometheus-client)**: 1 file

### Tools

- **antlr4-python3-runtime**
- **autoflake**
- **awscli**
- **gitpython**
- **ipykernel**
- **twine**
- **types-setuptools**
- **virtualenv**
- **click**: 140 files
- **typing-extensions**: 129 files
- **Typer**: 30 files
- **packaging**: 21 files
- **docstring-parser**: 1 file
- **pathspec**: 1 file
- **Setuptools**: 1 file
- **Sphinx**: 1 file

### Other

- **Apache Airflow**
- **distributed**
- **grpcio**
- **grpcio-health-checking**
- **importlib-metadata**
- **lazy-object-proxy**
- **platformdirs**
- **protobuf**
- **pyopenssl**
- **python-dateutil**
- **pywin32**
- **s**
- **t**
- **tabulate**
- **tzdata**
- **requests**: 42 files
- **pyyaml**: 36 files
- **pandas**: 10 files
- **six**: 8 files
- **tqdm**: 6 files
- **urllib3**: 6 files
- **Polars**: 5 files
- **tomlkit**: 5 files
- **watchdog**: 5 files
- **Dask**: 4 files
- **tomli**: 4 files
- **orjson**: 3 files
- **python-dotenv**: 3 files
- **toposort**: 3 files
- **wandb**: 3 files
- **gql**: 2 files
- **httpx**: 2 files
- **pytz**: 2 files
- **slack-sdk**: 2 files
- **tableauserverclient**: 2 files
- **filelock**: 1 file
- **GraphQL**: 1 file
- **networkx**: 1 file
- **paramiko**: 1 file
- **pendulum**: 1 file
- **sshtunnel**: 1 file
- **twilio**: 1 file

## Frontend (js_modules/app-oss)

### The base

- **[Next.js](https://seerepo.com/uses/nextjs)**: 3 files · [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)
- **[React](https://seerepo.com/uses/react)**: 3 files · [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)

## Support (js_modules/app-oss)

### Validation

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

### Testing

- **Testing Library**: 1 file

### Other

- **Recoil**: 1 file

## Frontend (js_modules/dg-docs-components)

### The base

- **[React](https://seerepo.com/uses/react)**: 9 files · [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)

## Support (js_modules/dg-docs-components)

### Content

- **[highlight.js](https://seerepo.com/uses/highlightjs)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[remark](https://seerepo.com/uses/remark)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Other

- **clsx**: 4 files

## Support (js_modules/eslint-config)

### Tools

- **eslint-config-prettier**: 1 file
- **eslint-plugin-import**: 1 file
- **eslint-plugin-jest**: 1 file
- **eslint-plugin-jsx-a11y**: 1 file
- **eslint-plugin-prettier**: 1 file
- **eslint-plugin-react**: 1 file
- **eslint-plugin-react-hooks**: 1 file
- **eslint-plugin-unused-imports**: 1 file
- **typescript-eslint**: 1 file

## Frontend (js_modules/ui-components)

### The base

- **[React](https://seerepo.com/uses/react)**: 62 files · [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)

### Interface

- **[codemirror](https://seerepo.com/uses/codemirror)**: 6 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 5 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 4 files
- **@blueprintjs/core**: 2 files
- **@react-hook/resize-observer**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file
- **[sonner](https://seerepo.com/uses/sonner)**: 1 file

## Support (js_modules/ui-components)

### Content

- **[yaml](https://seerepo.com/uses/yaml)**: 2 files

### Testing

- **Testing Library**: 8 files

### Other

- **clsx**: 38 files
- **deepmerge**: 3 files
- **Lodash**: 3 files
- **regenerator-runtime**: 1 file

## Frontend (js_modules/ui-core)

### The base

- **[React](https://seerepo.com/uses/react)**: 581 files · [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)
- **[react-router-dom](https://seerepo.com/uses/react-router-dom)**: 183 files
- **[React Router](https://seerepo.com/uses/react-router)**: 1 file

### Interface

- **[TanStack](https://seerepo.com/uses/tanstack)**: 36 files
- **chartjs-adapter-date-fns**: 4 files
- **@react-hook/resize-observer**: 3 files
- **[Chart.js](https://seerepo.com/uses/chartjs)**: 3 files
- **[codemirror](https://seerepo.com/uses/codemirror)**: 3 files
- **dagre**: 2 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 2 files
- **react-chartjs-2**: 2 files
- **visx**: 2 files
- **@rjsf/core**: 1 file
- **ansi-to-react**: 1 file
- **chartjs-plugin-zoom**: 1 file

## Backend (js_modules/ui-core)

### Data

- **[lru-cache](https://seerepo.com/uses/lru-cache)**: 3 files

## Support (js_modules/ui-core)

### Content

- **[yaml](https://seerepo.com/uses/yaml)**: 11 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 2 files
- **[highlight.js](https://seerepo.com/uses/highlightjs)**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 1 file
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 1 file
- **[remark](https://seerepo.com/uses/remark)**: 1 file
- **[remark-breaks](https://seerepo.com/uses/remark-breaks)**: 1 file

### Validation

- **rjsf**: 2 files

### Testing

- **Testing Library**: 137 files
- **Faker**: 5 files
- **jest-canvas-mock**: 1 file

### Tools

- **antlr4ng**: 25 files
- **@graphql-codegen/cli**: 1 file

### Other

- **clsx**: 71 files
- **Lodash**: 66 files
- **qs**: 21 files
- **dayjs**: 15 files
- **Recoil**: 7 files
- **fuse.js**: 6 files
- **@apollo/client**: 5 files
- **GraphQL**: 5 files
- **uuid**: 3 files
- **subscriptions-transport-ws**: 2 files
- **cronstrue**: 1 file
- **date-fns**: 1 file
- **deepmerge**: 1 file
- **fast-text-encoding**: 1 file
- **resize-observer-polyfill**: 1 file
- **spark-md5**: 1 file

## Other repos with a similar stack

- [ray-project/ray](https://seerepo.com/r/ray-project/ray/built): React, azure-storage-blob, Celery, pyarrow, deltalake, Google Cloud Storage, Google, FastAPI, graphene, starlette, AIOHTTP, uvicorn, react-router-dom, Rich, SQLAlchemy, alembic, sqlglot, azure-identity, pyjwt, oauth2client, MLflow, markdown, jinja2, Pydantic, jsonschema, validators, boto3, kubernetes, docker, psutil, prometheus-client · [Compare](https://seerepo.com/compare/dagster-io/dagster/vs/ray-project/ray)
- [apache/airflow](https://seerepo.com/r/apache/airflow/built): React, psycopg2-binary, snowflake-sqlalchemy, azure-storage-blob, Celery, pyarrow, DuckDB, Google, FastAPI, AIOHTTP, uvicorn, react-router-dom, Rich, SQLAlchemy, alembic, sqlglot, flask-session, azure-identity, google-auth, pyjwt, jinja2, Pydantic, jsonschema, boto3, kubernetes, docker, structlog, psutil, yaml · [Compare](https://seerepo.com/compare/apache/airflow/vs/dagster-io/dagster)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, psycopg2-binary, pyarrow, Google, FastAPI, AIOHTTP, uvicorn, Next.js, Rich, SQLAlchemy, pyjwt, OpenAI, jinja2, Pydantic, jsonschema, boto3, docker, psutil, prometheus-client, highlight.js, react-markdown, remark-gfm, Radix UI, react-day-picker, sonner, @rjsf/core, rehype-highlight, rjsf · [Compare](https://seerepo.com/compare/dagster-io/dagster/vs/Significant-Gravitas/AutoGPT)
- [apache/superset](https://seerepo.com/r/apache/superset/built): React, psycopg2-binary, Celery, pyarrow, MySQL, Google, starlette, AIOHTTP, uvicorn, Rich, SQLAlchemy, alembic, pyjwt, markdown, jinja2, Pydantic, jsonschema, boto3, docker, psutil, prometheus-client, react-markdown, remark-gfm, rehype-sanitize · [Compare](https://seerepo.com/compare/apache/superset/vs/dagster-io/dagster)
- [langflow-ai/langflow](https://seerepo.com/r/langflow-ai/langflow/built): React, pyarrow, Google, FastAPI, AIOHTTP, uvicorn, react-router-dom, Rich, SQLAlchemy, pyjwt, OpenAI, Pydantic, jsonschema, validators, boto3, psutil, react-markdown, remark-gfm, Radix UI, react-day-picker, rehype-sanitize · [Compare](https://seerepo.com/compare/dagster-io/dagster/vs/langflow-ai/langflow)
- [run-llama/llama_index](https://seerepo.com/r/run-llama/llama_index/built): psycopg2-binary, azure-storage-blob, pyarrow, DuckDB, MySQL, Google, starlette, AIOHTTP, Rich, SQLAlchemy, azure-identity, pyjwt, OpenAI, jinja2, Pydantic, jsonschema, boto3, docker, psutil, prometheus-client · [Compare](https://seerepo.com/compare/dagster-io/dagster/vs/run-llama/llama_index)

## Frequently asked questions

### What language is dagster written in?

dagster is written in Python, with 1,373,416 written lines.

### What framework does dagster use?

dagster is built with React, FastAPI, graphene, pyspark, starlette, AIOHTTP, uvicorn, Next.js, react-router-dom, and React Router.

The proof: [in js_modules/app-oss/package.json](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/js_modules/app-oss/package.json)

### What database does dagster use?

dagster stores its data in dlt, azure-storage-blob, Celery, pyarrow, DuckDB, clickhouse-driver, deltalake, and lru-cache and reaches it with SQLAlchemy, alembic, and sqlglot.

### What does dagster sign people in with?

dagster signs people in with flask-session, azure-identity, google-auth, pyjwt, and oauth2client.

### Does dagster use AI?

Yes. dagster uses AI through deepeval, openai, and MLflow.

### What services does dagster use?

dagster connects to Google and uses azure-storage-file-datalake, db-dtypes, dbt-core, mysql-connector-python, psycopg2-binary, snowflake-sqlalchemy, MySQL, and Google Cloud Storage.

The proof: [python_modules/dagster-cloud/dagster_cloud/dagster_insights/bigquery/dbt_wrapper.py, line 1](https://github.com/dagster-io/dagster/blob/55208da7a9dc8fe3cea511d39508b97f73ab8769/python_modules/dagster-cloud/dagster_cloud/dagster_insights/bigquery/dbt_wrapper.py#L1)

### Does dagster have tests?

Yes. dagster has 2,682 test files and is tested with testcontainers, Testing Library, Faker, and jest-canvas-mock.

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

The ones that share most of its stack: ray-project/ray, apache/airflow, and Significant-Gravitas/AutoGPT.

## 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.
