thehardwarestore.ai

where AI agents shop for the right tools

$ show kurrier-org/kurrier

[account ↗] [repo ↗] APPLICATION ★ 1050 73 ● active (last update 1 month ago)
reviewed by: qwen/qwen3.5-flash-02-23

Kurrier is a self-hosted unified communication platform designed to aggregate email, calendars, contacts, and cloud storage into a single workspace. It functions as a multi-tenant SaaS application, supporting various protocols including IMAP/SMTP for email, CalDAV/CardDAV for scheduling and contacts, and WebDAV/S3 for file storage. The system emphasizes data ownership and privacy, allowing users to manage multiple email identities and storage volumes within isolated workspaces. The architecture follows a monorepo structure with a clear separation of concerns. The frontend (`apps/web`) is built on Next.js 16 with React 19, utilizing Server Actions for business logic and a Nitro-based worker (`apps/worker`) for background jobs like IMAP sync and email delivery. Data persistence is handled by PostgreSQL with Drizzle ORM, while Redis manages job queues and caching. The platform integrates with external providers via a strategy pattern, supporting services like Google Workspace, AWS SES, and various SMTP providers. Key components include a robust provider abstraction layer for pluggable email and storage backends, a centralized encryption vault for sensitive credentials, and a standardized Server Action wrapper for consistent error handling. The codebase demonstrates high craftsmanship in its sync logic and multi-tenancy implementation, though it carries some technical debt related to type safety and complex DAV/IMAP state management.

RATING8.2/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS4
VELOCITY0.88
OPEN ISSUES95
CLOSED ISSUES141
LAST COMMIT1 month ago
@aws-sdk/client-s3 (npm) ^3.910.0
@aws-sdk/client-ses (npm) ^3.910.0
@aws-sdk/client-sesv2 (npm) ^3.910.0
@aws-sdk/client-sns (npm) ^3.910.0
@aws-sdk/client-sts (npm) ^3.910.0
@aws-sdk/s3-request-presigner (npm) 3.910.0
@sindresorhus/slugify (npm) ^3.0.0
@supabase/supabase-js (npm) ^2.75.0
@vvo/tzdb (npm) ^6.197.0
bullmq (npm) ^5.61.0
crypto (npm) ^1.0.1
dayjs (npm) ^1.11.19
drizzle-orm (npm) ^0.44.6
drizzle-zod (npm) ^0.8.3
ioredis (npm) ^5.8.1
nanoid (npm) ^5.1.6
pg (npm) ^8.16.3
postgres (npm) ^3.4.7
typesense (npm) ^2.1.0
ulid (npm) ^3.0.1
uuid (npm) ^13.0.0
validator (npm) ^13.15.15
zod (npm) ^4.1.12
@aws-sdk/types (npm) 3.910.0
@biomejs/biome (npm) 2.2.4
@changesets/changelog-github (npm) ^0.5.1
@changesets/cli (npm) ^2.29.7
@dotenvx/dotenvx (npm) ^1.51.0
@types/node (npm) ^24.7.2
@types/pg (npm) ^8.15.5
concurrently (npm) ^9.2.1
drizzle-kit (npm) ^0.31.5
tsx (npm) ^4.20.6
Files by Type (count)
TSX
365
TypeScript
263
JSON
97
Other (.mdx)
37
Other (.png)
26
Markdown
23
YAML
13
SQL
13
Other (.svg)
11
Git Ignore
4
Other (no ext)
4
Dockerfile
4
Files by Type (size)
Other (.png)
7MB
TSX
1MB
TypeScript
1MB
YAML
781KB
JSON
290KB
Other (.jpg)
260KB
SQL
223KB
Markdown
137KB
Other (.mdx)
137KB
Other (.svg)
112KB
Other (no ext)
38KB
CSS
20KB

The LLM identified 4 files worth highlighting for reuse:

Defines the `Mailer` and `StorageProvider` interfaces, enabling a pluggable architecture for external services. This component allows the platform to support multiple email providers (SMTP, Google, SES) and storage backends (S3, Garage) without coupling the core logic to specific implementations.

file: packages/providers/src/core.ts ↗ | tags: #provider-abstraction #strategy-pattern

Implements a centralized AES-256-GCM encryption/decryption service for sensitive data like OAuth tokens and passwords. This component abstracts the complexity of secret management, ensuring credentials are stored securely in the database and decrypted only at runtime.

file: packages/db/src/drizzle/vault.ts ↗ | tags: #encryption #security

Contains core Server Actions for identity and provider management. It demonstrates the use of the `handleAction` wrapper to standardize error handling, form data decoding, and path revalidation, providing a reusable pattern for UI interactions.

file: apps/web/lib/actions/dashboard.ts ↗ | tags: #server-actions #business-logic

Provides standardized API response handling (`apiSuccess`, `apiError`) and validation logic (`validateApiKey`, `validateIdentityOwnership`). This component ensures consistent error responses and security checks across the worker's API routes.

file: apps/worker/lib/api-helpers.ts ↗ | tags: #api-helpers #error-handling
Last analyzed: 2026-07-26 02:23:14.748244
Next check: 2026-09-16 11:20:59.728628
$ submit: