Source: https://seerepo.com/r/AndyMik90/Aperant/built
Markdown source: https://seerepo.com/r/AndyMik90/Aperant/built.md
Description: Aperant is a TypeScript repo built with Vite, React, and Electron. It stores its data in SQLite. It has 317,392 written lines, with 232 test files.

# What is Aperant built with?

Aperant is a TypeScript repo built with Vite, React, and Electron. It stores its data in SQLite, uses AI through ai, ai-sdk, OpenRouter, @tavily/core, Anthropic, and 1 more, watches its errors with Sentry, makes its content with react-markdown, remark-gfm, rehype-raw, and rehype-sanitize, validates its data with Zod, is tested with Vitest, Testing Library, and @playwright/test, deploys with electron-log, and uses MCP. It has 317,392 written lines, with 232 test files.

Read on November 9, 2026, at commit 20250db.

Repository: https://github.com/AndyMik90/Aperant

## Frontend

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in apps/desktop/package.json](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/package.json)
- **[React](https://seerepo.com/uses/react)**: 223 files · [in apps/desktop/package.json](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/package.json)

### Styles

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

### Interface

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 20 files
- **[dnd-kit](https://seerepo.com/uses/dnd-kit)**: 14 files
- **[xterm](https://seerepo.com/uses/xterm)**: 8 files
- **[motion](https://seerepo.com/uses/motion)**: 5 files
- **[TanStack](https://seerepo.com/uses/tanstack)**: 1 file

### Icons

- **[Lucide](https://seerepo.com/uses/lucide)**: 245 files

## Backend

### Data

- **[SQLite](https://seerepo.com/uses/sqlite)**: 10 files · [apps/desktop/src/main/ai/memory/embedding-service.ts, line 17](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/ai/memory/embedding-service.ts#L17)

### AI

- **[ai](https://seerepo.com/uses/ai)**: 36 files
- **[ai-sdk](https://seerepo.com/uses/ai-sdk)**: 4 files
- **[OpenRouter](https://seerepo.com/uses/openrouter)**: 2 files
- **@tavily/core**: 1 file

### Services

- **[Anthropic](https://seerepo.com/uses/anthropic)**: 3 files · [apps/desktop/src/main/ai/providers/factory.ts, line 11](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/ai/providers/factory.ts#L11)
- **[OpenAI](https://seerepo.com/uses/openai)**: 2 files · [apps/desktop/src/main/ai/providers/factory.ts, line 17](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/ai/providers/factory.ts#L17)
- **[Sentry](https://seerepo.com/uses/sentry)**: 2 files · [apps/desktop/src/main/sentry.ts, line 15](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/sentry.ts#L15)
- **[MCP](https://seerepo.com/uses/mcp)**: 1 file · [apps/desktop/src/main/ai/mcp/client.ts, line 15](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/ai/mcp/client.ts#L15)

## Support

### The base

- **[Electron](https://seerepo.com/uses/electron)**: 105 files

### Content

- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 7 files
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 7 files
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 2 files
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 2 files

### Validation

- **[Zod](https://seerepo.com/uses/zod)**: 41 files

### Testing

- **Vitest**: 209 files
- **Testing Library**: 26 files
- **@playwright/test**: 5 files

### Deploy

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

### Tools

- **chokidar**: 2 files

### Other

- **react-i18next**: 164 files
- **zustand**: 24 files
- **XState**: 10 files
- **web-tree-sitter**: 4 files
- **@lydell/node-pty**: 3 files
- **@electron-toolkit/utils**: 2 files
- **minimatch**: 2 files
- **uuid**: 2 files
- **.ENV**: 1 file
- **clsx**: 1 file
- **electron-updater**: 1 file
- **i18next**: 1 file
- **proper-lockfile**: 1 file
- **SemVer**: 1 file

## Other repos with a similar stack

- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): Vite, React, SQLite, Anthropic, OpenAI, Sentry, MCP, Electron, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, dnd-kit, motion, TanStack, Lucide, ai, ai-sdk, OpenRouter, remark-gfm, Zod · [Compare](https://seerepo.com/compare/AndyMik90/Aperant/vs/CherryHQ/cherry-studio)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): Vite, React, Anthropic, OpenAI, Sentry, MCP, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, dnd-kit, xterm, motion, Lucide, ai, react-markdown, remark-gfm, Zod · [Compare](https://seerepo.com/compare/AndyMik90/Aperant/vs/paperclipai/paperclip)
- [cline/cline](https://seerepo.com/r/cline/cline/built): Vite, React, SQLite, Anthropic, OpenAI, MCP, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, motion, Lucide, ai, ai-sdk, react-markdown, remark-gfm, Zod · [Compare](https://seerepo.com/compare/AndyMik90/Aperant/vs/cline/cline)
- [janhq/jan](https://seerepo.com/r/janhq/jan/built): Vite, React, SQLite, OpenAI, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, dnd-kit, motion, TanStack, Lucide, ai, ai-sdk, react-markdown, remark-gfm, Zod · [Compare](https://seerepo.com/compare/AndyMik90/Aperant/vs/janhq/jan)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): Vite, React, OpenAI, Sentry, MCP, Tailwind CSS, class-variance-authority, Radix UI, dnd-kit, motion, Lucide, ai, react-markdown, remark-gfm, Zod · [Compare](https://seerepo.com/compare/AndyMik90/Aperant/vs/supabase/supabase)
- [aaif-goose/goose](https://seerepo.com/r/aaif-goose/goose/built): Vite, React, MCP, Electron, Tailwind CSS, class-variance-authority, tailwind-merge, Radix UI, TanStack, Lucide, react-markdown, remark-gfm, Zod, electron-log · [Compare](https://seerepo.com/compare/aaif-goose/goose/vs/AndyMik90/Aperant)

## Frequently asked questions

### What language is Aperant written in?

Aperant is written in TypeScript, with 317,392 written lines.

### What framework does Aperant use?

Aperant is built with Vite, React, and Electron.

The proof: [in apps/desktop/package.json](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/package.json)

### What database does Aperant use?

Aperant stores its data in SQLite.

The proof: [apps/desktop/src/main/ai/memory/embedding-service.ts, line 17](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/ai/memory/embedding-service.ts#L17)

### Does Aperant use AI?

Yes. Aperant uses AI through ai, ai-sdk, OpenRouter, @tavily/core, Anthropic, and OpenAI.

### What services does Aperant use?

Aperant watches its errors with Sentry and uses MCP.

The proof: [apps/desktop/src/main/sentry.ts, line 15](https://github.com/AndyMik90/Aperant/blob/20250db069a849ab001ac6ab9e3e9779886ab9e2/apps/desktop/src/main/sentry.ts#L15)

### Does Aperant have tests?

Yes. Aperant has 232 test files and is tested with Vitest, Testing Library, and @playwright/test.

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

The ones that share most of its stack: CherryHQ/cherry-studio, paperclipai/paperclip, and cline/cline.

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