Click any image to explore the gallery in full screen
ESCClose←→Navigate
Overview
About This Project
Nexa is a multi-agent AI workspace I’m building with Next.js, NestJS and Claude. Its dashboard brings together four specialist interfaces—Trading, Content, Life Coach and Music—with document uploads, streamed conversations and domain-specific tools. This case study covers the application’s interface and implementation, illustrated by seven development screenshots.
The product problem
A general chat window gives every task the same starting point. Nexa explores a more focused approach: choose a specialist, attach relevant material, and use tools suited to that task. A brand-voice document belongs in the Content workspace; journal entries belong in Life Coach; historical price data belongs in Trading.
The dashboard keeps those workspaces within one navigation system, alongside conversation history, token usage, billing and account settings. The gallery shows the overview, subscription interface, three conversational workspaces, the trading backtest screen and account controls.
Four specialist workflows
Trading: Upload historical OHLCV data and define strategy rules for a deterministic backtest. The interface displays return, win rate, drawdown and Sharpe metrics, with equity and drawdown charts. The calculation engine produces these values; Claude can explain tool results. The current engine is a simplified, single-symbol, long-only simulation with fees and no separate slippage model. Screenshot figures are development examples, not verified investment returns.
Content: Retrieve brand-voice material, work from platform-specific content specifications, and build an editorial calendar. This creates a structured starting point for drafts that still need editorial review.
Life Coach: Use uploaded journals and notes as context for reflection and decision-support conversations. The screenshot shows suggested starting prompts and an agent-specific knowledge panel; it does not demonstrate clinical advice or measured personal outcomes.
Music: Work with reference-track searches, sample discovery, instrument palettes, arrangement templates and uploaded mixing notes. Spotify and Freesound lookups require configured API access. The implementation returns an unavailable result when those integrations cannot run, rather than inventing track or sample links.
From uploaded document to grounded response
The background document worker downloads a file from Cloudflare R2, extracts its text, splits it into chunks, and requests OpenAI embeddings. PostgreSQL with pgvector stores the searchable chunks. At chat time, retrieval filters indexed documents by user ID and agent type, then adds relevant passages to Claude’s context.
Trading CSV uploads follow a separate path: the backtest engine consumes their market data without embedding every price bar into the knowledge base. This distinction keeps numerical simulation separate from document-based generation.
The NestJS orchestrator loads conversation history, retrieves context, streams Claude responses over server-sent events, executes registered tools, and stores the resulting messages and token usage. It uses the Anthropic SDK with a custom orchestration loop, capped at ten iterations. Retrieved context helps ground an answer; it does not guarantee factual accuracy.
SaaS infrastructure and implementation choices
The TypeScript monorepo combines a Next.js 14 and React frontend with NestJS, Prisma, PostgreSQL, Redis and BullMQ. Clerk integration handles the intended authenticated flow. Stripe services implement subscription checkout, a billing portal and webhook reconciliation; Langfuse integration records model traces when configured.
The source includes user-scoped queries and a PostgreSQL row-level security policy file. Deployment still requires verifying that the policies are applied and enforced with the actual database role. Their presence in the repository is not evidence of an independently audited production security boundary.
What the screenshots demonstrate
The gallery records a local development build, including seeded account data. Token totals and backtest figures are not evidence of customers, revenue or product adoption. The overview’s usage sparkline is illustrative rather than a daily usage history. Billing screens show the product flow, not proof of completed paid subscriptions.
The implementation has progressed beyond the repository README’s initial foundation roadmap, but this page does not claim a verified public launch or production performance results.
Explore the implementation or discuss a similar build
If you need an AI workspace with document retrieval, specialist tools or subscription infrastructure, contact me with the workflow, data sources and access boundaries you need. You can also browse my other project case studies.