<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Christian Segovia</title>
    <description>The latest articles on Forem by Christian Segovia (@danger_cris).</description>
    <link>https://forem.com/danger_cris</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F124836%2F2aa2e8a5-ec88-4495-a1e6-1c9751111096.JPG</url>
      <title>Forem: Christian Segovia</title>
      <link>https://forem.com/danger_cris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/danger_cris"/>
    <language>en</language>
    <item>
      <title>Most HR platforms can't record video. Adding it takes 4 lines of code.</title>
      <dc:creator>Christian Segovia</dc:creator>
      <pubDate>Sat, 14 Mar 2026 16:29:41 +0000</pubDate>
      <link>https://forem.com/danger_cris/most-hr-platforms-cant-record-video-adding-it-takes-4-lines-of-code-1m67</link>
      <guid>https://forem.com/danger_cris/most-hr-platforms-cant-record-video-adding-it-takes-4-lines-of-code-1m67</guid>
      <description>&lt;p&gt;Every HR platform eventually hits the same wall: phone screens don't scale, written assessments miss half the signal, and scheduling live interviews is a bottleneck.&lt;/p&gt;

&lt;p&gt;The answer is async video interviews. The problem? Building video recording into your platform has traditionally meant months of work and expensive infrastructure.&lt;/p&gt;

&lt;p&gt;We changed that. Here's how any HR tool can add video interviews — today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why HR needs video (and why most platforms don't have it)
&lt;/h2&gt;

&lt;p&gt;AI recruiting tools are growing 35% year over year. Resume parsing, chatbot screening, predictive hiring — the stack keeps getting smarter. But there's a blind spot: &lt;strong&gt;most of it is text-only&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The richest signal — how someone communicates, thinks on their feet, handles pressure — lives in video. Yet building video recording has meant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hiring a media engineering team&lt;/li&gt;
&lt;li&gt;Server-side transcoding infrastructure&lt;/li&gt;
&lt;li&gt;Fighting iOS Safari and Android quirks&lt;/li&gt;
&lt;li&gt;Paying $0.02-0.03/min to a vendor with monthly minimums&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So only enterprise platforms like HireVue could offer it. Not anymore.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shift: browser-native video recording
&lt;/h2&gt;

&lt;p&gt;Modern browser APIs changed the economics completely. Instead of uploading raw video to servers for processing, we transcode &lt;strong&gt;directly in the browser&lt;/strong&gt; using the WebCodecs API.&lt;/p&gt;

&lt;p&gt;What this means for HR platforms:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;Now&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Raw video → server transcoding → storage&lt;/td&gt;
&lt;td&gt;Browser encodes MP4 → direct upload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;50MB per minute of video&lt;/td&gt;
&lt;td&gt;5-10MB per minute&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server infrastructure required&lt;/td&gt;
&lt;td&gt;Edge-only, serverless&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$0.026/min&lt;/td&gt;
&lt;td&gt;$0.01/min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Weeks to integrate&lt;/td&gt;
&lt;td&gt;Hours&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No plugins. No app installs for candidates. Works on mobile — candidates record from their phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 lines to add video interviews
&lt;/h2&gt;

&lt;p&gt;Here's how you add a candidate recording flow to your React-based HR platform:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VidtreoRecorder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@vidtreo/recorder-react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;VidtreoRecorder&lt;/span&gt;
  &lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;your-api-key&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="nx"&gt;maxDuration&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That gives you: camera selection, recording controls, upload progress, error handling, and automatic transcription. Done.&lt;/p&gt;

