Cap
Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.
Cap is an open source screen recording platform that replaces Loom for teams who want to own their data. It delivers three recording modes in one app: Instant Mode for fast async updates where a shareable link is ready the moment you stop recording, Studio Mode for locally-edited polished videos with backgrounds, zooms, captions, and export controls, and Screenshot Mode for annotated screenshots with gradient backgrounds and one-click sharing.
The platform ships as native desktop applications for macOS and Windows built with Tauri and Rust, backed by a Next.js web application for dashboards, sharing, comments, and analytics. AI-powered features — automatic transcription via Deepgram, video summaries, smart chapters, and captions — are generated server-side and available on all recordings. Viewer analytics, team workspaces, and custom domains round out the collaboration features.
For storage, Cap supports Cap Cloud, any S3-compatible bucket (AWS S3, Cloudflare R2, Backblaze B2, MinIO, Wasabi, Google Drive), or full on-premises deployment. Self-hosting runs with a single docker compose up command and exposes the complete platform including web app, media server, database, and object storage. Organizations with compliance requirements can keep all recordings entirely within their own infrastructure.
The codebase is a Turborepo monorepo combining TypeScript and Rust. Rust crates handle the performance-critical recording, encoding, GPU frame processing via custom WGSL shaders, and S3 upload pipeline. The web backend uses the Effect framework for typed async operations and domain modeling. MySQL via Drizzle ORM manages user data, while Tinybird handles viewer telemetry and analytics dashboards.
What You Get
- Instant Mode - Uploads video chunks to S3 concurrently while recording so a shareable cap.so link is ready the instant you stop, with no processing wait time.
- Studio Mode - Records locally at up to 4K/60fps then opens a full editor with custom backgrounds, zoom effects, trimming, captions, and export controls before sharing.
- Screenshot Mode - Captures screen regions or windows with configurable hotkeys, then enhances them with gradient backgrounds, padding, shadows, and rounded corners before sharing.
- AI Transcription and Chapters - Automatically transcribes recordings via Deepgram, then generates titles, summaries, and clickable timestamped chapters using configurable AI providers.
- Flexible Storage - Connect your own AWS S3, Cloudflare R2, Backblaze B2, MinIO, Wasabi, or Google Drive bucket, or self-host MinIO alongside Cap for full on-premises control.
- Team Workspaces - Organize recordings into shared workspaces, manage team member access, and control visibility per recording or folder.
- Custom Domains - Serve Cap share pages from your own domain so recordings appear under your brand rather than cap.so.
- Viewer Analytics - Track plays, unique viewers, and engagement per recording using a Tinybird-backed analytics dashboard.
- Comments and Reactions - Let viewers leave timestamped text comments and emoji reactions directly on shared recordings without requiring accounts.
- Self-Hosting via Docker Compose - Deploy the entire Cap platform — web app, media server, MySQL, and S3-compatible storage — on any Docker host with a single command.
- Loom Import - Import existing Loom video libraries into Cap so teams can consolidate their recording history without starting over.
- Chrome Extension - Capture directly from the browser without installing the desktop app, with uploads flowing to the same workspace.
Common Use Cases
- Async engineering standups - A distributed engineering team uses Instant Mode to record 2-minute daily status updates, shares cap.so links in Slack, and teammates leave timestamped comments without scheduling a synchronous call.
- Compliance-constrained video libraries - A healthcare organization self-hosts Cap on their own VPS with MinIO storage so patient-adjacent training videos never leave their infrastructure, satisfying data residency requirements.
- Polished product demos - A SaaS founder uses Studio Mode to record a 4K product walkthrough with a custom background and cursor effects, then shares the branded cap.so link with prospects and monitors viewer analytics to see who watched.
- Bug reports with instant context - A QA engineer hits a keyboard shortcut, captures a 30-second reproduction of a bug in Instant Mode, and pastes the share link directly into a GitHub issue before the browser tab is closed.
- Developer documentation channels - A platform team records step-by-step setup tutorials in Studio Mode, connects their S3 bucket for storage, auto-generates transcripts for searchability, and embeds the cap.so player in their internal wiki.
- Client deliverable reviews - A design agency uses custom domains so review links appear under the agency’s brand, lets clients leave timestamped comments on recorded walkthroughs, and tracks who has watched before a feedback deadline.
Under The Hood
Architecture Cap is structured as a Turborepo monorepo with strict package boundaries separating the Tauri v2 desktop application, the Next.js 15 web application, a standalone media server, a Chrome extension, and a family of shared packages covering database access, domain models, UI components, environment validation, and SDK integrations. The recording pipeline is built entirely in Rust crates that handle screen capture, camera feed management, audio mixing, GPU-accelerated frame conversion via custom WGSL shaders, muxing, encoding, and S3 chunk uploads — each concern isolated in its own crate with well-defined public interfaces. The web backend uses the Effect framework to model typed async operations and domain errors as first-class values rather than exceptions, an unusual choice for a Next.js application that yields significantly better error traceability across the API layer. Data flows from desktop Rust crates through an upload pipeline into S3-compatible storage, with the Next.js web application serving share pages, dashboard views, and API routes that read from MySQL via Drizzle ORM.
Tech Stack The desktop application runs Tauri v2 (Rust) with SolidStart (Solid.js) for its native UI, giving it a lightweight footprint compared to Electron alternatives. The recording and encoding pipeline relies on custom forks of wgpu for GPU access, nokhwa for camera capture, and cpal for audio, along with FFmpeg bindings via a custom fork of rust-ffmpeg. WGSL shaders handle color space conversion on the GPU, reducing CPU load during live preview and high-framerate export. The web application uses Next.js 15 with React, Drizzle ORM against MySQL 8.0, and the Effect and @effect/platform libraries for typed HTTP APIs and concurrency. AI transcription integrates Deepgram, while summaries and chapters use configurable LLM providers. Analytics runs on Tinybird. The build system is Turborepo orchestrating pnpm workspaces, with Biome providing unified linting and formatting across the TypeScript codebase.
Code Quality
Test coverage spans multiple layers: Vitest unit and integration tests for the Next.js web application, Playwright end-to-end tests for the Chrome extension, and a dedicated cap-test Rust crate that runs matrix, synthetic, benchmark, and full-suite tests for the recording, encoding, playback, and sync pipelines. Rust error handling uses thiserror for typed error enums and anyhow for propagation, with explicit error boundaries in the capture and export paths. The TypeScript web backend uses Effect’s typed error channels, making failure modes explicit at the type level. Code is uniformly linted and formatted with Biome at the workspace level. TypeScript runs in strict mode with project references for incremental compilation. Dependency pinning is precise, including pinned Git revisions for all custom-forked Rust crates to ensure stable cross-platform builds.
What Makes It Unique
Cap’s most technically distinctive choice is its Rust-based, GPU-accelerated recording pipeline: rather than using browser MediaRecorder APIs or Electron’s rendering process, it writes platform-specific capture crates using ScreenCaptureKit on macOS and DXGI/Direct3D on Windows, feeding frames through WGSL GPU shaders for zero-copy color conversion before encoding. This approach enables Instant Mode, where S3 chunk uploads are pipelined concurrently with recording, making a shareable link available the moment recording stops with no post-processing delay. The Effect-based web backend models the API surface as typed contracts enforced at the HTTP layer, an approach unusual in the Next.js ecosystem that enables exhaustive error handling without runtime exceptions. Self-hosting is a genuine first-class concern: the entire platform — web app, media server, auth, database, and S3-compatible storage — runs with a single docker compose up and Cap Desktop can be pointed at a self-hosted instance via a single settings URL.
Self-Hosting
Cap is released under a split-license model. The core camera capture and screen capture crates are MIT licensed — permissive, allowing commercial use, modification, and distribution without restrictions. The remainder of the codebase, including the web application, recording pipeline, and desktop app, is licensed under AGPLv3. For self-hosters running Cap privately on internal infrastructure, AGPLv3 imposes no code-sharing obligation. If you modify Cap and expose it as a network service to external users, you must make the modified source available under the same license. Organizations building proprietary internal tooling on top of Cap should review AGPLv3 implications with legal counsel. Cap also offers commercial desktop licenses at $29 per seat per year or $58 as a one-time purchase, which unlock the desktop application outside the open source license terms for businesses that need a simpler licensing arrangement.
Running Cap yourself requires Docker Compose, a MySQL 8.0 database, and S3-compatible object storage — MinIO is included in the Docker Compose file for local and air-gapped setups. The compose stack handles service orchestration, health checks, and networking, making initial deployment straightforward on any Docker-capable VPS or bare-metal server. Production deployments require configuring public-facing URLs, replacing default secrets, setting up SSL termination via an external reverse proxy, and optionally wiring in an email provider, AI API keys for transcription and summaries, and Tinybird for viewer analytics. The media server runs as a separate container alongside the web app and handles video processing; both services must be maintained and updated as the platform evolves. Database schema migrations run automatically on container startup via Drizzle.
Compared to Cap Cloud, a self-hosted instance provides full data sovereignty — recordings never touch Cap’s infrastructure — but transfers responsibility for uptime, backups, database maintenance, and scaling under load to your own team. The hosted Pro plan adds managed upgrades, CDN-backed video delivery, team billing, and direct support that self-hosters must arrange or forgo. For infrastructure teams already operating container workloads and comfortable with DevOps overhead, self-hosting Cap is viable at zero recurring hosting cost; for teams without that capacity, Cap Cloud or Railway one-click deployment significantly reduces operational burden.
Related Apps
Rocket.Chat
Team Chat
The secure, self-hosted team communications platform for organizations that cannot compromise on data sovereignty.
Rocket.Chat
OtherMattermost
Team Chat · Collaboration · Devops
Open core, self-hosted team collaboration with chat, AI agents, voice calling, and deep DevOps integrations — all under your control.
Mattermost
OtherJitsi Meet
Team Chat · Collaboration · Video Conferencing
Open-source, end-to-end encrypted video conferencing you can self-host or embed into any web or mobile app.