Source: https://seerepo.com/r/suitenumerique/docs/built
Markdown source: https://seerepo.com/r/suitenumerique/docs/built.md
Description: docs is a TypeScript repo built with Django, uvicorn, djangorestframework, React, Next.js, and 1 more.

# What is docs built with?

docs is a TypeScript repo built with Django, uvicorn, djangorestframework, React, Next.js, and 1 more. It stores its data in Celery, Postgres, idb, and y-indexeddb, reaches it with django-treebeard, signs people in with pyjwt, joserfc, and jose, uses AI through pydantic-ai-slim, langfuse, OpenAI, and ai, measures its use with PostHog, watches its errors with Sentry, makes its content with lxml, markdown, python-magic, and beautifulsoup4, validates its data with jsonschema and Pydantic, is tested with Vitest, Testing Library, fetch-mock, and supertest, deploys with boto3, django-prometheus, Gunicorn, prometheus-client, and prom-client, and uses django-storages, psycopg, dj-database-url, django-redis, Redis, and 1 more. It has 141,881 written lines, with 280 test files.

Read on November 7, 2026, at commit 03d5b9f.

Repository: https://github.com/suitenumerique/docs

## Backend (/)

### The base

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

### Data

- **django-storages**
- **[psycopg](https://seerepo.com/uses/psycopg)**
- **[Celery](https://seerepo.com/uses/celery)**: 2 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 2 files · [src/backend/pyproject.toml, line 62](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/backend/pyproject.toml#L62)
- **dj-database-url**: 1 file
- **django-redis**: 1 file
- **[Redis](https://seerepo.com/uses/redis)**: 1 file · [src/backend/pyproject.toml, line 68](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/backend/pyproject.toml#L68)

### Data access

- **django-treebeard**

### Sign-in

- **[pyjwt](https://seerepo.com/uses/pyjwt)**: 2 files
- **joserfc**: 1 file

### AI

- **pydantic-ai-slim**
- **langfuse**: 2 files

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 2 files · [src/frontend/apps/impress/src/services/PosthogAnalytic.tsx, line 2](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/services/PosthogAnalytic.tsx#L2)
- **[Sentry](https://seerepo.com/uses/sentry)**: 2 files · [src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx, line 3](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx#L3)
- **[OpenAI](https://seerepo.com/uses/openai)**: 1 file · [src/backend/core/services/ai_services/legacy.py, line 19](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/backend/core/services/ai_services/legacy.py#L19)

## Support (/)

### The base

- **[uvicorn](https://seerepo.com/uses/uvicorn)**
- **djangorestframework**: 13 files

### Content

- **[lxml](https://seerepo.com/uses/lxml)**
- **[markdown](https://seerepo.com/uses/markdown)**
- **python-magic**: 2 files
- **[beautifulsoup4](https://seerepo.com/uses/beautifulsoup4)**: 1 file

### Validation

- **[jsonschema](https://seerepo.com/uses/jsonschema)**
- **[Pydantic](https://seerepo.com/uses/pydantic)**: 1 file

### Deploy

- **[boto3](https://seerepo.com/uses/boto3)**
- **django-prometheus**
- **[Gunicorn](https://seerepo.com/uses/gunicorn)**
- **[prometheus-client](https://seerepo.com/uses/prometheus-client)**: 1 file

### Tools

- **django-silk**
- **drf-spectacular**: 1 file

### Other

- **django-countries**
- **django-timezone-field**
- **requests**: 6 files
- **django-cors-headers**: 1 file
- **django-filter**: 1 file
- **emoji**: 1 file
- **pycrdt**: 1 file

## Frontend (src/frontend/apps/impress)

### The base

- **[React](https://seerepo.com/uses/react)**: 170 files · [in src/frontend/apps/impress/package.json](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/package.json)
- **[Next.js](https://seerepo.com/uses/nextjs)**: 57 files · [in src/frontend/apps/impress/package.json](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/package.json)

### Styles

- **[styled-components](https://seerepo.com/uses/styled-components)**: 98 files

### Interface

- **blocknote**: 37 files
- **@react-aria/live-announcer**: 14 files
- **[cmdk](https://seerepo.com/uses/cmdk)**: 5 files
- **react-intersection-observer**: 3 files
- **@dnd-kit/core**: 2 files
- **[@floating-ui/react](https://seerepo.com/uses/floating-ui-react)**: 2 files
- **frimousse**: 2 files
- **@lottiefiles/dotlottie-react**: 1 file
- **@tiptap/extension-find-and-replace**: 1 file
- **[Mantine](https://seerepo.com/uses/mantine)**: 1 file
- **react-aria-components**: 1 file
- **[react-dropzone](https://seerepo.com/uses/react-dropzone)**: 1 file
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 1 file

## Backend (src/frontend/apps/impress)

### Data

- **[idb](https://seerepo.com/uses/idb)**: 2 files
- **y-indexeddb**: 2 files

### AI

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

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 5 files · [src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx, line 3](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx#L3)
- **[PostHog](https://seerepo.com/uses/posthog)**: 1 file · [src/frontend/apps/impress/src/services/PosthogAnalytic.tsx, line 2](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/services/PosthogAnalytic.tsx#L2)

## Support (src/frontend/apps/impress)

### Testing

- **Vitest**: 89 files
- **Testing Library**: 43 files
- **fetch-mock**: 17 files

### Other

- **react-i18next**: 131 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 55 files
- **zustand**: 18 files
- **i18next**: 17 files
- **yjs**: 6 files
- **uuid**: 5 files
- **clsx**: 3 files
- **jszip**: 3 files
- **use-debounce**: 3 files
- **y-websocket**: 3 files
- **Lodash**: 2 files
- **luxon**: 2 files
- **.ENV**: 1 file
- **emoji-regex**: 1 file
- **i18next-browser-languagedetector**: 1 file
- **lib0**: 1 file
- **y-protocols**: 1 file

## Support (src/frontend/packages/i18n)

### Tools

- **yargs**: 2 files

## Frontend (src/frontend/servers/y-provider)

### Interface

- **@blocknote/core**: 7 files

## Backend (src/frontend/servers/y-provider)

### The base

- **[Express](https://seerepo.com/uses/express)**: 3 files · [in src/frontend/servers/y-provider/package.json](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/servers/y-provider/package.json)

### Sign-in

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

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 3 files · [src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx, line 3](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx#L3)

## Support (src/frontend/servers/y-provider)

### Testing

- **Vitest**: 4 files
- **supertest**: 3 files

### Other

- **cors**: 1 file
- **y-prosemirror**: 1 file
- **yjs**: 1 file

## Backend (src/yhub-server)

### Data

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

### Sign-in

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

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx, line 3](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/features/docs/doc-editor/components/custom-inline-content/Mention/Interlinking/InterlinkingLinkInlineContent.tsx#L3)

## Support (src/yhub-server)

### Testing

- **Vitest**: 11 files

### Deploy

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

### Other

- **@y/y**: 2 files

## Other repos with a similar stack

- [makeplane/plane](https://seerepo.com/r/makeplane/plane/built): Django, django-storages, psycopg, Celery, Postgres, dj-database-url, django-redis, Redis, OpenAI, uvicorn, djangorestframework, React, y-indexeddb, Express, pyjwt, lxml, beautifulsoup4, boto3, cmdk, frimousse, react-dropzone · [Compare](https://seerepo.com/compare/makeplane/plane/vs/suitenumerique/docs)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): Postgres, Redis, PostHog, Sentry, OpenAI, uvicorn, React, Next.js, pyjwt, langfuse, beautifulsoup4, jsonschema, Pydantic, boto3, prometheus-client, cmdk, ai, jose · [Compare](https://seerepo.com/compare/Significant-Gravitas/AutoGPT/vs/suitenumerique/docs)
- [apache/superset](https://seerepo.com/r/apache/superset/built): Celery, Postgres, Redis, uvicorn, React, Express, pyjwt, joserfc, markdown, beautifulsoup4, jsonschema, Pydantic, boto3, Gunicorn, prometheus-client · [Compare](https://seerepo.com/compare/apache/superset/vs/suitenumerique/docs)
- [twentyhq/twenty](https://seerepo.com/r/twentyhq/twenty/built): Postgres, Redis, Sentry, OpenAI, React, Express, react-intersection-observer, @floating-ui/react, frimousse, react-dropzone, ai, jose · [Compare](https://seerepo.com/compare/suitenumerique/docs/vs/twentyhq/twenty)
- [bojieli/ai-agent-book](https://seerepo.com/r/bojieli/ai-agent-book/built): Postgres, PostHog, OpenAI, uvicorn, React, Next.js, Express, lxml, markdown, python-magic, beautifulsoup4, Pydantic · [Compare](https://seerepo.com/compare/bojieli/ai-agent-book/vs/suitenumerique/docs)
- [BerriAI/litellm](https://seerepo.com/r/BerriAI/litellm/built): psycopg, Postgres, Redis, OpenAI, React, Next.js, jsonschema, Pydantic, boto3, cmdk, react-resizable-panels · [Compare](https://seerepo.com/compare/BerriAI/litellm/vs/suitenumerique/docs)

## Frequently asked questions

### What language is docs written in?

docs is written in TypeScript, with 141,881 written lines.

### What framework does docs use?

docs is built with Django, uvicorn, djangorestframework, React, Next.js, and Express.

### What database does docs use?

docs stores its data in Celery, Postgres, idb, and y-indexeddb and reaches it with django-treebeard.

### What does docs sign people in with?

docs signs people in with pyjwt, joserfc, and jose.

### Does docs use AI?

Yes. docs uses AI through pydantic-ai-slim, langfuse, OpenAI, and ai.

### What services does docs use?

docs measures its use with PostHog, watches its errors with Sentry, and uses django-storages, psycopg, dj-database-url, django-redis, Redis, and lru-cache.

The proof: [src/frontend/apps/impress/src/services/PosthogAnalytic.tsx, line 2](https://github.com/suitenumerique/docs/blob/03d5b9f5e5941644d48f58158ae9567b9f600cff/src/frontend/apps/impress/src/services/PosthogAnalytic.tsx#L2)

### Does docs have tests?

Yes. docs has 280 test files and is tested with Vitest, Testing Library, fetch-mock, and supertest.

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

The ones that share most of its stack: makeplane/plane, Significant-Gravitas/AutoGPT, and apache/superset.

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