Source: https://seerepo.com/r/dgtlmoon/changedetection.io/built
Markdown source: https://seerepo.com/r/dgtlmoon/changedetection.io/built.md
Description: changedetection.io is a Python repo built with flask-cors, Flask, flask-restful, and werkzeug. It signs people in with cryptography, flask-login, and authlib.

# What is changedetection.io built with?

changedetection.io is a Python repo built with flask-cors, Flask, flask-restful, and werkzeug. It signs people in with cryptography, flask-login, and authlib, uses AI through litellm and rank-bm25, makes its content with linkify-it-py, jinja2, puremagic, beautifulsoup4, lxml, and 3 more, validates its data with referencing, wtforms, flask-wtf, Pydantic, jsonschema, and 2 more, is tested with pytest-mock, pytest-xdist, Pytest, and Selenium, and deploys with loguru and psutil. It has 108,039 written lines, with 219 test files.

Read on November 7, 2026, at commit 09619ff.

Repository: https://github.com/dgtlmoon/changedetection.io

## Frontend

### The base

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

## Backend

### The base

- **[Flask](https://seerepo.com/uses/flask)**: 50 files

### Sign-in

- **[cryptography](https://seerepo.com/uses/cryptography)**
- **flask-login**: 5 files
- **[authlib](https://seerepo.com/uses/authlib)**: 2 files

### AI

- **[litellm](https://seerepo.com/uses/litellm)**: 2 files
- **rank-bm25**: 1 file

## Support

### The base

- **flask-restful**: 9 files
- **[werkzeug](https://seerepo.com/uses/werkzeug)**: 4 files

### Content

- **linkify-it-py**
- **[jinja2](https://seerepo.com/uses/jinja2)**: 5 files
- **puremagic**: 5 files
- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**: 2 files
- **[lxml](https://seerepo.com/uses/lxml)**: 2 files
- **[openpyxl](https://seerepo.com/uses/openpyxl)**: 2 files
- **feedparser**: 1 file
- **segno**: 1 file

### Validation

- **[referencing](https://seerepo.com/uses/referencing)**
- **wtforms**: 14 files
- **flask-wtf**: 3 files
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 2 files
- **[jsonschema](https://seerepo.com/uses/jsonschema)**: 1 file
- **mcp-types**: 1 file
- **validators**: 1 file

### Testing

- **pytest-mock**
- **pytest-xdist**
- **Pytest**: 48 files
- **Selenium**: 1 file

### Deploy

- **[loguru](https://seerepo.com/uses/loguru)**: 93 files
- **[psutil](https://seerepo.com/uses/psutil)**: 2 files

### Tools

- **pre-commit**
- **Ruff**
- **jq**: 3 files
- **pluggy**: 3 files

### Other

- **greenlet**
- **paho-mqtt**
- **python-engineio**
- **python-socketio**
- **tzdata**
- **flask-babel**: 42 files
- **blinker**: 10 files
- **apprise**: 8 files
- **requests**: 7 files
- **jsonpath-ng**: 4 files
- **orjson**: 4 files
- **Babel**: 3 files
- **brotli**: 3 files
- **arrow**: 2 files
- **flask-socketio**: 2 files
- **pytz**: 2 files
- **regex**: 2 files
- **chardet**: 1 file
- **diff-match-patch**: 1 file
- **flask-compress**: 1 file
- **gevent**: 1 file
- **rapidfuzz**: 1 file
- **requests-file**: 1 file

## Other repos with a similar stack

- [ray-project/ray](https://seerepo.com/r/ray-project/ray/built): flask-cors, Flask, werkzeug, cryptography, linkify-it-py, jinja2, beautifulsoup4, lxml, openpyxl, referencing, Pydantic, jsonschema, validators, psutil · [Compare](https://seerepo.com/compare/dgtlmoon/changedetection.io/vs/ray-project/ray)
- [apache/superset](https://seerepo.com/r/apache/superset/built): flask-cors, Flask, werkzeug, cryptography, flask-login, authlib, jinja2, beautifulsoup4, openpyxl, referencing, Pydantic, jsonschema, psutil · [Compare](https://seerepo.com/compare/apache/superset/vs/dgtlmoon/changedetection.io)
- [apache/airflow](https://seerepo.com/r/apache/airflow/built): Flask, werkzeug, cryptography, flask-login, jinja2, beautifulsoup4, wtforms, flask-wtf, Pydantic, jsonschema, psutil · [Compare](https://seerepo.com/compare/apache/airflow/vs/dgtlmoon/changedetection.io)
- [datawhalechina/hello-agents](https://seerepo.com/r/datawhalechina/hello-agents/built): Flask, rank-bm25, jinja2, beautifulsoup4, lxml, openpyxl, feedparser, Pydantic, jsonschema, loguru · [Compare](https://seerepo.com/compare/datawhalechina/hello-agents/vs/dgtlmoon/changedetection.io)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): Flask, authlib, litellm, rank-bm25, beautifulsoup4, lxml, openpyxl, Pydantic, loguru, psutil · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/dgtlmoon/changedetection.io)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): cryptography, rank-bm25, jinja2, beautifulsoup4, openpyxl, feedparser, Pydantic, jsonschema, psutil · [Compare](https://seerepo.com/compare/dgtlmoon/changedetection.io/vs/Significant-Gravitas/AutoGPT)

## Frequently asked questions

### What language is changedetection.io written in?

changedetection.io is written in Python, with 108,039 written lines.

### What framework does changedetection.io use?

changedetection.io is built with flask-cors, Flask, flask-restful, and werkzeug.

### What does changedetection.io sign people in with?

changedetection.io signs people in with cryptography, flask-login, and authlib.

### Does changedetection.io use AI?

Yes. changedetection.io uses AI through litellm and rank-bm25.

### Does changedetection.io have tests?

Yes. changedetection.io has 219 test files and is tested with pytest-mock, pytest-xdist, Pytest, and Selenium.

### Which repos have a stack like changedetection.io's?

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

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