Two ingestion paths
Support automated workflow/API-key uploads and operator-driven dashboard uploads on the same platform.
Two ingestion paths
Support automated workflow/API-key uploads and operator-driven dashboard uploads on the same platform.
Database-driven workflows
Define workflows as data, not code. Start from a blank canvas, reusable template, or AI-generated draft without redeploying.
MCP-backed analysis
OCR, descriptions, embeddings, segmentation, similarity search, and retrieval are exposed as MCP tools for workflows and operators.
Persistent analysis corpus
Store source images plus descriptions, OCR, embeddings, segmentations, and derived images for later search and reuse.
Dashboard control plane
Manage projects, workflow keys, service keys, workflows, AI draft generation, uploads, search, chat, and runs from one operating surface.
Run trace visibility
Inspect initial state, per-step deltas, final state, timing, and errors for every workflow execution.
Grounded retrieval and chat
Search by meaning and ask questions against the persisted corpus with source-backed answers.
| Layer | Tech | What it does |
|---|---|---|
| API | Bun, Hono, better-auth, Inngest, Pino | Presigned uploads, auth, workflow triggers, structured logging |
| Dashboard | React 19, TanStack Router, Tailwind, shadcn/ui | Workflow builder, project/API key management, search, chat, operator UI |
| Agents | Go, Gin, LangGraph, LangChain, inngestgo | Graph loading, workflow execution, step-level run tracking |
| MCP | Go, MCP go-sdk, replicate-go, GORM | OCR, descriptions, embeddings, segmentation, similarity search, retrieval tools |
| Storage | Postgres 18 + pgvector, S3-compatible, Redis | Documents, derived artifacts, vector search, sessions, realtime fanout |
| Client | Flutter, Dart, flutter_gemma, GenUI, fpdart | Optional demo client for capture, preview, and GenUI experiments |