LumenClip Docs
LumenClip Docs
LumenClip engineering documentation
Libraries and dependencies
Libraries

Libraries and dependencies

Direct runtime and development libraries used by LumenClip, why they exist, and where they are used.

This page inventories the libraries declared directly by LumenClip. It is a maintainer reference for deciding where functionality belongs, whether a new dependency is necessary, and whether an existing package can be removed.

package.json is authoritative for direct dependency versions. pnpm-lock.yaml pins the complete transitive dependency graph and should not be maintained by hand.

Platform foundation

LibraryDeclared versionRole in LumenClipRepresentative usage
next16.2.6App Router framework, route handlers, server/client component boundaries, image handling, middleware, and production builds.app/, proxy.ts, next.config.ts
react19.2.4Component model and client state for the workspace and documentation UI.components/, app/
react-dom19.2.4React browser/server rendering integration used by Next.js.Framework runtime
server-only^0.0.1Marks authentication and workspace modules that must never enter client bundles.lib/auth.ts, lib/workspace-members.ts

The repository uses ES modules ("type": "module") and pnpm 10.12.1. The Next.js version has project-specific conventions documented in AGENTS.md; read the matching guide under node_modules/next/dist/docs/ before changing framework code.

Documentation system

LibraryDeclared versionRole in LumenClipRepresentative usage
fumadocs-core16.11.5Loads the documentation source tree and powers full-text documentation search.lib/docs-source.ts, app/api/search/route.ts
fumadocs-mdx15.2.0Compiles Markdown/MDX documents and defines the docs/ source collection.source.config.ts
fumadocs-ui16.11.5Documentation layouts, navigation, cards, and MDX presentation components.app/docs/, mdx-components.tsx, app/globals.css

The documentation source lives in docs/. Folder-level meta.json files control sidebar order.

UI primitives and styling

LibraryDeclared versionRole in LumenClipRepresentative usage
radix-ui^1.6.0Accessible dialogs, popovers, tabs, dropdowns, and other headless primitives.components/ui/modal.tsx, collection and settings surfaces
@mantine/core^9.5.1Maintained provider and shared loading/progress primitives behind LumenClip compatibility components.components/app-providers.tsx, components/ui/
@mantine/notifications^9.5.1Provider-backed notification surface available to migrated components.components/app-providers.tsx
class-variance-authority^0.7.1Typed visual variants for reusable UI components.components/ui/button.tsx
clsx^2.1.1Conditional class-name composition.lib/utils.ts
tailwind-merge^3.6.0Resolves conflicting Tailwind utility classes inside the shared cn() helper.lib/utils.ts
tw-animate-css^1.4.0Tailwind-compatible animation utilities.app/globals.css
shadcn^4.12.0Component scaffolding/configuration tooling. LumenClip owns the generated components in components/ui/; application code does not import shadcn at runtime.components.json, components/ui/
next-themes^0.4.6Theme context for Next.js/React.components/theme-provider.tsx
@tabler/icons-react^3.44.0Primary icon set across the application workspace and marketing pages.components/realfarm/, app/
lucide-react^1.22.0Secondary icon set used by settings, debug, and documentation components.components/x-automation-studio.tsx, components/docs/
sonner^2.0.7Toast notifications, async progress, errors, and undo actions.components/realfarm-workspace.tsx, automation editors
@xyflow/react^12.11.2Pan-and-zoom workflow stage canvases shared by slideshow and UGC run inspection.components/ui/workflow-stage-map.tsx
@uiw/react-json-view2.0.0-alpha.43Read-only, collapsible JSON trees used by workflow input/output inspection.components/ui/json-viewer.tsx

Tailwind CSS itself is a development dependency because it runs during the build; its generated classes are consumed by the runtime UI.

Data fetching, validation, and time

