New
Apps 1,895Makers 1,890This week 1,690
Promote your app−30%
Ellie AI screenshot 1
0views in
the last 30 days

Ellie AI

AI video analysis agent: upload any video and ask questions about it

Built with Claude Code

by alexi5000 · Unclaimed · from USUnited States · added Oct 29, 2026
no ratings0 comments

Ellie AI logo

Ellie AI

The State-of-the-Art AI Video Analysis Agent

Upload any video, ask anything. Gemini 2.5 Flash + Whisper + React 19 + tRPC 11. Neural Noir design.

Why this exists · Capabilities · Architecture · Stack · Run Locally · Operations

TypeScript 5.9 React 19 Vite 7 tRPC 11 Drizzle ORM MIT License

Marketing landing page (built with Lovable, in the separate private repo Alexi5000/ellie-techtide): ellie-techtide.lovable.app


Ellie AI Neural Noir product cover

Why this exists

What it does. Ellie accepts a video upload (MP4, WebM, MOV, or AVI up to 100 MB), sends it to Gemini 2.5 Flash through a server-side provider gateway to produce timestamped summaries, scenes, frames, audio events, and emotions, persists those results with Drizzle and MySQL, and answers follow-up questions in a chat panel using the stored analysis as context. Voice input is transcribed with a Whisper-compatible endpoint. The browser talks to the server only through typed tRPC 11 procedures.

Who it serves. People who need to understand recorded media without scrubbing timelines by hand, and maintainers who want a small, typed React 19 + Express + tRPC reference application with environment validation, health and readiness probes, and Docker packaging already in place.

Why Alex built it. Alex Cinovoj, Founder & CTO of TechTide AI, created the repository on 2025-04-26. The first product under this name was "Ellie Voice Receptionist", an AI voice assistant for law firms (commit 1229a5d1, 2025-07-16). On 2026-02-18 the project was rebuilt as a video analysis agent (commit 306a265f, "Complete rebuild: Ellie AI Video Analysis Agent v2.0", moving from Express REST and Socket.io to tRPC 11, React 19, Vite 7, Gemini 2.5 Flash, and Whisper). The next day it was made a public, anonymous application with ephemeral browser-side chat state, rate limiting, and strict input validation (commit 12e32471, 2026-02-19). Pull request #1 (2026-05-17) hardened it for production review with readiness endpoints, environment validation, and Docker packaging. The design intent recorded in this README since that rewrite is deliberately Neural Noir: dark, cinematic, fast, and agentic without hiding the engineering underneath.

Real-world use case (2025-2026 evidence). Proposed use case. A content or training team uploads a recorded webinar, lets Ellie produce a timestamped outline, and asks "where does the presenter cover pricing?" to jump straight to the right segment. The repository contains the routes, schema, and validation for this flow and a Vitest suite that exercises input validation and the anonymous upload capability model; it does not contain recorded provider responses or golden-video fixtures, so a live Gemini run is required to confirm answer quality. Gemini 2.5 Flash became generally available in June 2025 with multimodal input and configurable thinking budgets.[^1] tRPC v11, the typed RPC layer between the browser and the Express server, shipped as stable in March 2025.[^2] The client runs on the React 19.2 line released in October 2025[^3] and is bundled with Vite 7, released in June 2025.[^4]

Product Box What It Does Current Implementation
Video Intelligence Converts media into summaries, scenes, frames, audio events, and emotions. analysis.analyze calls Gemini 2.5 Flash through the LLM gateway.
Ask Anything Chat Answers questions against video analysis with timestamp-aware responses. chat.send uses browser-held history plus persisted analysis context.
Voice Input Turns recorded audio into text before it enters the assistant surface. voice.transcribe calls Whisper-compatible speech-to-text.
Typed Product Core Keeps client and server contracts aligned as the agent surface evolves. React 19 consumes an Express/tRPC 11 backend with shared TypeScript.
Deployment Baseline Ships with validation scripts, Docker packaging, and health probes. pnpm ci, Dockerfile, /api/health, /api/readiness, /api/ready.

Capabilities

Ellie’s README is product-forward, but the repository is not a mockup. The core routes implement upload, multimodal analysis, chat, transcription, session helpers, and operational readiness endpoints.

