Source: https://seerepo.com/r/BloopAI/vibe-kanban/built
Markdown source: https://seerepo.com/r/BloopAI/vibe-kanban/built.md
Description: vibe-kanban is a Rust repo built with Tauri, axum, Tokio, axum-extra, objc2-foundation, and 5 more.

# What is vibe-kanban built with?

vibe-kanban is a Rust repo built with Tauri, axum, Tokio, axum-extra, objc2-foundation, and 5 more. It stores its data in sqlx, Postgres, SQLite, and @tanstack/react-db, signs people in with ed25519-dalek, hmac, jsonwebtoken, spake2, azure_identity, and 2 more, uses AI through rmcp, agent-client-protocol, and codex-protocol, measures its use with PostHog, watches its errors with Sentry, makes its content with csv, image, jsonc-parser, zip, @lexical/markdown, and 5 more, validates its data with schemars, Zod, and rjsf, deploys with opentelemetry-http, tracing, tracing-subscriber, azure_core, OpenTelemetry, and 2 more, and uses aws-sdk-s3, sqlx-postgres, sqlx-sqlite, azure_storage_blob, lru, and 1 more. It has 221,595 written lines, with 6 test files.

Read on November 8, 2026, at commit 08064e0.

Repository: https://github.com/BloopAI/vibe-kanban

## Frontend (/)

### The base