LibraryDeclared versionRole in LumenClipRepresentative usage
@tanstack/react-query^5.101.4Client request caching, polling, previous-data retention, explicit refetches, and cache mutations.lib/client-query.ts, analytics, accounts, calendar, settings, and navigation
zod^4.4.3Runtime validation for API request payloads and selected worker inputs.lib/api.ts, app/api/**/route.ts
luxon^3.7.2Time-zone-aware schedules, calendar projections, and automation slot calculations.lib/automation-slots.ts, analytics and scheduler code

Native fetch, URL, and AbortSignal are used for HTTP plumbing. Provider clients such as OpenRouter and PostFast are local modules under lib/, not third-party SDK dependencies.

Persistence and object storage

LibraryDeclared versionRole in LumenClipRepresentative usage
postgres^3.4.9Railway PostgreSQL migrations, resumable imports, and the new server-side persistence adapter.lib/railway/, scripts/railway-migrate.mts, Railway import tooling
drizzle-orm^0.45.2Typed Railway table schema and query builder over the existing postgres connection.lib/railway/schema.ts, lib/railway/database.ts
pg-boss^12.27.0Railway-native durable queue adapter staged separately from the active Railway worker.lib/railway/job-queue.ts
@aws-sdk/client-s3^3.1103.0Reads and writes Railway's private S3-compatible object bucket.lib/railway/object-storage.ts, asset importer, local-asset response
@aws-sdk/s3-request-presigner^3.1103.0Produces short-lived direct download URLs for private Railway objects.lib/railway/object-storage.ts
node-railway^26.2.0Temporary source adapter for TablesDB rows, Storage files, and one-time migration reads. Authentication and user preferences are owned by Clerk.lib/railway.ts, lib/json-store.ts, railway/functions/, migration scripts

Railway remains the runtime default during the additive migration. The target topology, parity gates, and removal sequence are in Railway migration. Local Railway behavior is documented in Local Railway and remains available until the cutover is complete.

Calendar, tables, and charts

LibraryDeclared versionRole in LumenClipRepresentative usage
@fullcalendar/core6.1.21FullCalendar event and view types.components/realfarm/content-calendar/content-calendar-view.tsx
@fullcalendar/react6.1.21React renderer for the publishing calendar.content-calendar-view.tsx
@fullcalendar/daygrid6.1.21Month/day-grid calendar view.content-calendar-view.tsx
@fullcalendar/timegrid6.1.21Week/day time-grid calendar views.content-calendar-view.tsx
@fullcalendar/interaction6.1.21Calendar selection, drag, and event interaction support.content-calendar-view.tsx
ag-grid-community^36.0.0Grid engine, column definitions, styling, and table APIs.components/ui/ag-data-table.tsx, collection tables
ag-grid-react^36.0.0React integration for AG Grid.components/ui/ag-data-table.tsx
ag-charts-types^14.0.0Shared AG chart type declarations used by the grid/chart toolchain.Type-level dependency
ag-stack^36.0.0Declared AG toolchain package. No direct source import is currently present; verify whether it is still required before the next dependency cleanup.package.json only
recharts^3.9.1Analytics charts and visual reporting.components/realfarm/analytics/analytics-view.tsx

Keep every FullCalendar package on the same exact version to avoid plugin/core contract mismatches. AG Grid and its related packages should likewise move as a coordinated version set.

Media, uploads, exports, and debugging

LibraryDeclared versionRole in LumenClipRepresentative usage
react-dropzone^17.0.0Drag-and-drop upload interaction and file-input handling.components/ui/upload-dropzone.tsx
sharp^0.34.5Server-side image decoding, conversion, resizing, slideshow materialization, and import scripts.lib/slideshows.ts, Railway job worker, product import scripts
jszip^3.10.1Client-side ZIP creation for slideshow PNG exports.lib/slideshow-export.ts
jsoneditor^10.4.3Structured JSON inspection/editing in internal debug tools.components/debug/debug-automation-editor.tsx

jsoneditor remains only on editing surfaces. Read-only workflow traces use @uiw/react-json-view, avoiding an imperative editor instance for display-only content.

API and server foundations