Surface Route or Module Limits and Behavior
Upload video.upload Accepts MP4, WebM, MOV, and AVI as base64 payloads up to 100 MB.
Analyze analysis.analyze Produces structured JSON results with type, timestamp, content, and confidence.
Retrieve Results analysis.results Reads persisted analysis rows for a video from the Drizzle/MySQL data layer.
Chat chat.send Answers against stored analysis context with ephemeral browser-side chat history.
Transcribe voice.transcribe Accepts WebM, MP3, WAV, OGG, M4A, and MPEG audio up to 16 MB via Whisper.
System system.* Exposes health and readiness signals for smoke tests and deployment probes.

Ellie AI product screenshot

Architecture

Ellie currently uses a heavy-client, thin-orchestration backend model. The browser owns the immediate product feel and ephemeral conversation memory. The backend owns the safe boundary for uploads, storage, provider calls, persistence, rate limits, and readiness checks. This keeps the agent surface responsive while preserving a clean path to queue workers, durable conversations, and multi-tenant orchestration later.

graph LR
    User["User"] --> Client["React 19 + Vite\nNeural Noir client"]
    Client --> TRPC["tRPC 11\ntyped calls"]
    TRPC --> Express["Express + Node\nthin orchestration"]
    Express --> Storage["S3-compatible\nmedia storage"]
    Express --> DB["Drizzle + MySQL\nvideo + analysis records"]
    Express --> Gemini["Gemini 2.5 Flash\nmultimodal analysis + chat"]
    Express --> Whisper["Whisper\nspeech-to-text"]
    Express --> Ops["Health + readiness\nenv validation"]
Boundary Responsibility Why It Exists
Client Agent UI Upload flow, video workspace, chat state, visual feedback. Preserves speed and keeps short-lived interaction state near the user.
tRPC Contract Typed procedure calls between browser and server. Reduces drift between frontend assumptions and backend behavior.
Express Runtime Provider calls, storage writes, DB updates, rate limits, sessions. Keeps secrets and operational state out of the browser.
Data Plane Users, videos, analysis results, conversations, and messages. Gives the product durable entities without overbuilding the first agent milestone.
Provider Gateway Gemini 2.5 Flash chat/completions and Whisper transcription. Centralizes AI access behind environment-managed credentials.
Operations Surface Health, readiness, production validation, Docker packaging. Makes the repository deployable and reviewable by maintainers.

Ellie AI video analysis pipeline

Stack

Ellie is TypeScript across the product boundary. The stack is modern, but intentionally familiar: React and Vite for the browser, Express and tRPC for the API, Drizzle and MySQL for persistence, and Forge-compatible provider helpers for Gemini and Whisper.

Layer Technology Version or Track
Language TypeScript 5.9.3
Frontend React, React DOM, Vite 19.3.x, 7.3.x
Design System Tailwind CSS, Radix UI, framer-motion 4.3.x, Radix primitives, 12.43.x
Routing + Data wouter, TanStack Query, tRPC React Query 3.7.1 (patched), 5.104.x, 11.19.x
Backend Runtime Node.js, Express Express 4.22.x
API Contract tRPC server/client 11.19.x
Database Drizzle ORM, mysql2 0.45.x, 3.24.x
Validation Zod 4.6.x
AI + Voice Gemini 2.5 Flash, Whisper-compatible STT Provider-gateway configured
Testing + Quality Vitest, Prettier, TypeScript compiler 4.1.x, 3.9.x, 5.9.3
Packaging Docker, Docker Compose Repository-defined
Package Manager pnpm 10.x (packageManager pins 10.4.1)

Run Locally

The committed pnpm-lock.yaml is the canonical dependency graph; root npm installs are unsupported because they omit the required wouter patch. The default path is a single pnpm workflow from the repository root. Configure environment values first, install with the lockfile, then run the TypeScript server in development mode.