&lt;p&gt;Not using React? Works with any framework:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;vidtreo-recorder&lt;/span&gt;
  &lt;span class="na"&gt;api-key=&lt;/span&gt;&lt;span class="s"&gt;"your-api-key"&lt;/span&gt;
  &lt;span class="na"&gt;max-duration=&lt;/span&gt;&lt;span class="s"&gt;"90"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/vidtreo-recorder&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or vanilla JS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VidtreoRecorder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@vidtreo/recorder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;recorder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;VidtreoRecorder&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;maxDuration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;onComplete&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// video.url → the recorded interview&lt;/span&gt;
    &lt;span class="c1"&gt;// video.transcript → AI-generated transcript&lt;/span&gt;
    &lt;span class="nf"&gt;saveToCandidate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nx"&gt;recorder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What makes this useful for HR specifically
&lt;/h2&gt;

&lt;h3&gt;
  
  
  AI transcription is included — not an add-on
&lt;/h3&gt;

&lt;p&gt;Every recording is automatically transcribed. This unlocks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Searchable interviews&lt;/strong&gt; — find every candidate who mentioned "Kubernetes" or "team lead experience"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keyword extraction&lt;/strong&gt; — flag specific skills or experiences automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-language&lt;/strong&gt; — candidates record in their native language, transcripts in yours&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured data&lt;/strong&gt; — turn 60-second videos into parseable, scorable data points&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At $0.01/min, transcription included, this is 12x cheaper than running your own OpenAI Whisper pipeline.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your videos, your storage
&lt;/h3&gt;

&lt;p&gt;Candidate recordings are sensitive data. You need control over where they live.&lt;/p&gt;

&lt;p&gt;By default, videos are stored on our &lt;strong&gt;edge cloud storage&lt;/strong&gt; — globally distributed, zero egress fees, fast playback from anywhere. But if your compliance or architecture requires it, you can plug in &lt;strong&gt;your own S3 or R2 bucket&lt;/strong&gt; and videos go straight there. You own the files, we never touch them after upload.&lt;/p&gt;

&lt;p&gt;Coming soon: &lt;strong&gt;Azure Blob Storage&lt;/strong&gt; and &lt;strong&gt;Google Cloud Storage&lt;/strong&gt; support.&lt;/p&gt;

&lt;p&gt;This matters in HR. GDPR, SOC 2, internal data policies — your legal team will ask "where do the videos live?" With Vidtreo, the answer is wherever you decide.&lt;/p&gt;

&lt;h3&gt;
  
  
  The use cases are broader than you think
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Startups (no HR team):&lt;/strong&gt; Post a job, include a link to record a 60-second intro. Review candidates async. Cost for 100 candidates: ~$1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ATS platforms:&lt;/strong&gt; One-way interviews, video assessments ("walk me through your portfolio"), onboarding recordings where new hires introduce themselves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Staffing agencies:&lt;/strong&gt; Batch-send recording links to 200 candidates. 1-minute videos replace 15-minute phone screens. Forward clips directly to hiring managers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Universities:&lt;/strong&gt; Scale admission interviews, oral exams, career services practice sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The math for your platform
&lt;/h2&gt;

