Skip to content

Technology Stack

Every dependency in Juca is here for a reason. This page lists the complete stack with versions, purposes, and current status — including which packages are transitional (will be removed when the Valter migration completes).

LibraryVersionPurposeStatus
Next.js^16.1.6App Router, Server Components, Server ActionsActive
React19.2.3UI framework (concurrent features, use() hook)Active
React DOM19.2.3React rendererActive
TypeScript^5Type safety across the full stackActive
Tailwind CSS^4.1.18CSS-first utility framework (v4)Active
@tailwindcss/postcss^4.1.18PostCSS integration for TailwindActive

These SDKs power the local multi-LLM pipeline. They are transitional — LLM processing is moving to the Valter API.

LibraryVersionPurposeStatus
@anthropic-ai/sdk^0.71.2Claude (Sonnet 4, Opus 4, Haiku 3.5) — generator and revisorTransitional
openai^6.16.0OpenAI (GPT-5.x, o3) + DeepSeek (shared SDK)Transitional
@google/generative-ai^0.24.1Gemini (2.5 Flash/Pro)Transitional
groq-sdk^0.37.0Groq (Qwen 3 32B, Llama 3.3 70B) — critics for fast inferenceTransitional
LibraryVersionPurposeStatus
better-sqlite3^12.6.2Session and block persistence (WAL mode, foreign keys)Active — will migrate to Postgres at v0.6+
sqlite-vec^0.1.7-alpha.2Vector search extension for SQLiteTransitional
neo4j-driver^6.0.1Knowledge Graph via adapter pattern (JSON or Neo4j)Transitional — KG moving to Valter
LibraryVersionPurposeStatus
next-auth^5.0.0-beta.30NextAuth v5 — Google OAuth + Resend magic links, JWT sessionsActive
LibraryVersionPurposeStatus
lucide-react^0.563.0Icon libraryActive
swr^2.3.8Data fetching (minimal usage — only useHealthCheck)Under review
LibraryVersionPurposeStatus
jspdf^4.2.0PDF generation from briefing sessionsActive
pdf-parse^2.4.5Parse uploaded PDF files for analysisTransitional
uuid^13.0.0ID generation (minimal usage — only health checks)Under review
yauzl^3.2.0ZIP extraction (ingest scripts only)Transitional
LibraryVersionPurposeStatus
@opentelemetry/api^1.9.0Distributed tracing APIActive (opt-in)
@opentelemetry/sdk-node^0.211.0Node.js OTel SDKActive (opt-in)
@opentelemetry/exporter-trace-otlp-http^0.211.0OTLP HTTP exporterActive (opt-in)
LibraryVersionPurpose
vitest^4.0.18Unit and integration testing
@vitest/coverage-v8^4.0.18V8 coverage reports
@playwright/test^1.58.0E2E testing (Chromium only)
@testing-library/react^16.3.2Component testing utilities
@testing-library/jest-dom^6.9.1DOM assertion matchers
@testing-library/user-event^14.6.1User interaction simulation
jsdom^28.0.0Browser environment for Vitest
eslint^9Linting with Next.js rules
@next/bundle-analyzer^16.1.4Bundle size analysis
dotenv^17.2.3Environment variable loading
ToolPurpose
TurbopackDev server (via Next.js 16)
Docker (multi-stage)Production builds with standalone output
GitHub ActionsCI pipeline (lint + build + unit tests)
RailwayProduction hosting (auto-deploy from main)
Git LFSLarge file storage for data files
Custom git hooks (.githooks/)Pre-commit lint, pre-push tests

After the structural cleanup (2026-02-28), the dependency tree is clean:

  • 4 phantom dependencies removed: zustand, @tanstack/react-virtual, next-pwa, resend
  • 2 dependencies under review: uuid and swr (minimal usage, candidates for removal)
  • All remaining dependencies are actively imported and used in production code
  • Zero hardcoded secrets — all API keys and URLs via environment variables