Source: https://seerepo.com/r/prowler-cloud/prowler/built
Markdown source: https://seerepo.com/r/prowler-cloud/prowler/built.md
Description: prowler is a Python repo built with Django, drf-nested-routers, fastmcp, djangorestframework, werkzeug, and 3 more.

# What is prowler built with?

prowler is a Python repo built with Django, drf-nested-routers, fastmcp, djangorestframework, werkzeug, and 3 more. It stores its data in Celery, Neo4j, django-celery-results, and Postgres, signs people in with azure-identity, azure-keyvault-keys, django-allauth, djangorestframework-simplejwt, dj-rest-auth, and 1 more, uses AI through OpenAI, LangChain, ai, @ai-sdk/react, and @aws-sdk/client-bedrock-runtime, measures its use with PostHog, watches its errors with Sentry, makes its content with lxml, reportlab, defusedxml, markdown, js-yaml, and 2 more, validates its data with Zod and @hookform/resolvers, is tested with pytest-celery, Vitest, Testing Library, @playwright/test, msw, and 1 more, deploys with azure-mgmt-compute, azure-mgmt-containerregistry, azure-mgmt-network, azure-mgmt-resource, Gunicorn, and 4 more, and uses azure-mgmt-cosmosdb, azure-mgmt-storage, azure-storage-blob, and psycopg2-binary. It has 1,231,989 written lines, with 2,848 test files.

Read on November 8, 2026, at commit 9f6ebb0.

Repository: https://github.com/prowler-cloud/prowler

## Frontend (/)

### Styles