&lt;p&gt;If you're building an HR tool, here's the business case:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Volume&lt;/th&gt;
&lt;th&gt;Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Small ATS, 50 interviews/month&lt;/td&gt;
&lt;td&gt;50 min&lt;/td&gt;
&lt;td&gt;$0.50/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mid-size platform, 500/month&lt;/td&gt;
&lt;td&gt;500 min&lt;/td&gt;
&lt;td&gt;$5/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Staffing agency, 5,000/month&lt;/td&gt;
&lt;td&gt;5,000 min&lt;/td&gt;
&lt;td&gt;$50/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise, 50,000/month&lt;/td&gt;
&lt;td&gt;50,000 min&lt;/td&gt;
&lt;td&gt;$500/month&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Compare that to HireVue's enterprise contracts or building your own video infrastructure. The ROI is immediate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Add video recording to your HR platform:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$1 free credit&lt;/strong&gt; — enough for ~100 recordings to prototype&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$0.01/min&lt;/strong&gt; — no monthly fees, no minimums&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI transcription included&lt;/strong&gt; — every recording, automatically&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;React, Web Component, or vanilla JS&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://vidtreo.com" rel="noopener noreferrer"&gt;vidtreo.com&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.vidtreo.com" rel="noopener noreferrer"&gt;docs.vidtreo.com&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;SDK&lt;/strong&gt;: &lt;code&gt;npm install @vidtreo/recorder&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;I'm the founder. We built this because we saw HR platforms struggling with the same video infrastructure problem over and over. If you're building in the HR/recruiting space, I'd love to hear what you're working on — drop a comment or DM.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>saas</category>
      <category>hiring</category>
    </item>
    <item>
      <title>We built a video recording API at $0.01/min. Here's the tech that made it possible.</title>
      <dc:creator>Christian Segovia</dc:creator>
      <pubDate>Fri, 13 Mar 2026 04:17:57 +0000</pubDate>
      <link>https://forem.com/danger_cris/we-built-a-video-recording-api-at-001min-heres-the-tech-that-made-it-possible-872</link>
      <guid>https://forem.com/danger_cris/we-built-a-video-recording-api-at-001min-heres-the-tech-that-made-it-possible-872</guid>
      <description>&lt;p&gt;Most video recording APIs charge $0.02-0.03 per minute. We built one for $0.01/min — 62% cheaper — and it actually works better.&lt;/p&gt;

&lt;p&gt;This isn't a pricing gimmick. It's what happens when you rebuild video recording with modern browser APIs instead of legacy server infrastructure.&lt;/p&gt;

&lt;p&gt;Here's the full technical breakdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem we solved
&lt;/h2&gt;

&lt;p&gt;Traditional video recording services follow this flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User records video in browser&lt;/li&gt;
&lt;li&gt;Raw video uploads to server&lt;/li&gt;
&lt;li&gt;Server transcodes to MP4&lt;/li&gt;
&lt;li&gt;Server stores the file&lt;/li&gt;
&lt;li&gt;You pay for compute, bandwidth, and storage&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Steps 2-4 are expensive. Transcoding servers, egress fees, processing time — it adds up fast. That's why Ziggeo charges $0.026/min and others charge even more.&lt;/p&gt;

&lt;p&gt;We asked: &lt;strong&gt;what if the browser did most of the work?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Our architecture: edge-first, client-side transcoding
&lt;/h2&gt;

&lt;h3&gt;
  
  
  WebCodecs API for client-side transcoding
&lt;/h3&gt;

&lt;p&gt;Instead of uploading raw video and transcoding on servers, our SDK uses the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API" rel="noopener noreferrer"&gt;WebCodecs API&lt;/a&gt; to transcode video to H.264 MP4 &lt;strong&gt;directly in the user's browser&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;VidtreoRecorder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@vidtreo/recorder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;recorder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;VidtreoRecorder&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;// That's it. Recording, transcoding, and upload are handled.&lt;/span&gt;
&lt;span class="nx"&gt;recorder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The video that reaches our servers is already a properly encoded MP4. No server-side transcoding needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost saved: ~60% of traditional processing costs.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cloudflare Workers for edge processing
&lt;/h3&gt;

&lt;p&gt;Our API runs on Cloudflare Workers — serverless functions deployed to 200+ cities worldwide. No origin servers. No EC2 instances. No scaling headaches.&lt;/p&gt;

&lt;p&gt;Every API request is processed at the edge node closest to the user. Sub-100ms latency globally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost saved: ~70% compared to traditional server infrastructure.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  R2 Storage for zero egress fees
&lt;/h3&gt;

&lt;p&gt;Video files are stored on Cloudflare R2, which charges $0.015/GB for storage and &lt;strong&gt;$0 for egress&lt;/strong&gt;. Compare that to AWS S3's $0.09/GB egress fees.&lt;/p&gt;

&lt;p&gt;When your users watch or download their recorded videos, we pay nothing for bandwidth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost saved: 100% of egress fees.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The math behind $0.01/min
&lt;/h2&gt;

