I built this desktop app because I needed a better way to view my local video collections. I wanted a Masonry (Pinterest-like) grid for simultaneous playback, but existing tools didn't fit my workflow.
Key Features:
Pinterest UI: Visualizes folders of short clips in a dense grid.
Prompt Search: Filters videos by metadata/prompts (great for AI-generated content).
Mobile Connect: Hosts a local server to stream videos to my phone without copying files.
Performance: Electron is known for being heavy and slow. I minimized dependencies to achieve a cold start (ready-to-show) of ~490ms.
choumei•1h ago
I built this desktop app because I needed a better way to view my local video collections. I wanted a Masonry (Pinterest-like) grid for simultaneous playback, but existing tools didn't fit my workflow.
Key Features:
Pinterest UI: Visualizes folders of short clips in a dense grid.
Prompt Search: Filters videos by metadata/prompts (great for AI-generated content).
Mobile Connect: Hosts a local server to stream videos to my phone without copying files.
Performance: Electron is known for being heavy and slow. I minimized dependencies to achieve a cold start (ready-to-show) of ~490ms.
Tech Stack:
Core: Electron, Vite, React, TypeScript
Frontend UI: Tailwind CSS, Shadcn UI, Lucide React
State Management: Zustand, TanStack Query
Database: better-sqlite3 (SQLite)
Server: Node.js HTTP Server + SSE (Server-Sent Events)
Communication: tRPC (Abstracts IPC & HTTP for unified codebase)
Architecture:
Frontend: Based on Feature-Sliced Design (FSD).
Backend: Built on a Layered Architecture using the Repository Pattern, leveraging an internal Event Bus for Event-Driven Architecture (EDA).
It's open source and runs locally. I'd appreciate any feedback on the code or the concept!