gh repo clone Alexi5000/Ellie
cd Ellie
pnpm install --frozen-lockfile
cp .env.example .env
pnpm validate:env
pnpm dev
Command Purpose
pnpm dev Starts the development server with TypeScript watch.
pnpm check Runs the TypeScript no-emit gate.
pnpm test Runs the Vitest suite.
pnpm build Builds the Vite client and bundles the server runtime.
pnpm validate:env Checks required local environment configuration.
pnpm validate:env:production Checks production-only environment requirements.
pnpm ci Runs the repository validation sequence.
pnpm start Runs the built production server from dist/.

Environment

Ellie keeps secrets server-side. The browser calls typed routes; the backend talks to storage, the database, Gemini, and Whisper through environment-managed credentials.

Variable Required For Notes
DATABASE_URL Drizzle/MySQL persistence MySQL-compatible connection string.
JWT_SECRET Session and token signing Must be strong in production.
BUILT_IN_FORGE_API_URL Gemini and Whisper provider gateway Base URL for chat/completions and audio transcription.
BUILT_IN_FORGE_API_KEY Gemini and Whisper provider gateway Server-side bearer credential.
AWS_ACCESS_KEY_ID Optional S3-compatible storage Used when object storage credentials are required.
AWS_SECRET_ACCESS_KEY Optional S3-compatible storage Used with the storage helper.
AWS_REGION Optional S3-compatible storage Region for the configured bucket.
S3_BUCKET_NAME Optional S3-compatible storage Target bucket for uploaded media and audio artifacts.

Repository Map

The repository is small enough to navigate directly and structured enough to survive production hardening. The important split is simple: client/ is the experience, server/ is the orchestration boundary, shared/ is the contract surface, and drizzle/ is the data plane.

Path Box What Lives There
client/ Neural Noir Surface React pages, UI components, routes, motion, and browser-side state.
server/ Agent Runtime Express server, tRPC router, LLM calls, voice transcription, storage.
server/routers.ts Product API Upload, analyze, chat, transcribe, auth, and system procedures.
drizzle/ Relational Memory Schema, migrations, and MySQL-compatible product entities.
shared/ Cross-Boundary Contracts Shared constants and typed primitives.
scripts/ Release Gates Environment validation and automation helpers.
docs/ Operator Manual Production readiness, CI/CD, testing, deployment, and standards notes.
docs/templates/ Portfolio System Reusable README template for the rest of the portfolio.

Operations

Ellie is prepared for deployment review, not just local screenshots. The repository includes a root Dockerfile, Compose file, CI-compatible scripts, environment validation, and liveness/readiness endpoints. Some GitHub workflow checks depend on repository-level secrets and permissions, so local validation remains the authoritative green gate until those secrets are configured.

Gate Command or Endpoint Expected Signal
Install pnpm install --frozen-lockfile Lockfile-consistent dependency graph.
Environment pnpm validate:env Required local variables are accounted for.
Production Env pnpm validate:env:production Production-only variables are accounted for.
Types pnpm check TypeScript passes without emitting files.
Tests pnpm test Vitest suite completes.
Build pnpm build Vite client and server bundle are generated.
Full Local Gate pnpm ci Environment, types, tests, and build pass together.
Health GET /api/health Runtime liveness response.
Readiness GET /api/readiness or GET /api/ready Dependency-aware deployment probe.

Product Roadmap

Ellie’s current shape is intentionally lean: strong browser experience, typed backend orchestration, persisted analysis, and real provider calls. The next step is deeper production orchestration.

Track Next Upgrade
Durable Conversations Persist chat threads and add source-linked answer citations.
Processing Queue Move long-running video analysis into workers with retry telemetry.
Signed Uploads Replace base64 upload flow with direct-to-storage signed URLs.
Provider Observability Track model, prompt version, latency, token usage, and failure mode.
Tenant Readiness Add organizations, roles, audit logs, and retention policies.
Evaluation Harness Add golden-video tests for scene, transcript, frame, and chat quality.

Documentation

The root README is the front door. The rest of the documentation exists for maintainers who need setup, release, deployment, and testing detail without bloating the product narrative.

Document Use It For
SETUP.md Local setup, Docker, environment, and runtime notes.
docs/PRODUCTION_READINESS.md Release gates, operational status, and risk register.
docs/README.md Documentation hub and source-of-truth map.
RELEASES.md

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#video · #analysis · #gemini