- **[fonttools](https://seerepo.com/uses/fonttools)**

### Interface

- **alive-progress**: 5 files
- **[matplotlib](https://seerepo.com/uses/matplotlib)**: 1 file

## Backend (/)

### The base

- **[Django](https://seerepo.com/uses/django)**: 51 files

### Data

- **azure-mgmt-cosmosdb**
- **azure-mgmt-storage**
- **[azure-storage-blob](https://seerepo.com/uses/azure-storage-blob)**
- **[psycopg2-binary](https://seerepo.com/uses/psycopg2-binary)**
- **[Celery](https://seerepo.com/uses/celery)**: 32 files
- **[Neo4j](https://seerepo.com/uses/neo4j)**: 12 files
- **django-celery-results**: 7 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [api/src/backend/api/db_utils.py, line 1](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/api/src/backend/api/db_utils.py#L1)

### Sign-in

- **[azure-identity](https://seerepo.com/uses/azure-identity)**
- **azure-keyvault-keys**
- **django-allauth**: 6 files
- **djangorestframework-simplejwt**: 5 files
- **dj-rest-auth**: 2 files

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 3 files · [ui/lib/sentry-breadcrumbs.ts, line 17](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/ui/lib/sentry-breadcrumbs.ts#L17)
- **[OpenAI](https://seerepo.com/uses/openai)**: 2 files · [api/src/backend/tasks/jobs/connection.py, line 3](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/api/src/backend/tasks/jobs/connection.py#L3)

## Support (/)

### The base

- **drf-nested-routers**
- **[fastmcp](https://seerepo.com/uses/fastmcp)**: 19 files
- **[djangorestframework](https://seerepo.com/uses/djangorestframework)**: 16 files
- **[werkzeug](https://seerepo.com/uses/werkzeug)**: 1 file

### Content

- **[lxml](https://seerepo.com/uses/lxml)**
- **[reportlab](https://seerepo.com/uses/reportlab)**: 8 files
- **[defusedxml](https://seerepo.com/uses/defusedxml)**: 2 files
- **[markdown](https://seerepo.com/uses/markdown)**: 1 file

### Testing

- **pytest-celery**

### Deploy

- **azure-mgmt-compute**
- **azure-mgmt-containerregistry**
- **azure-mgmt-network**
- **azure-mgmt-resource**
- **[Gunicorn](https://seerepo.com/uses/gunicorn)**
- **[botocore](https://seerepo.com/uses/botocore)**: 70 files
- **[boto3](https://seerepo.com/uses/boto3)**: 11 files
- **django-guid**: 1 file
- **uvicorn-worker**: 1 file

### Tools

- **drf-spectacular**: 9 files
- **typing-extensions**: 1 file

### Other

- **django-cors-headers**
- **gevent**
- **h2**
- **sqlparse**
- **uvloop**
- **xmlsec**
- **colorama**: 45 files
- **requests**: 25 files
- **pyyaml**: 15 files
- **django-celery-beat**: 7 files
- **uuid6**: 7 files
- **httpx**: 5 files
- **django-environ**: 1 file
- **django-filter**: 1 file

## Frontend (ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 407 files · [in ui/package.json](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/ui/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 245 files · [in ui/package.json](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/ui/package.json)
- **@next/third-parties**: 1 file

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**
- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 21 files
- **[next-themes](https://seerepo.com/uses/next-themes)**: 8 files
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 1 file

### Interface

- **[React Hook Form](https://seerepo.com/uses/react-hook-form)**: 88 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 42 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 35 files
- **[recharts](https://seerepo.com/uses/recharts)**: 12 files
- **[xyflow](https://seerepo.com/uses/xyflow)**: 10 files
- **[Framer](https://seerepo.com/uses/framer)**: 9 files
- **@react-stately/utils**: 3 files
- **[D3](https://seerepo.com/uses/d3)**: 3 files
- **topojson-client**: 2 files
- **[use-stick-to-bottom](https://seerepo.com/uses/use-stick-to-bottom)**: 2 files
- **world-atlas**: 2 files
- **[@dagrejs/dagre](https://seerepo.com/uses/dagrejs-dagre)**: 1 file
- **[@lezer/highlight](https://seerepo.com/uses/lezer-highlight)**: 1 file
- **[@uiw/react-codemirror](https://seerepo.com/uses/uiw-react-codemirror)**: 1 file
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[CodeMirror](https://seerepo.com/uses/codemirror)**: 1 file
- **[react-day-picker](https://seerepo.com/uses/react-day-picker)**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 269 files
- **[@radix-ui/react-icons](https://seerepo.com/uses/radix-ui-react-icons)**: 4 files

## Backend (ui)

### Sign-in

- **next-auth**: 13 files

### AI

- **[LangChain](https://seerepo.com/uses/langchain)**: 6 files
- **[ai](https://seerepo.com/uses/ai)**: 4 files
- **[@ai-sdk/react](https://seerepo.com/uses/ai-sdk-react)**: 1 file
- **[@aws-sdk/client-bedrock-runtime](https://seerepo.com/uses/aws-sdk-client-bedrock-runtime)**: 1 file

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 15 files · [ui/lib/sentry-breadcrumbs.ts, line 17](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/ui/lib/sentry-breadcrumbs.ts#L17)
- **[PostHog](https://seerepo.com/uses/posthog)**: 4 files · [ui/app/(prowler)/lighthouse/_components/chat/lighthouse-v2-chat-view.tsx, line 3](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/ui/app/(prowler)/lighthouse/_components/chat/lighthouse-v2-chat-view.tsx#L3)

## Support (ui)

### Content

- **[js-yaml](https://seerepo.com/uses/js-yaml)**: 3 files
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 3 files
- **[streamdown](https://seerepo.com/uses/streamdown)**: 2 files

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 57 files
- **[@hookform/resolvers](https://seerepo.com/uses/hookform-resolvers)**: 40 files

### Testing

- **Vitest**: 562 files
- **Testing Library**: 269 files
- **@playwright/test**: 34 files
- **msw**: 15 files
- **vitest-browser-react**: 2 files

### Other

- **zustand**: 17 files
- **date-fns**: 10 files
- **server-only**: 9 files
- **clsx**: 1 file
- **nanoid**: 1 file

## Other repos with a similar stack

- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): psycopg2-binary, Postgres, Sentry, OpenAI, React, Next.js, PostHog, boto3, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, React Hook Form, Radix UI, recharts, Framer, use-stick-to-bottom, cmdk, react-day-picker, ai, @ai-sdk/react, react-markdown, streamdown, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/prowler-cloud/prowler/vs/Significant-Gravitas/AutoGPT)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): Sentry, OpenAI, React, Next.js, PostHog, Tailwind CSS, class-variance-authority, next-themes, React Hook Form, Radix UI, recharts, xyflow, use-stick-to-bottom, @dagrejs/dagre, cmdk, react-day-picker, Lucide, ai, @ai-sdk/react, js-yaml, react-markdown, streamdown, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/prowler-cloud/prowler/vs/supabase/supabase)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): Sentry, OpenAI, React, Tailwind CSS, class-variance-authority, tailwind-merge, React Hook Form, TanStack, Radix UI, xyflow, @dagrejs/dagre, @lezer/highlight, @uiw/react-codemirror, cmdk, CodeMirror, react-day-picker, Lucide, ai, streamdown, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/prowler-cloud/prowler)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): Postgres, OpenAI, werkzeug, React, reportlab, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, React Hook Form, Radix UI, recharts, xyflow, D3, cmdk, react-day-picker, Lucide, react-markdown, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/infiniflow/ragflow/vs/prowler-cloud/prowler)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): azure-storage-blob, psycopg2-binary, Postgres, OpenAI, fastmcp, React, Next.js, PostHog, matplotlib, lxml, reportlab, markdown, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, recharts, D3, Lucide, react-markdown · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/prowler-cloud/prowler)
- [calcom/cal.diy](https://seerepo.com/r/calcom/cal.diy/built): Postgres, Sentry, React, Next.js, @next/third-parties, PostHog, Tailwind CSS, class-variance-authority, next-themes, tailwind-merge, React Hook Form, TanStack, Radix UI, Framer, cmdk, react-day-picker, Lucide, next-auth, Zod, @hookform/resolvers · [Compare](https://seerepo.com/compare/calcom/cal.diy/vs/prowler-cloud/prowler)

## Frequently asked questions

### What language is prowler written in?

prowler is written in Python, with 1,231,989 written lines.

### What framework does prowler use?

prowler is built with Django, drf-nested-routers, fastmcp, djangorestframework, werkzeug, React, Next.js, and @next/third-parties.

### What database does prowler use?

prowler stores its data in Celery, Neo4j, django-celery-results, and Postgres.

### What does prowler sign people in with?

prowler signs people in with azure-identity, azure-keyvault-keys, django-allauth, djangorestframework-simplejwt, dj-rest-auth, and next-auth.

### Does prowler use AI?

Yes. prowler uses AI through OpenAI, LangChain, ai, @ai-sdk/react, and @aws-sdk/client-bedrock-runtime.

The proof: [api/src/backend/tasks/jobs/connection.py, line 3](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/api/src/backend/tasks/jobs/connection.py#L3)

### What services does prowler use?

prowler measures its use with PostHog, watches its errors with Sentry, and uses azure-mgmt-cosmosdb, azure-mgmt-storage, azure-storage-blob, and psycopg2-binary.

The proof: [ui/app/(prowler)/lighthouse/_components/chat/lighthouse-v2-chat-view.tsx, line 3](https://github.com/prowler-cloud/prowler/blob/9f6ebb00e11a520de4f45a6eb5963eda28e09a86/ui/app/(prowler)/lighthouse/_components/chat/lighthouse-v2-chat-view.tsx#L3)

### Does prowler have tests?

Yes. prowler has 2,848 test files and is tested with pytest-celery, Vitest, Testing Library, @playwright/test, msw, and vitest-browser-react.

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

The ones that share most of its stack: Significant-Gravitas/AutoGPT, supabase/supabase, and CherryHQ/cherry-studio.

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