LibraryDeclared versionRole in LumenClipRepresentative usage
hono^4.13.0Versioned API router hosted by a Next.js catch-all route.app/api/v1/, lib/openapi-app.ts
@hono/zod-openapi^1.5.1Zod-validated handlers and generated OpenAPI 3.1 contracts.lib/openapi-app.ts
@scalar/nextjs-api-reference^0.11.12Interactive reference UI backed by the generated OpenAPI document.app/api-reference/route.ts
@t3-oss/env-nextjs^0.13.11Typed optional server configuration without making integrations boot requirements.lib/server-env.ts
pino^10.3.1Structured request logging with request IDs and secret redaction.lib/server-logger.ts, lib/api.ts
p-retry^8.0.0Bounded exponential retries for transient provider failures.lib/provider-fetch.ts

Generated video encoding is handled through local provider wrappers and Rendi, not through a direct npm video-encoding library.

Development, build, and quality tooling

LibraryDeclared versionRole in LumenClipRepresentative usage
typescript^5Static typing, tsc checks, and TypeScript-aware maintenance scripts.tsconfig.json, scripts/sync-function-shared.mjs
@types/node^20Node.js API declarations.Server code, scripts, tests
@types/react^19React declarations.TSX components
@types/react-dom^19React DOM declarations.React rendering boundary
@types/mdx^2.0.14MDX module declarations.Documentation compilation
vitest^4.1.9Unit, integration, route, contract, and worker tests.*.test.ts, *.test.tsx, vitest.config.ts
@playwright/test^1.61.1Automated browser and end-to-end workflows.e2e/, playwright.config.ts
eslint^9Repository lint runner.eslint.config.mjs, pnpm lint
eslint-config-next16.2.6Next.js Core Web Vitals and TypeScript lint rules.eslint.config.mjs
prettier^3.8.3Mechanical source formatting.pnpm format
prettier-plugin-tailwindcss^0.8.0Canonical ordering of Tailwind utility classes during formatting.Prettier integration
tailwindcss^4Utility CSS compiler and design-token styling system.app/globals.css
@tailwindcss/postcss^4Runs Tailwind through PostCSS during Next.js builds.postcss.config.mjs

Dependency rules

When adding or changing a library:

  1. Prefer an existing project library when it already covers the requirement.
  2. Add runtime packages to dependencies; add compilers, tests, type packages, and local-only tooling to devDependencies.
  3. Use pnpm add or pnpm add -D so package.json and pnpm-lock.yaml stay in sync.
  4. Keep framework-coupled packages aligned: Next/React/React DOM, FullCalendar plugins/core, and AG Grid packages.
  5. Verify browser-bundle safety before importing server packages such as node-railway, sharp, or server-only modules from UI code.
  6. Run pnpm typecheck, pnpm lint, relevant tests, and pnpm build after a dependency upgrade.
  7. Update this page whenever a direct dependency is added, removed, or changes responsibility.

Audit notes

  • ag-stack is declared but has no direct repository import. Treat it as a cleanup candidate, not as proof that it is safe to remove; confirm AG package requirements and run the full verification set first.
  • shadcn supports component generation and configuration. The checked-in UI components are application source and do not require runtime imports from the package.
  • @types/* packages supply TypeScript declarations only and do not ship in the browser or server runtime.
  • Provider integrations—Railway, PostFast, OpenRouter, KIE, Rendi, DeepL, Pinterest, Pexels, Apify, and FAL—are documented as services in architecture references. Only Railway currently uses a direct third-party SDK package.

UGC video generation pipeline

Transform a product source and actor configuration into a voiced, animated, lip-synced, composited video.

Data dictionary

Field-level data structures grouped by application domain.

On this page

Platform foundationDocumentation systemUI primitives and stylingData fetching, validation, and timePersistence and object storageCalendar, tables, and chartsMedia, uploads, exports, and debuggingAPI and server foundationsDevelopment, build, and quality toolingDependency rulesAudit notes