
Context
A lot of content (PDF, EPUB, image, audio, video) ends up as “a file on disk”: hard to compare, combine, and spot patterns. Precek treats media as data — it processes files with AI models and builds a temporary database for visualizations, summaries, and export.
Goal
I designed and delivered a tool that:
- processes text, image, audio, and video via AI models (OpenRouter / OpenAI),
- builds a temporary database for analysis and visualization,
- generates summaries, trends, contexts, and word clouds,
- exports results to CSV.
My role
I owned design, solution design, implementation, and up to 30 days of post-launch care.
Functional scope
- AI media processing — images, audio, video, and text,
- Database management — temporary store for visualization,
- CSV export — download data for external analysis,
- Data visualization — summaries, trends, contexts, word cloud,
- Cross-platform — web app with a mobile direction (React Native in the project stack).
Approach
I deliberately chose client-side processing + IndexedDB: working data does not have to land in the app’s cloud by default. AI models connect through OpenRouter (including lower-cost / free paths) or OpenAI depending on configuration. The frontend (Next.js + React + TypeScript + Tailwind/MUI) links upload flows to visualizations (D3, force graph, word cloud) and document parsers (PDF.js, epub.js).
Challenges
- Many media types, one pipeline — each format enters differently; results had to normalize into a shared data model for visualization.
- Model cost and access — OpenRouter as a model-choice layer without hard lock-in to a single provider.
- Working-data privacy — IndexedDB as a session/temporary store instead of “everything on the server” by default.
Outcome
The result is a live app (demo, GitHub) that turns media into an analyzable dataset with visualizations and CSV export. I provided up to 30 days of post-launch care after go-live.



Stack
- App: Next.js, React, TypeScript, React Native (mobile direction)
- UI: Tailwind CSS, MUI, NativeWind
- Visualization: D3, React Force Graph, React WordCloud
- Documents: pdfjs-dist, epub.js
- Data: IndexedDB
- AI: OpenRouter API / OpenAI API