- **[Tauri](https://seerepo.com/uses/tauri)**: 4 files

### Interface

- **[dialoguer](https://seerepo.com/uses/dialoguer)**: 2 files
- **[indicatif](https://seerepo.com/uses/indicatif)**: 2 files
- **notify-rust**: 2 files
- **objc2-user-notifications**: 1 file
- **objc2-web-kit**: 1 file
- **[tauri-plugin-notification](https://seerepo.com/uses/tauri-plugin-notification)**: 1 file
- **tauri-winrt-notification**: 1 file

## Backend (/)

### The base

- **[axum](https://seerepo.com/uses/axum)**: 113 files

### Data

- **[aws-sdk-s3](https://seerepo.com/uses/aws-sdk-s3)**
- **[sqlx-postgres](https://seerepo.com/uses/sqlx-postgres)**
- **[sqlx-sqlite](https://seerepo.com/uses/sqlx-sqlite)**
- **[sqlx](https://seerepo.com/uses/sqlx)**: 97 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 4 files · [crates/api-types/Cargo.toml, line 11](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/crates/api-types/Cargo.toml#L11)
- **[SQLite](https://seerepo.com/uses/sqlite)**: 3 files · [crates/db/Cargo.toml, line 14](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/crates/db/Cargo.toml#L14)
- **[azure_storage_blob](https://seerepo.com/uses/azure-storage-blob)**: 1 file
- **[lru](https://seerepo.com/uses/lru)**: 1 file
- **[moka](https://seerepo.com/uses/moka)**: 1 file

### Sign-in

- **[ed25519-dalek](https://seerepo.com/uses/ed25519-dalek)**: 7 files
- **[hmac](https://seerepo.com/uses/hmac)**: 4 files
- **[jsonwebtoken](https://seerepo.com/uses/jsonwebtoken)**: 4 files
- **spake2**: 2 files
- **[azure_identity](https://seerepo.com/uses/azure-identity)**: 1 file
- **[hkdf](https://seerepo.com/uses/hkdf)**: 1 file
- **[jwt-decode](https://seerepo.com/uses/jwt-decode)**: 1 file

### AI

- **[rmcp](https://seerepo.com/uses/rmcp)**: 15 files
- **agent-client-protocol**: 5 files
- **codex-protocol**: 4 files

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 1 file · [crates/utils/src/sentry.rs, line 53](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/crates/utils/src/sentry.rs#L53)

## Support (/)

### The base

- **[Tokio](https://seerepo.com/uses/tokio)**: 119 files
- **[axum-extra](https://seerepo.com/uses/axum-extra)**: 2 files
- **[objc2-foundation](https://seerepo.com/uses/objc2-foundation)**: 2 files

### Content

- **[csv](https://seerepo.com/uses/csv)**: 1 file
- **[image](https://seerepo.com/uses/image)**: 1 file
- **[jsonc-parser](https://seerepo.com/uses/jsonc-parser)**: 1 file
- **[zip](https://seerepo.com/uses/zip)**: 1 file

### Validation

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

### Deploy

- **opentelemetry-http**
- **[tracing](https://seerepo.com/uses/tracing)**: 177 files
- **[tracing-subscriber](https://seerepo.com/uses/tracing-subscriber)**: 7 files
- **[azure_core](https://seerepo.com/uses/azure-core)**: 2 files
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 1 file
- **tracing-error**: 1 file
- **[tracing-opentelemetry](https://seerepo.com/uses/tracing-opentelemetry)**: 1 file

### Tools

- **ts-rs**: 108 files
- **rust-embed**: 3 files
- **bon**: 1 file
- **clap**: 1 file

### Other

- **aws-lc-rs**
- **aws-lc-sys**
- **openssl**
- **strum**
- **which**
- **uuid**: 215 files
- **serde**: 189 files
- **serde_json**: 121 files
- **chrono**: 92 files
- **thiserror**: 91 files
- **anyhow**: 44 files
- **async-trait**: 34 files
- **futures**: 34 files
- **tokio-util**: 34 files
- **reqwest**: 27 files
- **base64**: 22 files
- **json-patch**: 19 files
- **dirs**: 18 files
- **futures-util**: 15 files
- **secrecy**: 14 files
- **sha2**: 12 files
- **url**: 11 files
- **strum_macros**: 10 files
- **command-group**: 8 files
- **rustls**: 8 files
- **tempfile**: 8 files
- **tokio-tungstenite**: 8 files
- **http**: 7 files
- **rand**: 7 files
- **strip-ansi-escapes**: 7 files
- **codex-app-server-protocol**: 6 files
- **derivative**: 6 files
- **tower-http**: 6 files
- **bytes**: 5 files
- **regex**: 5 files
- **webrtc**: 5 files
- **convert_case**: 4 files
- **os_info**: 4 files
- **russh**: 4 files
- **shlex**: 4 files
- **tokio-stream**: 4 files
- **backon**: 3 files
- **dashmap**: 3 files
- **enum_dispatch**: 3 files
- **ignore**: 3 files
- **mime_guess**: 3 files
- **ssh-key**: 3 files
- **toml**: 3 files
- **async-stream**: 2 files
- **directories**: 2 files
- **dunce**: 2 files
- **flate2**: 2 files
- **git2**: 2 files
- **Hyper**: 2 files
- **hyper-util**: 2 files
- **notify**: 2 files
- **notify-debouncer-full**: 2 files
- **objc2**: 2 files
- **once_cell**: 2 files
- **russh-sftp**: 2 files
- **tar**: 2 files
- **aes-gcm**: 1 file
- **arboard**: 1 file
- **aws-credential-types**: 1 file
- **block2**: 1 file
- **eventsource-stream**: 1 file
- **fst**: 1 file
- **futures-io**: 1 file
- **globwalk**: 1 file
- **hex**: 1 file
- **ipnetwork**: 1 file
- **nix**: 1 file
- **open**: 1 file
- **os_pipe**: 1 file
- **portable-pty**: 1 file
- **serde_with**: 1 file
- **shellexpand**: 1 file
- **similar**: 1 file
- **subtle**: 1 file
- **tauri-plugin-opener**: 1 file
- **tauri-plugin-shell**: 1 file
- **tauri-plugin-updater**: 1 file
- **time**: 1 file
- **urlencoding**: 1 file
- **walkdir**: 1 file
- **windows-sys**: 1 file
- **winreg**: 1 file
- **winsplit**: 1 file
- **xdg**: 1 file

## Support (npx-cli)

### Tools

- **cac**: 1 file

### Other

- **adm-zip**: 1 file

## Frontend (packages/local-web)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)
- **TanStack**: 26 files
- **[React](https://seerepo.com/uses/react)**: 11 files · [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **eBay**: 4 files
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 1 file

## Backend (packages/local-web)

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 2 files · [packages/web-core/src/shared/actions/index.ts, line 72](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/src/shared/actions/index.ts#L72)
- **[Sentry](https://seerepo.com/uses/sentry)**: 2 files · [crates/utils/src/sentry.rs, line 53](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/crates/utils/src/sentry.rs#L53)

## Support (packages/local-web)

### The base

- **[@tauri-apps/api](https://seerepo.com/uses/tauri-apps-api)**: 3 files

### Tools

- **click-to-react-component**: 1 file

### Other

- **@tanstack/react-query**: 1 file
- **react-i18next**: 1 file

## Frontend (packages/remote-web)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)
- **TanStack**: 36 files
- **[React](https://seerepo.com/uses/react)**: 20 files · [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

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

### Icons

- **[@phosphor-icons/react](https://seerepo.com/uses/phosphor-icons-react)**: 2 files
- **Simple Icons**: 1 file

## Backend (packages/remote-web)

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 1 file · [packages/web-core/src/shared/actions/index.ts, line 72](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/src/shared/actions/index.ts#L72)

## Support (packages/remote-web)

### Validation

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

### Other

- **@tanstack/react-query**: 7 files
- **zustand**: 1 file

## Frontend (packages/ui)

### The base

- **[React](https://seerepo.com/uses/react)**: 112 files · [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)

### Styles

- **[class-variance-authority](https://seerepo.com/uses/class-variance-authority)**: 4 files
- **[tailwind-merge](https://seerepo.com/uses/tailwind-merge)**: 2 files

### Interface

- **[lexical](https://seerepo.com/uses/lexical)**: 20 files
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 12 files
- **eBay**: 10 files
- **@hello-pangea/dnd**: 6 files
- **[react-virtuoso](https://seerepo.com/uses/react-virtuoso)**: 2 files
- **[@tanstack/react-virtual](https://seerepo.com/uses/tanstack-react-virtual)**: 1 file
- **[cmdk](https://seerepo.com/uses/cmdk)**: 1 file
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 1 file

### Icons

- **[@phosphor-icons/react](https://seerepo.com/uses/phosphor-icons-react)**: 85 files
- **[Lucide](https://seerepo.com/uses/lucide)**: 12 files

## Support (packages/ui)

### Content

- **@lexical/markdown**: 5 files

### Other

- **react-i18next**: 64 files
- **TanStack**: 2 files
- **@pierre/diffs**: 1 file
- **clsx**: 1 file

## Frontend (packages/web-core)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)
- **[React](https://seerepo.com/uses/react)**: 243 files · [in packages/web-core/package.json](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/package.json)
- **[tanstack](https://seerepo.com/uses/tanstack)**: 16 files

### Styles

- **[Tailwind CSS](https://seerepo.com/uses/tailwind-css)**

### Interface

- **eBay**: 38 files
- **[react-dropzone](https://seerepo.com/uses/react-dropzone)**: 4 files
- **[react-hotkeys-hook](https://seerepo.com/uses/react-hotkeys-hook)**: 4 files
- **[react-virtuoso](https://seerepo.com/uses/react-virtuoso)**: 4 files
- **[xterm](https://seerepo.com/uses/xterm)**: 4 files
- **@hello-pangea/dnd**: 3 files
- **[@tanstack/react-virtual](https://seerepo.com/uses/tanstack-react-virtual)**: 2 files
- **[@rjsf/core](https://seerepo.com/uses/rjsf-core)**: 1 file
- **[lexical](https://seerepo.com/uses/lexical)**: 1 file
- **[Mermaid](https://seerepo.com/uses/mermaid)**: 1 file
- **[Radix UI](https://seerepo.com/uses/radix-ui)**: 1 file
- **[react-resizable-panels](https://seerepo.com/uses/react-resizable-panels)**: 1 file

### Icons

- **[@phosphor-icons/react](https://seerepo.com/uses/phosphor-icons-react)**: 55 files
- **[Lucide](https://seerepo.com/uses/lucide)**: 33 files
- **Simple Icons**: 2 files

## Backend (packages/web-core)

### Data

- **@tanstack/react-db**: 2 files

### Services

- **[PostHog](https://seerepo.com/uses/posthog)**: 3 files · [packages/web-core/src/shared/actions/index.ts, line 72](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/src/shared/actions/index.ts#L72)

## Support (packages/web-core)

### Content

- **@lexical/markdown**: 1 file
- **[react-markdown](https://seerepo.com/uses/react-markdown)**: 1 file
- **[rehype-highlight](https://seerepo.com/uses/rehype-highlight)**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[rehype-sanitize](https://seerepo.com/uses/rehype-sanitize)**: 1 file
- **[remark-gfm](https://seerepo.com/uses/remark-gfm)**: 1 file

### Validation

- **rjsf**: 5 files
- **[Zod](https://seerepo.com/uses/zod)**: 1 file

### Other

- **react-i18next**: 82 files
- **TanStack**: 67 files
- **zustand**: 10 files
- **i18next**: 3 files
- **Lodash**: 3 files
- **rfc6902**: 3 files
- **@pierre/diffs**: 2 files
- **clsx**: 2 files
- **fancy-ansi**: 2 files
- **Immer**: 2 files
- **@noble/curves**: 1 file
- **i18next-browser-languagedetector**: 1 file

## Other repos with a similar stack

- [BerriAI/litellm](https://seerepo.com/r/BerriAI/litellm/built): axum, aws-sdk-s3, sqlx-postgres, sqlx, Postgres, SQLite, azure_storage_blob, moka, Tokio, React, jsonwebtoken, azure_identity, jwt-decode, rmcp, zip, schemars, tracing, tracing-subscriber, azure_core, Tailwind CSS, react-hotkeys-hook, Zod, class-variance-authority, cmdk, Lucide, react-resizable-panels, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/BerriAI/litellm/vs/BloopAI/vibe-kanban)
- [aaif-goose/goose](https://seerepo.com/r/aaif-goose/goose/built): axum, sqlx, lru, Tokio, Vite, TanStack, React, indicatif, rmcp, agent-client-protocol, image, zip, schemars, tracing, tracing-subscriber, OpenTelemetry, tracing-opentelemetry, Tailwind CSS, Zod, class-variance-authority, tailwind-merge, Radix UI, Lucide, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/aaif-goose/goose/vs/BloopAI/vibe-kanban)
- [paperclipai/paperclip](https://seerepo.com/r/paperclipai/paperclip/built): Postgres, Sentry, Tokio, Vite, React, hmac, Tailwind CSS, Zod, class-variance-authority, tailwind-merge, lexical, Radix UI, cmdk, Lucide, xterm, Mermaid, react-resizable-panels, react-markdown, remark-gfm · [Compare](https://seerepo.com/compare/BloopAI/vibe-kanban/vs/paperclipai/paperclip)
- [infiniflow/ragflow](https://seerepo.com/r/infiniflow/ragflow/built): Postgres, React, OpenTelemetry, Tailwind CSS, Zod, class-variance-authority, tailwind-merge, lexical, Radix UI, cmdk, Lucide, @lexical/markdown, react-dropzone, Mermaid, react-resizable-panels, react-markdown, rehype-raw, rehype-sanitize, remark-gfm · [Compare](https://seerepo.com/compare/BloopAI/vibe-kanban/vs/infiniflow/ragflow)
- [openinterpreter/openinterpreter](https://seerepo.com/r/openinterpreter/openinterpreter/built): axum, sqlx, lru, Sentry, Tokio, objc2-foundation, ed25519-dalek, hmac, jsonwebtoken, rmcp, agent-client-protocol, codex-protocol, image, zip, schemars, tracing, tracing-subscriber, OpenTelemetry, tracing-opentelemetry · [Compare](https://seerepo.com/compare/BloopAI/vibe-kanban/vs/openinterpreter/openinterpreter)
- [farion1231/cc-switch](https://seerepo.com/r/farion1231/cc-switch/built): Tauri, axum, SQLite, Tokio, objc2-foundation, Vite, React, @tauri-apps/api, rmcp, zip, Tailwind CSS, Zod, class-variance-authority, tailwind-merge, Radix UI, @tanstack/react-virtual, cmdk, Lucide · [Compare](https://seerepo.com/compare/BloopAI/vibe-kanban/vs/farion1231/cc-switch)

## Frequently asked questions

### What language is vibe-kanban written in?

vibe-kanban is written in Rust, with 221,595 written lines.

### What framework does vibe-kanban use?

vibe-kanban is built with Tauri, axum, Tokio, axum-extra, objc2-foundation, Vite, TanStack, React, @tauri-apps/api, and tanstack.

### What database does vibe-kanban use?

vibe-kanban stores its data in sqlx, Postgres, SQLite, and @tanstack/react-db.

### What does vibe-kanban sign people in with?

vibe-kanban signs people in with ed25519-dalek, hmac, jsonwebtoken, spake2, azure_identity, hkdf, and jwt-decode.

### Does vibe-kanban use AI?

Yes. vibe-kanban uses AI through rmcp, agent-client-protocol, and codex-protocol.

### What services does vibe-kanban use?

vibe-kanban measures its use with PostHog, watches its errors with Sentry, and uses aws-sdk-s3, sqlx-postgres, sqlx-sqlite, azure_storage_blob, lru, and moka.

The proof: [packages/web-core/src/shared/actions/index.ts, line 72](https://github.com/BloopAI/vibe-kanban/blob/08064e043c2d78ad123b473257ed867e7ce74768/packages/web-core/src/shared/actions/index.ts#L72)

### Does vibe-kanban have tests?

Yes. vibe-kanban has 6 test files.

### Which repos have a stack like vibe-kanban's?

The ones that share most of its stack: BerriAI/litellm, aaif-goose/goose, and paperclipai/paperclip.

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