[{"data":1,"prerenderedAt":30},["ShallowReactive",2],{"project-video-upload-demo":3},{"id":4,"title":5,"approach":6,"challenge":7,"created_at":8,"description":9,"extension":10,"github_url":11,"hero_image":12,"learnings":13,"live_url":12,"meta":14,"outcome":15,"role":16,"screenshot_captions":17,"screenshots":19,"status":21,"stem":22,"tags":23,"__hash__":29},"projects\u002Fprojects\u002Fvideo-upload-demo.yml","Video Upload Demo","The browser emits MediaRecorder chunks into a deferred-length tus upload. A NestJS API backed by @tus\u002Fserver and @tus\u002Fs3-store handles resumability, while MinIO provides a local S3-compatible development target.","Uploading a recording only after it finishes creates a fragile experience for large files and unreliable connections. The system needed to move bytes while recording was still in progress.","2026-07-11T16:55:35.000Z","A progressive video recording and upload system that streams MediaRecorder chunks into resumable S3-compatible storage.","yml","https:\u002F\u002Fgithub.com\u002Frealabdullah\u002Fvideo-upload-demo",null,"Resumable uploads need an explicit lifecycle: accepted chunks, completion, finalization, and cleanup for abandoned multipart state.",{},"A working reference implementation for resilient browser video uploads with progress telemetry and finalization.","Full-stack engineer",[18],"Recording controls and progressive upload telemetry",[20],"https:\u002F\u002Fres.cloudinary.com\u002Fdxvhsze0l\u002Fimage\u002Fupload\u002Fv1783856556\u002Flwonnasajcr8wzp5oicm.webp","Engineering demo","projects\u002Fvideo-upload-demo",[24,25,26,27,28],"Nuxt","NestJS","tus","S3","MediaRecorder","eHydJ958O6tm-aHoO7ocNfYr5kyZPDJAVBf-9htbMbg",1783862755218]