&lt;p&gt;Here's why our costs are fundamentally lower for a 1-minute HD (720p) recording:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;VIDTREO&lt;/th&gt;
&lt;th&gt;Traditional&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Transcoding&lt;/td&gt;
&lt;td&gt;$0 (client-side)&lt;/td&gt;
&lt;td&gt;Server GPU costs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge processing&lt;/td&gt;
&lt;td&gt;Minimal (Workers)&lt;/td&gt;
&lt;td&gt;Origin server costs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage&lt;/td&gt;
&lt;td&gt;R2 (low cost)&lt;/td&gt;
&lt;td&gt;S3 + replication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Egress&lt;/td&gt;
&lt;td&gt;$0 (R2)&lt;/td&gt;
&lt;td&gt;$0.09/GB (S3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI transcription&lt;/td&gt;
&lt;td&gt;Included&lt;/td&gt;
&lt;td&gt;Extra cost&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The architecture difference is real. We charge $0.01/min. Competitors charge $0.026/min because their infrastructure requires it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SDKs&lt;/strong&gt;: React, Vanilla JS, and Web Components&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality&lt;/strong&gt;: SD to 4K recording (the only service with 4K at this price point)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screen recording&lt;/strong&gt;: Capture screen, camera, or both&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI built-in&lt;/strong&gt;: Automatic transcription and summaries, 12x cheaper than OpenAI&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Webhooks&lt;/strong&gt;: Real-time event notifications for your pipeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;S3-compatible storage&lt;/strong&gt;: Native support for sending videos to your own S3 buckets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free tier&lt;/strong&gt;: 100 minutes/month, no credit card required&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt;: Full type safety, great DX&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Quick start (React)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;useVidtreoRecorder&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@vidtreo/recorder-react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;VideoRecorder&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;startRecording&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stopRecording&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;isRecording&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useVidtreoRecorder&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-api-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;quality&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;onComplete&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Video URL:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Transcript:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;video&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;transcript&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;})&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;isRecording&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;stopRecording&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;startRecording&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;isRecording&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Stop&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Record&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Web Component (framework-agnostic)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;vidtreo-recorder&lt;/span&gt;
  &lt;span class="na"&gt;api-key=&lt;/span&gt;&lt;span class="s"&gt;"your-api-key"&lt;/span&gt;
  &lt;span class="na"&gt;quality=&lt;/span&gt;&lt;span class="s"&gt;"hd"&lt;/span&gt;
  &lt;span class="na"&gt;on-complete=&lt;/span&gt;&lt;span class="s"&gt;"handleVideo"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/vidtreo-recorder&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Real-world usage
&lt;/h2&gt;

&lt;p&gt;We're already in production with an enterprise client processing thousands of minutes monthly. The stack handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4K recordings without dropped frames&lt;/li&gt;
&lt;li&gt;Automatic retry on upload failures (IndexedDB persistence)&lt;/li&gt;
&lt;li&gt;Device management (camera/mic switching mid-recording)&lt;/li&gt;
&lt;li&gt;Real-time progress indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;We're actively building:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-track recording (camera + screen simultaneously)&lt;/li&gt;
&lt;li&gt;Custom recording UI components&lt;/li&gt;
&lt;li&gt;Azure Blob Storage and Google Cloud Storage integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;100 free minutes. No credit card. No per-seat pricing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://vidtreo.com" rel="noopener noreferrer"&gt;vidtreo.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.vidtreo.com" rel="noopener noreferrer"&gt;docs.vidtreo.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDK&lt;/strong&gt;: &lt;code&gt;npm install @vidtreo/recorder&lt;/code&gt;I'm the founder — happy to answer any questions in the comments. If you're currently paying for video recording infrastructure, I'd genuinely love to hear about your setup and pain points.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>saas</category>
      <category>video</category>
    </item>
  </channel>
</rss>
