Source: https://seerepo.com/r/neondatabase/electric/built
Markdown source: https://seerepo.com/r/neondatabase/electric/built.md
Description: electric is a TypeScript repo built with Electron, React, react-native, Expo, Vite, and 4 more. It reaches its data with Drizzle.

# What is electric built with?

electric is a TypeScript repo built with Electron, React, react-native, Expo, Vite, and 4 more. It reaches its data with Drizzle, uses AI through Pi and Anthropic, watches its errors with Sentry, makes its content with expo-image-manipulator, expo-image-picker, @mozilla/readability, turndown, streamdown, and 2 more, validates its data with Zod, @sinclair/typebox, @standard-schema/spec, zod-to-json-schema, Ajv, and 1 more, is tested with Vitest, jsdom, fast-check, ink-testing-library, and Testing Library, deploys with pino, tracing, OpenTelemetry, opentelemetry-otlp, tracing-opentelemetry, and 1 more, and uses MCP, @react-native-async-storage/async-storage, TanStack, Postgres, SQLite, and 2 more. It has 441,703 written lines, with 489 test files.

Read on November 13, 2026, at commit 3f9809f.

Repository: https://github.com/neondatabase/electric

## Support (packages/agents-desktop)

### The base

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

### Other

- **electron-updater**: 1 file
- **fix-path**: 1 file
- **undici**: 1 file

## Backend (packages/agents-mcp)

### Services

