Skip to main content
Niceyup is built as a modern monorepo using pnpm workspaces and Turborepo for efficient builds and development. The architecture follows a clean separation of concerns with shared packages and independent applications.

Frontend (apps/web)

Next.js 16

App Router with Server Components

React 19

Concurrent rendering and modern hooks

TypeScript 5

Full type safety across the codebase

TailwindCSS

Utility-first CSS framework

Shadcn/ui

High-quality component library

TanStack Query

Powerful data synchronization for React

Zustand

Lightweight state management

Zod

TypeScript-first schema validation

Lucide React

Beautiful icon library

Turbopack

Fast development bundling

Backend (apps/api)

Fastify 5

Fast and low overhead web framework

TypeScript

Type-safe backend development

Zod

Runtime type validation with Fastify integration

Swagger/OpenAPI

Auto-generated API documentation

Scalar

Interactive API reference

WebSocket

Real-time bidirectional communication

Redis

Caching and session storage

Documentation (apps/docs)

Mintlify

Developer documentation app

OpenAPI scraping

Generated endpoint docs from API schema

AI & ML Stack

Vercel AI SDK

Unified interface for AI models

AI SDK Gateway

Optional multi-provider model routing

AI SDK OpenAI Provider

OpenAI-compatible integration through AI SDK

LangChain

LLM application framework

Vector Store

Semantic search and embeddings

Embeddings

Text embedding generation for RAG

Streaming

Real-time AI response streaming

Database & ORM

PostgreSQL

Primary relational database

Drizzle ORM

TypeScript ORM with excellent DX

Drizzle Kit

Database migrations and introspection

Neon

Serverless Postgres hosting

Storage

AWS S3

Object storage for files and documents

S3 Presigned URLs

Secure file upload/download

Multi-bucket

Separate buckets for different file types

Caching & Real-time

Redis (ioredis)

In-memory data store for caching

WebSocket

Real-time message streaming

Resumable Streams

Recoverable real-time stream handling

Pub/Sub

Event-driven architecture

Cache Layer

Intelligent caching strategy

Background Jobs

Trigger.dev

Reliable background job processing

Python Integration

Database operations and file processing

Task Scheduling

Automated ingestion and processing

Job Queues

Async task execution

Authentication & Authorization

Better Auth

Modern authentication library

OAuth

GitHub social login

Email/Password

Traditional authentication

Email Verification

Secure account activation

Organizations & Teams

Multi-tenant support

Role-Based Access Control

Fine-grained permissions

Packages (packages/*)

The monorepo includes several shared packages:
PackageDescription
@workspace/aiUnified AI primitives (generation, embeddings, tools, and providers)
@workspace/authAuthentication and authorization
@workspace/billingPayment processing integration
@workspace/cacheRedis caching layer
@workspace/coreShared domain schemas, contracts, and validation types
@workspace/dbDatabase schema and queries
@workspace/emailEmail templating and sending
@workspace/engineAgent runtime orchestration (streaming, tools/MCP, retrieval, ingestion, and Trigger.dev task pipelines)
@workspace/envEnvironment variable validation
@workspace/realtimeRealtime transport, pub/sub, stream handling, and chat hooks
@workspace/sdkAuto-generated API client (Kubb)
@workspace/storageS3 file storage operations
@workspace/uiShared UI components
@workspace/utilsCommon utilities
@workspace/vector-storeVector retrieval and embedding utilities
@workspace/encryptionData encryption utilities
@workspace/notificationNotification system (Novu)
@workspace/tsconfigShared TypeScript configuration

Build Tools & DevOps

Turborepo

Monorepo build system

pnpm

Fast, disk space efficient package manager

Biome

Fast formatter and linter

TypeScript

Static type checking

Docker

Containerization

Docker Compose

Local development environment

Kubb

SDK generation from OpenAPI schema

Hosting & Infrastructure

Vercel

Frontend hosting and edge functions

Railway

Backend API hosting

Neon

Serverless PostgreSQL database

Upstash

Serverless Redis

Cloudflare R2

File storage

Third-Party Services

Trigger.dev

Background job processing

Resend

Transactional and marketing emails

Polar

Payment processing and subscriptions

Novu

Multi-channel notifications

GitHub Actions

CI/CD pipeline

GitHub OAuth

Social authentication

Development Experience

Hot Module Replacement

Fast development iteration

Type Safety

End-to-end TypeScript

Auto-generated SDK

Type-safe API client from OpenAPI

API Documentation

Interactive Swagger docs

Database Studio

Drizzle Studio for DB management