- **[MCP](https://seerepo.com/uses/mcp)**: 3 files · [packages/agents-mcp/src/transports/http.ts, line 1](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-mcp/src/transports/http.ts#L1)

## Support (packages/agents-mcp)

### Testing

- **Vitest**: 21 files

## Frontend (packages/agents-mobile)

### The base

- **[React](https://seerepo.com/uses/react)**: 41 files · [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)
- **[react-native](https://seerepo.com/uses/react-native)**: 31 files
- **[Expo](https://seerepo.com/uses/expo)**: 12 files · [in packages/agents-mobile/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-mobile/package.json)

### Interface

- **[react-native-safe-area-context](https://seerepo.com/uses/react-native-safe-area-context)**: 7 files
- **[react-native-gesture-handler](https://seerepo.com/uses/react-native-gesture-handler)**: 2 files
- **[expo-status-bar](https://seerepo.com/uses/expo-status-bar)**: 1 file
- **[react-native-svg](https://seerepo.com/uses/react-native-svg)**: 1 file

## Backend (packages/agents-mobile)

### Data

- **[@react-native-async-storage/async-storage](https://seerepo.com/uses/react-native-async-storage-async-storage)**: 9 files
- **TanStack**: 9 files

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [packages/agents-mobile/src/lib/sentry.ts, line 1](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-mobile/src/lib/sentry.ts#L1)

## Support (packages/agents-mobile)

### Content

- **expo-image-manipulator**: 1 file
- **[expo-image-picker](https://seerepo.com/uses/expo-image-picker)**: 1 file

### Validation

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

### Testing

- **Vitest**: 10 files

### Other

- **expo-constants**: 6 files
- **expo-web-browser**: 2 files
- **expo-clipboard**: 1 file

## Frontend (packages/agents-runtime)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)

## Backend (packages/agents-runtime)

### Data

- **TanStack**: 3 files

### AI

- **[Pi](https://seerepo.com/uses/pi)**: 13 files

### Services

- **[Anthropic](https://seerepo.com/uses/anthropic)**: 1 file · [packages/agents-runtime/src/tools/brave-search.ts, line 1](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-runtime/src/tools/brave-search.ts#L1)

## Support (packages/agents-runtime)

### Content

- **[@mozilla/readability](https://seerepo.com/uses/mozilla-readability)**: 1 file
- **[turndown](https://seerepo.com/uses/turndown)**: 1 file

### Validation

- **[@sinclair/typebox](https://seerepo.com/uses/sinclair-typebox)**: 12 files
- **[Zod](https://seerepo.com/uses/zod)**: 4 files
- **[@standard-schema/spec](https://seerepo.com/uses/standard-schema-spec)**: 3 files
- **[zod-to-json-schema](https://seerepo.com/uses/zod-to-json-schema)**: 2 files
- **[Ajv](https://seerepo.com/uses/ajv)**: 1 file

### Testing

- **Vitest**: 82 files
- **jsdom**: 1 file

### Deploy

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

### Other

- **diff**: 2 files
- **XState**: 2 files
- **cron-parser**: 1 file

## Backend (packages/agents-server-conformance-tests)

### AI

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

## Support (packages/agents-server-conformance-tests)

### Testing

- **Vitest**: 3 files
- **fast-check**: 1 file

## Frontend (packages/agents-server-ui)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)
- **[React](https://seerepo.com/uses/react)**: 112 files · [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)
- **[@tanstack/react-router](https://seerepo.com/uses/tanstack-react-router)**: 18 files
- **[Expo](https://seerepo.com/uses/expo)**: 1 file · [in packages/agents-mobile/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-mobile/package.json)

### Interface

- **[Base UI](https://seerepo.com/uses/base-ui)**: 16 files
- **[tanstack](https://seerepo.com/uses/tanstack)**: 3 files
- **@handlewithcare/react-prosemirror**: 1 file
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 1 file
- **[ProseMirror](https://seerepo.com/uses/prosemirror)**: 1 file

### Icons

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

## Backend (packages/agents-server-ui)

### Data

- **TanStack**: 26 files

## Support (packages/agents-server-ui)

### Content

- **[streamdown](https://seerepo.com/uses/streamdown)**: 7 files
- **[katex](https://seerepo.com/uses/katex)**: 1 file
- **[shiki](https://seerepo.com/uses/shiki)**: 1 file

### Validation

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

### Testing

- **Vitest**: 18 files

### Tools

- **react-scan**: 1 file

### Other

- **nanoid**: 2 files
- **fractional-indexing**: 1 file

## Backend (packages/agents-server)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [packages/agents-server/src/db/index.ts, line 6](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server/src/db/index.ts#L6)

### Data access

- **[Drizzle](https://seerepo.com/uses/drizzle)**: 7 files

### AI

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

## Support (packages/agents-server)

### The base

- **itty-router**: 15 files
- **@whatwg-node/server**: 1 file

### Validation

- **[@sinclair/typebox](https://seerepo.com/uses/sinclair-typebox)**: 12 files
- **[Ajv](https://seerepo.com/uses/ajv)**: 2 files

### Testing

- **Vitest**: 53 files

### Deploy

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

### Other

- **undici**: 3 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 2 files
- **fastq**: 1 file

## Frontend (packages/agents)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)

### Interface

- **@radix-ui/themes**: 1 file

### Icons

- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 1 file

## Backend (packages/agents)

### Data

- **[SQLite](https://seerepo.com/uses/sqlite)**: 1 file · [packages/agents/src/docs/knowledge-base.ts, line 6](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents/src/docs/knowledge-base.ts#L6)
- **[sqlite-vec](https://seerepo.com/uses/sqlite-vec)**: 1 file

### AI

- **[Pi](https://seerepo.com/uses/pi)**: 10 files

## Support (packages/agents)

### Content

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

### Validation

- **[@sinclair/typebox](https://seerepo.com/uses/sinclair-typebox)**: 7 files
- **[Zod](https://seerepo.com/uses/zod)**: 1 file

### Testing

- **Vitest**: 16 files

### Deploy

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

### Other

- **nanoid**: 1 file
- **undici**: 1 file

## Backend (packages/durable-streams-rust)

### Data

- **[object_store](https://seerepo.com/uses/object-store)**: 1 file

## Support (packages/durable-streams-rust)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 15 files

### Testing

- **Vitest**: 1 file

### Deploy

- **[tracing](https://seerepo.com/uses/tracing)**: 2 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file
- **[opentelemetry-otlp](https://seerepo.com/uses/opentelemetry-otlp)**: 1 file
- **[tracing-opentelemetry](https://seerepo.com/uses/tracing-opentelemetry)**: 1 file
- **[tracing-subscriber](https://seerepo.com/uses/tracing-subscriber)**: 1 file

### Other

- **bytes**: 7 files
- **libc**: 6 files
- **crc32c**: 2 files
- **serde_json**: 2 files
- **dashmap**: 1 file
- **httparse**: 1 file
- **percent-encoding**: 1 file
- **serde**: 1 file

## Frontend (packages/electric-ax)

### The base

- **[React](https://seerepo.com/uses/react)**: 2 files · [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)

### Interface

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

## Backend (packages/electric-ax)

### Data

- **TanStack**: 1 file

## Support (packages/electric-ax)

### Testing

- **Vitest**: 9 files
- **ink-testing-library**: 1 file

### Tools

- **commander**: 1 file

## Support (packages/electric-telemetry)

### Tools

- **ex_doc**

### Other

- **jason**

## Backend (packages/elixir-client)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [packages/agents-server/src/db/index.ts, line 6](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server/src/db/index.ts#L6)

## Support (packages/elixir-client)

### Validation

- **nimble_options**

### Tools

- **ex_doc**

### Other

- **jason**
- **req**

## Support (packages/experimental)

### Testing

- **Vitest**: 5 files

### Other

- **uuid**: 3 files

## Frontend (packages/react-hooks)

### The base

- **[React](https://seerepo.com/uses/react)**: 1 file · [in packages/agents-server-ui/package.json](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server-ui/package.json)

## Support (packages/react-hooks)

### Testing

- **Vitest**: 4 files
- **Testing Library**: 2 files

### Other

- **use-sync-external-store**: 1 file
- **uuid**: 1 file

## Support (packages/start)

### Testing

- **Vitest**: 6 files

## Backend (packages/sync-service)

### Data

- **[Postgres](https://seerepo.com/uses/postgres)**: 1 file · [packages/agents-server/src/db/index.ts, line 6](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-server/src/db/index.ts#L6)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [packages/agents-mobile/src/lib/sentry.ts, line 1](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-mobile/src/lib/sentry.ts#L1)

## Support (packages/sync-service)

### Validation

- **nimble_options**

### Tools

- **ex_doc**

### Other

- **jason**
- **req**

## Support (packages/typescript-client)

### The base

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

### Testing

- **Vitest**: 25 files
- **fast-check**: 2 files

### Other

- **uuid**: 3 files
- **@microsoft/fetch-event-source**: 1 file

## Support (packages/y-electric)

### Testing

- **Vitest**: 2 files

### Other

- **lib0**: 4 files
- **y-protocols**: 2 files
- **yjs**: 2 files

## Other repos with a similar stack

- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): Electron, MCP, React, TanStack, Sentry, Anthropic, Vite, SQLite, sqlite-vec, Zod, @mozilla/readability, turndown, Lucide, streamdown, katex, Drizzle, Radix UI · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/neondatabase/electric)
- [aaif-goose/goose](https://seerepo.com/r/aaif-goose/goose/built): Electron, MCP, React, TanStack, Vite, Tokio, Zod, turndown, Lucide, katex, Radix UI, tracing, OpenTelemetry, opentelemetry-otlp, tracing-opentelemetry, tracing-subscriber · [Compare](https://seerepo.com/compare/aaif-goose/goose/vs/neondatabase/electric)
- [multica-ai/multica](https://seerepo.com/r/multica-ai/multica/built): Electron, React, react-native, Expo, TanStack, Postgres, react-native-safe-area-context, react-native-gesture-handler, expo-status-bar, react-native-svg, expo-image-picker, Zod, Base UI, Mermaid, katex, shiki · [Compare](https://seerepo.com/compare/multica-ai/multica/vs/neondatabase/electric)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): MCP, React, Sentry, Anthropic, Vite, Postgres, Tokio, Zod, Ajv, pino, Base UI, Mermaid, Lucide, Drizzle, Radix UI · [Compare](https://seerepo.com/compare/neondatabase/electric/vs/paperclipai/paperclip)
- [ruvnet/RuView](https://seerepo.com/r/ruvnet/RuView/built): React, react-native, Expo, @react-native-async-storage/async-storage, Vite, Postgres, SQLite, Tokio, react-native-safe-area-context, react-native-gesture-handler, react-native-svg, tracing, OpenTelemetry, opentelemetry-otlp, tracing-subscriber · [Compare](https://seerepo.com/compare/neondatabase/electric/vs/ruvnet/RuView)
- [cline/cline](https://seerepo.com/r/cline/cline/built): MCP, React, Anthropic, Vite, SQLite, Zod, turndown, pino, Base UI, Mermaid, Lucide, streamdown, shiki, Radix UI · [Compare](https://seerepo.com/compare/cline/cline/vs/neondatabase/electric)

## Frequently asked questions

### What language is electric written in?

electric is written in TypeScript, with 441,703 written lines.

### What framework does electric use?

electric is built with Electron, React, react-native, Expo, Vite, @tanstack/react-router, itty-router, @whatwg-node/server, and Tokio.

### Does electric use AI?

Yes. electric uses AI through Pi and Anthropic.

### What services does electric use?

electric watches its errors with Sentry and uses MCP, @react-native-async-storage/async-storage, TanStack, Postgres, SQLite, sqlite-vec, and object_store.

The proof: [packages/agents-mobile/src/lib/sentry.ts, line 1](https://github.com/neondatabase/electric/blob/3f9809fb0bd894cb74470d434749673492ad7acf/packages/agents-mobile/src/lib/sentry.ts#L1)

### Does electric have tests?

Yes. electric has 489 test files and is tested with Vitest, jsdom, fast-check, ink-testing-library, and Testing Library.

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

The ones that share most of its stack: CherryHQ/cherry-studio, aaif-goose/goose, and multica-ai/multica.

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