All notable changes to this project are documented here.
v2.31.0
Latest
Text Exit Animation Toggle
Added1 item
Text overlay settings now have an Exit On/Off toggle — turning exit off stretches the hold to fill the block so your text stays fully visible until it disappears, no exit animation plays, and your entrance value is preserved if you turn exit back on
Fixed1 item
Text timeline inner-section handles now stay reachable when you collapse easeIn or easeOut to zero — dragging the inner boundary back out re-separates the entrance or exit animation instead of shrinking the whole segment
v2.30.1
Spotlight Popout Centering Fix
Fixed1 item
Spotlight popout no longer drifts slightly to the right when the composition aspect ratio is 9:16 — it now stays centered on the source in narrow compositions the same way it does in square and wider formats
v2.30.0
Background Glow
Added2 items
Added Background Glow in the Background panel — pick a color and dial in one Strength slider to paint a saturated colored halo behind your clip, layered on top of whatever background you already have
Added a React to Sound toggle on the Background Glow so the halo pulses on detected music beats in both the editor preview and exported video — works with either a music track you added or the video's own audio (auto-analyzed on demand)
v2.29.5
Landing Page Buy Button Fix
Fixed4 items
The Pro buy button on the landing page now opens Polar checkout directly instead of sending you to the dashboard, prompting sign-in first when needed and resuming checkout automatically after login
Playback now starts from the true beginning of the edited timeline, so intermissions or freeze segments at the start no longer get skipped after you play to the end and hit play again or refresh back into the editor
Music clips can now be extended back into timeline space added at the beginning by a freeze or intermission, instead of getting stuck in a clipped state until you remove and re-add the song
Text, zoom, blur, spotlight, and clip-position timeline segments now keep their own draggable range inside intermissions at the start of the timeline instead of stretching back to time zero and getting stuck there
Changed1 item
Background picker now groups Solid, Gradient, and Dynamic as the first three tiles so color-style backgrounds sit together ahead of the image presets
Fixed1 item
Blur In and Gradient text animations now render correctly in exported videos instead of falling back to plain text
Changed1 item
Dragging the outer edges of any timeline segment (text, clip position, spotlight, zoom) now scales the entire block proportionally — easeIn, hold, and easeOut shrink or grow together in one drag instead of requiring separate adjustments
v2.29.4
Text Settings Color Picker Performance
Fixed2 items
Text setting color pickers now drag smoothly without lagging the editor when you scrub through shades
Changing text colors no longer retriggers heavy font-loading work on every overlay edit, which keeps the settings popup more responsive
v2.29.3
Scramble Text Animation
Added3 items
Scramble text animation — characters start as randomized glyphs and progressively decode into the real text from left to right, with a cycling cipher effect during the reveal
Blur In text animation — characters start blurred and offset, then progressively deblur and slide into position with staggered left-to-right timing
Gradient text animation — animated multi-color gradient scrolls across the text with customizable color stops via the color picker row that appears when selected
Fixed2 items
Terminal intermissions now reliably play through to the full extended timeline end instead of intermittently stopping right before the end hold begins
Deleting an intermission now pulls text and other timeline-anchored items back into the visible timeline immediately instead of leaving them stranded off the right edge until you interact with them
v2.29.2
Intermission Music Playback Fix
Fixed3 items
Background music now plays through intermissions added at the end of the timeline instead of cutting out when the freeze-expanded time passes the clip boundary
Terminal intermissions no longer stall the playhead — the freeze timer now activates even when the video element reaches its natural end before crossing detection can fire
Music reliably stops when the playhead reaches the end of the full timeline including intermissions, instead of continuing to play past the total duration
v2.29.1
Spotlight & Freeze Timeline Fixes
Fixed10 items
Spotlight now follows the clip when the frame position is moved, instead of rendering as if the screen was still centered
Export spotlight socket no longer lingers after the popout fades out — both now fade together during the ease-out transition
Freeze frames no longer force zoom, blur, spotlight, clip, and text timeline segments to stretch across the whole held range — overlapping timeline items now keep their own size in the editor and playback/export at the visible timeline time you placed them
Clicking zoom, blur, spotlight, and clip timeline segments now moves the playhead to the segment's visible timeline position inside freeze frames instead of jumping to the held source frame after the freeze
Dragging freeze frames across the timeline no longer gets pinned at the start of an intermission window, so you can move a freeze past intermission ranges more reliably
Shrinking a freeze or intermission now pulls later timeline-anchored overlays and effects left with the shorter output timeline instead of leaving them stranded at their old absolute positions
Adding a freeze or intermission at the very end of the timeline now extends the timeline duration correctly instead of rendering the new hold past the right edge
Music clips now stay aligned to the extended output timeline, so background music keeps playing through freezes and intermissions added at the end when the track still has remaining audio
The shared playhead line now stays aligned across timeline rows at the edges, so the top handle no longer drifts out of line with the lower tracks near the start or end of the timeline
The first and last timeline ruler labels now stay readable at the edges, and fit-width timelines no longer show a phantom horizontal scrollbar just because the playhead is parked at the end
v2.29.0
Timeline Zoom & Spotlight Polish
Added4 items
Timeline zoom — Ctrl+scroll wheel over the timeline to zoom in/out, or use the zoom controls next to the Mute button. Fit button resets to 1x. Playhead auto-scrolls into view during playback
Solid color backgrounds — pick any flat color as a video background via the color picker in the background panel, works in both preview and export
Video backup now falls back to Cache API when IndexedDB is unavailable, so recordings survive page refresh even with corrupted browser storage
Intermission gaps — add a 5-second background-only section at the playhead, resize it down to 3 seconds or longer, and place animated text on it without using clip-only workarounds
Fixed22 items
Spotlight popout now moves straight up instead of drifting sideways when the phone mockup is tilted
Spotlight popout renders at correct proportions on tilted mockups instead of appearing skewed
Spotlight black pocket is clipped to the phone screen so it no longer bleeds past the bezel corners
Export spotlight border effects (strong glow, neon pulse, traveling light) now render as soft outward-only diffused glow matching the CSS preview instead of hard border lines
Export border radius on spotlight popout now scales proportionally to match the preview at higher resolutions
Export no longer freezes the browser — video frames yield to the main thread periodically, and mockup scene canvases are reused across frames to prevent GPU memory exhaustion
Ctrl+scroll wheel no longer zooms the browser page
Timeline zoom now keeps working after the timeline remounts, so fullscreen toggles and similar editor state changes no longer leave Ctrl+scroll and auto-follow disconnected
Dragging a cut handle at the end of a shortened timeline can now reopen collapsed deleted spans instead of getting stuck at the shrunken edge and forcing a full reset
Text overlays now stay aligned to their visible timeline position during extended holds, so freeze frames and intermissions no longer throw off preview or export timing
Background music now plays smoothly through intermissions instead of chattering from repeated hold-segment resyncs
Dragging an intermission edge now keeps the resize handle visually anchored instead of drifting away as the timeline extends
Editing intermission text now feels snappier because text changes no longer re-run the full preview stack on every keystroke
Clicking a text block on an intermission now moves the playhead to the text's visible timing instead of jumping back to the start of the whole gap
Intermissions now live directly on the main cut timeline instead of in a separate extra row, so the editor stays cleaner while keeping the same resize and delete controls
Playback now exits intermissions without a brief stall at the end, because the held frame releases back into normal playback without forcing a tiny resume seek
The playhead no longer flashes back to the start of an intermission on release, so the end of the gap now transitions forward cleanly
Freeze-frame preview now holds on a captured still image during the freeze, which prevents the clip from briefly jumping to the next decoded frame underneath the hold
Recently released holds now keep the playhead pinned to the end of the gap until source playback actually advances, removing the last intermission-only playhead flash
Intermission controls and title text editing now stay in sync more reliably, with shared duration limits, steadier dismiss behavior, and local drafts that refresh correctly after external text changes
Spotlight popouts now stay aligned when no background is selected, so the lifted card matches the visible video area instead of drifting off to the side
Tilted spotlight popouts now stay attached to the projected clip surface and lift more naturally forward instead of jumping far upward or sideways
v2.28.1
Spotlight Depth Preview
Changed18 items
Phone device mockups can now switch between portrait and landscape orientation, with landscape mobile recordings automatically defaulting to a rotated phone frame and an explicit orientation toggle in the editor when you want to override it
The generic fallback phone mockup now uses a more polished device frame with refined metal shading, sensor hardware, and side buttons, so desktop-recorded 9:16 clips no longer feel stuck in a cheap placeholder shell
The generated Mobile mockup now uses a simpler two-button side silhouette, so the fallback frame feels cleaner and less busy while still reading like a real device
The generic device mockup now appears in the picker with a real rendered Mobile thumbnail instead of an emoji placeholder, and its orientation control now reads Mobile Orientation for cleaner editor copy
The generated Mobile mockup now supports portrait and landscape orientations like the image-based phone frames, and its picker thumbnail updates to match the selected orientation
The Mobile picker thumbnail now stays portrait and contained inside its card, so switching the actual mockup to landscape no longer breaks the sidebar layout
Dynamic backgrounds now include an optional Beat Sync toggle in the editor, so the animated blobs can pulse with detected music beats during preview, video export, and GIF export
Spotlight preview now lifts the selected area above a dark cutout instead of showing a mirrored duplicate below it, with the offset and depth tied to spotlight progress so the selected piece actually travels out of the surface and settles back into place while the socket stays fixed behind it
Spotlight preview no longer zooms the whole clip first, so the effect reads as a cleaner lifted card instead of a full-screen push-in
Spotlight preview cutouts and lifted cards now stay aligned to the source video when the clip is tilted or shown in perspective, the card separation scales more consistently with preview size, the socket edge renders cleaner, and the lifted card now follows the screen's actual tilt direction instead of behaving the same on left- and right-leaning shots
Spotlight preview now fully blacks out the source area and still lifts the selected card even when dimming is set to zero, so the effect doesn't disappear when you want a cleaner background
Spotlight settings now include depth-of-field controls with radial and directional focus modes, so you can blur the background around a lifted spotlight without switching to clip-position tools
Beam transfer now shows a live network globe on desktop and mobile, with symbolic phone-to-editor route lines that hop between relay paths so the handoff keeps feeling active while you're waiting, uploading, or receiving the clip
Beam desktop now keeps the QR code clean and scannable before your phone connects, then switches to the live transfer globe once the phone opens the link, with a quick toggle to show the QR again if you need to rescan
Beam globe badges now keep their Phone and Editor labels readable in both themes instead of fading into the chip background on some screens
The device mockup picker now includes iPhone 17 Pro frames in three colors, grouped into a single card with swatches so the sidebar stays compact
iPhone 17 Pro mockups now tuck the video slightly inside the top and bottom display edge and add tiny cleanup masks so the content no longer peeks past the bezel corners
The older iPhone mockup is now labeled iPhone 13 in the picker, so it reads more clearly next to the newer iPhone 17 Pro variants
Fixed24 items
The generic fallback phone mockup now keeps desktop-recorded 9:16 clips visible in preview, screenshots, GIFs, and exports instead of collapsing to a background-only frame when no PNG bezel asset is involved
The generated Mobile mockup now slightly overfills the display under the bezel, which removes the thin bottom seam that could appear from subpixel rounding in preview and export
Music clip dragging and trimming now snap to the beat markers shown on the editor timeline instead of the source track's original timestamps
Smart Sync now snaps cuts, timing blocks, and auto-added zoom punches against the visible output timeline beat positions instead of mixing source-time edits with output-time beat markers, so beat-based syncing stays tighter after cuts, skips, speed changes, and freeze frames
Beat-synced dynamic backgrounds now react to a denser set of detected music accents instead of waiting only for the sparse tracked beat grid, so the blobs start pulsing earlier on songs with obvious impacts before the first major timeline marker
The Beat Sync control on dynamic backgrounds now shows a live Analyzing spinner while music beat detection is running, so it no longer feels like the feature is idle when the editor is still preparing beat data
Beat detection now analyzes the selected music clip when one is highlighted, instead of always using the first music track on the timeline
Detect Beats now falls back to the clip under the playhead and warns when the existing beat data belongs to a different music clip, instead of showing a misleading 0-beat result for the wrong track
Running Detect Beats on a new music clip now clears stale beat data from the previous track immediately, so the music timeline no longer gets stuck showing another clip's markers or mismatch warning while reanalyzing
Detect Beats now analyzes the selected clip's actual source range with a little padding instead of normalizing against the whole song every time, so trimmed music sections are less likely to come back with misleading no-beat results
Beat detection now tracks a steadier beat pulse with better downbeat guesses instead of mostly surfacing isolated energy spikes, so editor sync markers line up more musically on a wider range of songs
The music timeline now labels the detected markers as beats and explains that it shows prominent beats and downbeats, instead of describing them as generic drops
The Beat Sync control on dynamic backgrounds now reads as Turn On and Turn Off instead of showing the opposite-looking OFF state when the feature is disabled
Spotlight depth-of-field preview now updates live while you drag the focus and blur controls, instead of waiting for a separate re-render before showing the change
Exported spotlight shots now match the newer preview style more closely, including the fixed black socket, lifted pop-out card, zero-dim support, and the removal of the old spotlight-only push-in and reflection look
Preview playback controls now stay in sync when a device mockup is active, so the big play overlay hides during playback and the transport button correctly flips to pause instead of getting stuck on play
Timeline playback now scrubs more cleanly while playing, with music respecting real backward drops and deleted cut boundaries skipping ahead without visibly hanging on the cut edge
Live playhead drags now coalesce rapid seek updates instead of hammering playback state on every mousemove, which smooths scrubbing and reduces the brief replay lag when music is on the timeline
Adding zooms, blur regions, text overlays, spotlights, and clip-position segments at the playhead now uses the correct source-time mapping even after removed cuts, so new timeline effects no longer get squeezed into the cut gap or behave like they were created inside deleted sections
Dragging and resizing zoom, blur, text, spotlight, and clip-position blocks across removed cuts now preserves the visible timeline shape instead of shrinking at the cut and stretching again after it crosses the deleted section
Clicking zoom, blur, text, spotlight, clip-position, and music timeline blocks now opens their controls again instead of getting swallowed by the post-drag guard after the recent timeline smoothing work
Playback timing now anticipates deleted-cut jumps in the editor timeline, so the preview and playhead no longer appear to freeze on removed sections while the raw video time catches up underneath
Selecting zoom, blur, text, spotlight, and clip-position blocks after removed cuts now seeks using their visible timeline position instead of their raw source-time position, so their entrance and exit timing lines up with where the block actually sits
Zoom, blur, text, spotlight, clip-position, and spotlight depth-of-field preview timing now follows raw source playback time instead of compressed timeline time, so effects placed after removed cuts trigger where they visually sit instead of drifting late by the deleted span
v2.28.0
Editor Save & Navigation Guard
Added2 items
The editor now shows a "Save a copy before you start editing" modal the first time you open a new video, with a one-click Save to computer button so you always have the original source file on disk even if browser storage gets cleared
The editor now warns you before closing the tab, refreshing, or navigating away when you have a video loaded, so a stray keypress or accidental close doesn't wipe out an edit session
Fixed3 items
Beam mobile upload page now strictly accepts a single video — if your phone's picker shows a multi-select UI, only the first clip you pick gets sent
The new source-save prompt in the editor now follows your selected app language instead of always appearing in English
Editor exit links now warn before sending you to sign-in, billing, admin, or back to the studio, instead of only catching full tab closes and refreshes
v2.27.0
Beam Polish — Landing Page + Friendly Mobile Page
Added1 item
Landing page hero now shows a small "Recorded on your phone? Beam it over" link below the main CTAs so first-time visitors can jump straight from a phone recording into the editor
Changed6 items
The Beam mobile upload page is now fully on-brand with the ScreenSlick mark, bold typography, and a textured grid backdrop instead of the previous bare white screen
Beam mobile page now animates: a gently floating phone icon on the upload card, a shimmer effect on the progress bar while sending, a popping checkmark when the transfer completes, and a subtle shake on the error card
Beam mobile page now shows the filename and a clearer big-percentage readout while uploading so you can tell at a glance how close it is to finishing
Beam buttons across the app now use a phone-with-broadcasting-waves icon instead of a plain phone, making the action read more clearly as a wireless transfer
The landing page Beam link now emits expanding ring waves around the phone icon when you hover, hinting at the broadcasting feel of the feature
Beam buttons now show a hand cursor on hover so it's obvious they're clickable, instead of falling back to the default arrow
Fixed1 item
Tapping the Beam button on a phone-sized screen now shows a friendly toast explaining that Beam needs a second device, instead of opening a QR code that the same phone can't scan
v2.26.1
Export Direction Match Fix
Fixed5 items
Directional depth-of-field exports now match the angle shown in the editor preview instead of rendering on the wrong diagonal
Depth-of-field exports now keep a stronger blur intensity so the rendered result matches the editor preview more closely
Spacebar play/pause now stays locked to the current timeline position instead of jumping back to the last clicked timeline spot after using the preview or transport controls
Text, zoom, blur, spotlight, and clip timeline rows now shift left with the shortened edit after mid-timeline cuts instead of hanging off the right edge
Dragging and resizing text, zoom, blur, spotlight, and clip timeline rows now stays aligned with the shortened edit after cuts instead of snapping to the wrong source-time positions
v2.26.0
Beam — Phone to Editor Transfer
Added1 item
New Beam button in the recording studio and editor header lets you scan a QR code with your phone and send a video straight into the editor — no email, cables, or cloud drive round-trips
v2.25.0
Subtitle Panel UX Refresh
Fixed1 item
Generated subtitles are once again split into short readable lines instead of being merged into one giant paragraph block — long monologues now break on punctuation and natural pauses, with any remaining long sentences sliced into ~80-character chunks
Fixed29 items
Background music now previews smoothly even when timeline speed changes make edited video segments play faster or slower than 1x
Large text overlays now keep descenders like g and j visible in preview instead of clipping them at the top or bottom of the text box during playback
The text overlay emoji picker now opens without flashing the whole settings popover on first use
Portrait recordings now fit properly in fullscreen preview instead of blowing up and cropping off part of the composition
Portrait clips now stay at their original visual size when you switch the editor canvas to square or landscape, instead of scaling up to fill the new frame
iPhone mockup screens now clip to the phone's rounded display corners so the video no longer peeks out behind the bezel in portrait projects
iPhone mockups now fill the bottom edge more cleanly again instead of leaving a small gap below the video
iPhone mockups now reach the top edge cleanly again instead of leaving a tiny 1px gap above the video
iPhone mockups now use a final top-edge alignment nudge so the screen fills the bezel more tightly
iPhone mockups now inset the video a hair from the top display edge so anti-aliased frame pixels no longer show a shimmering 1px line
iPhone mockups now add a tiny top edge mask inside the display so the last 1px shimmer line is covered cleanly
iPhone mockups now also mask the bottom display edge a hair so the frame no longer shows a tiny background leak there
Phone mockups now fill their screen cutouts more cleanly so portrait videos don't leave visible gaps inside frames like the Samsung S20 Ultra
Phone mockups now stay available for portrait source videos even when you switch the editor canvas to square or wide formats
Phone mockups now add a subtle 1px black screen border so the video edge reads more cleanly against the device bezel
Samsung S20 Ultra mockups now keep the video a few pixels inside the top and bottom screen edge so the transparent cutout no longer shows a faint leak line
Samsung S20 Ultra now uses the newer higher-resolution mockup asset with updated screen-fit measurements so portrait videos line up cleanly in the frame
Samsung S20 Ultra mockups now reach the right bezel cleanly instead of leaving a tiny sliver gap beside the video
Phone mockup labels are now simplified to just iPhone and Samsung in the picker
Clicking a zoom segment on the timeline now reliably reopens its zoom controls instead of leaving the settings hidden
The style theme picker now loads without a hydration mismatch or placeholder flash when switching between Brutalist and Luma themes
The Pro badge on signed-in profile avatars in the header now sits above the avatar frame instead of getting clipped by the image container
Spotlight preview now keeps its tilt effect while drawing the popout at a higher resolution, reducing blur on text and zoomed-in details inside the highlighted area
Spotlight exports now preserve the popout tilt effect instead of flattening the highlighted panel during render
Spotlight exports now keep the tilt motion continuous from the first frame so the popout no longer jumps from a flat zoom into a tilted position mid-animation
Spotlight exports no longer flash mesh seams or a stray corner of the full clip while the tilted popout is easing in
Traveling-light spotlight borders in exports now follow the tilted popout more cleanly, with smoother motion and fewer duplicate-looking highlights or grid artifacts
Snap now opens Screenshot Studio from a clean clip capture again instead of baking in the editor's current background, border, and shadow styling
Compressed exports now use the legacy FFmpeg browser setup again, so the extra compression pass finishes instead of failing after the main render completes
Added5 items
Text overlay settings now include a lazy-loaded native emoji picker so you can drop emojis into titles and captions without leaving the editor
Screenshot Studio backgrounds can now pull colors directly from the snapped frame for both gradient and dynamic backgrounds
Editor settings now let you switch an existing project between Original, 16:9, 9:16, and 1:1 canvas ratios without rerecording
Portrait projects can now use an iPhone mockup frame that fits 9:16 videos directly into a phone device bezel
Portrait projects now also include a Samsung S20 Ultra mockup option for phone-style demos
Changed7 items
Removed the static "Reading now" preview box from the transcript panel — the panel now auto-scrolls to keep the currently spoken subtitle centered while the video plays, just like the legacy editor
Auto-scroll politely steps aside for 3 seconds whenever you manually scroll the transcript so it never fights you while you're reviewing or editing
Voiceover controls are now hidden inside a collapsible "Text-to-Speech" accordion at the top of the transcript panel instead of stacked below the segments, so a long voice list no longer pushes the subtitles down
Subtitle styling controls have moved into a new "Sub Settings" button pinned to the bottom of the subtitles sidebar that expands upward when clicked, keeping them reachable even when your transcript is hundreds of lines long
Clicking the gradient background tile now randomizes the preset in both the editor sidebar and Screenshot Studio, while both panels now share matching background controls like custom uploads and editable color palettes
Regular zooms on portrait and square recordings now push in on the whole device and bias toward the clicked area instead of cropping hard into the raw video
Canvas ratio controls in the editor now use clearer shape buttons with the ratio values shown directly inside each option instead of a harder-to-scan dropdown
v2.24.0
Device Mockup Frames
Added4 items
Place your video inside a MacBook Air or MacBook Pro 16 device frame directly in the editor
Device mockups work with all existing backgrounds, padding, and clip animation settings
Mockup frames render in both video exports and GIF exports
Corner-wrap text automatically adapts to mockup bounds, wrapping around the device lid at top corners and running vertically along the sides for bottom corners
Changed2 items
Clip Frame controls (border radius, shadow, glass border) are hidden when a device mockup is active since the frame handles the styling
Text overlay layout recalculates immediately when switching between mockups
v2.23.1
Freeze Frame Timeline Sync Fixes
Changed2 items
Editor timeline now grows with freeze-frame holds, so adding a 20-second freeze extends the visible project length by 20 seconds
Screenshot Studio now starts with a much lighter depth-of-field blur so new snaps look clearer by default
Fixed27 items
Fullscreen scrubber, playhead timing, and freeze track seeking now stay aligned with freeze-frame output time instead of the raw source duration
Background music timing now stays in sync with freeze frames in both preview playback and exported videos
Music clips can now stretch across freeze-frame holds instead of stopping at the original source-video length
Subtitles now remain aligned after freeze frames in both the editor preview and exported videos
Imported timeline presets now restore freeze-frame segments correctly
Text, zoom, blur, spotlight, and clip timeline rows now stay visually locked to the freeze-aware playhead instead of drifting after added holds
Text, zoom, blur, spotlight, and clip tracks now keep their own independent durations when you resize a freeze frame instead of stretching with the hold
Playback controls and timeline seeking now stay responsive while the playhead is inside a freeze frame instead of ignoring pause and scrub actions until the hold finishes
Freeze-frame holds no longer show an extra mini playhead in the freeze row, and the held frame now stays pinned more cleanly instead of wobbling between nearby frames
You can now park the playhead anywhere inside a freeze-frame hold to edit overlapping text and timeline items without it snapping back to the freeze start
Resuming playback from the middle of a freeze-frame hold now continues from that exact point, and background music stays in sync instead of waiting until the hold ends
The main timeline playhead no longer flashes to the end of a freeze block for a frame when playback first enters the hold
The main ruler playhead can now be dragged anywhere inside a freeze-frame hold so you can inspect and edit animated items that overlap the frozen section
Later freeze-frame holds now exit cleanly without briefly replaying the start of the frozen moment or its soundtrack before continuing
Scrubbing the timeline during playback now lands correctly inside freeze-frame holds instead of snapping to their start or end boundaries
Music clips on the timeline now visually clip to the output duration instead of overflowing past deleted segments
Uploading a new video now fully resets the editor instead of carrying over edits from the previous video
Recordings now keep screen text sharper in demo and screen capture modes, especially when padding is enabled around the clip
Padded video draws now use higher-quality scaling so clip edges and on-screen text stay cleaner instead of turning soft or garbled
Device mockup frames now render above the clip preview so newly added laptop mockups mask the screen edges instead of letting content spill past the bezel
MacBook Air and MacBook Pro mockup screen bounds now fit their frame assets more tightly, reducing corner bleed and edge overflow
MacBook Air and MacBook Pro mockups now use transparent screen cutouts plus a small bezel overscan so the video stays visible while corner and edge gaps are masked cleanly
Snap screenshots now include the active device mockup and current clip composition instead of always falling back to the raw video frame
Snap screenshots with device mockups now keep the mockup on transparency instead of baking the editor backdrop into a white rectangular slab behind it
Screenshot Studio mockup snaps now cast their shadow from the device silhouette instead of a flat rectangular card under the laptop
Elastic and particle text animations no longer get clipped by the overlay box while bouncing in the editor preview
Corner-wrap text now hugs MacBook mockup bounds in both preview and export instead of drifting out toward the larger composition area
v2.23.0
Luma Theme Overhaul, Track Colors & Editor UX
Added4 items
Dedicated track color system — Zoom (blue), Blur (pink), Text (green), Spotlight (amber), and Clip (purple) each have a unique color on the timeline, making it easy to tell tracks apart at a glance
Colored dot indicators on each tool button in the sidebar matching its track color
Slice button moved to the playback transport bar next to Play and Snap for quicker access
Backup folder section now shows a helpful message on browsers that don't support the File System Access API (e.g. Brave, Firefox) instead of hiding it entirely
Changed16 items
Luma theme redesigned with Tella-inspired aesthetic — normal case text (no uppercase), tighter heading tracking, pill-shaped buttons and badges, glassmorphism header with backdrop-blur, and no section divider borders
Luma theme color palette changed from violet/stone to warm teal primary with amber accents and cream base tones
Luma theme radius increased from 0.875rem to 1.5rem for rounder cards and UI elements
Luma theme fonts and shadows are now clearly distinct from brutalist — Figtree font, soft shadows, and thin 1px borders vs Noto Sans, hard-offset shadows, and thick 4px borders
Theme-aware border weights — added --border-weight, --border-weight-sm, and --divider-weight CSS variables so borders adapt automatically between themes
Heading highlights use .text-highlight and .text-highlight-alt CSS classes that switch between inverted blocks (brutalist) and colored rounded pills (luma)
Inverted badges use .badge-inverted class — solid black in brutalist, primary-colored pills in luma
Style theme picker now available on all pages — recording studio and editor headers include it alongside the dark/light toggle
All tool buttons in the sidebar now display in a single column so labels like Spotlight and Clip Position are fully readable
Playback transport button order changed to Play → Snap → Slice → Time display
Snap and Slice buttons now use theme-aware border widths and border radius
Background picker tiles are now 4 per row with square aspect ratio, thinner borders, and tighter gap — inspired by Screen Studio's compact wallpaper grid
Background preset and gradient picker buttons use rounded-md for subtle rounding in luma theme
Recording without a background now uses the screen's native aspect ratio (e.g. 16:10 on MacBook Pro) instead of forcing 16:9 — no black bars, no stretching
Editor composition frame adapts to the video's native aspect ratio when a background is added, so padding is uniform on all sides
Export canvas scales up proportionally when padding is enabled so the video content area still gets the full target resolution — no more blurry exports with backgrounds
Fixed15 items
Exported floor reflections now keep a clearer gap below tilted clips, matching the preview much more closely instead of looking stuck to the frame
Editor playback controls and center overlay now stay in sync with the actual video element again, so the pause icon and middle play button no longer get stuck in the wrong state while video is already playing
Spotlight draw selection now stays aligned with the cursor more reliably across different desktop setups instead of drifting diagonally while you drag
Recording Studio camera border color changes now feel more responsive because the live canvas compositing preview updates on a deferred camera style value instead of blocking the color input drag
Text overlay border color picker now uses the same debounced drag behavior as the smoother color controls elsewhere in the app
Sign-in code entry is now properly labeled for screen readers, with grouped OTP semantics and per-digit labels
Clip motion in the editor now caches clip-frame measurements outside the animation loop, reducing layout work during zoom and tilt playback
Zoom click placement was offset from the actual click position — now uses normalized video coordinates consistent with blur and spotlight tools
Blur and spotlight draw previews were positioned incorrectly when a background was enabled — now uses video content rect accounting for object-contain letterboxing
Blur, spotlight, and zoom coordinate mapping now accounts for CSS object-contain on the video element, fixing offset issues on non-16:9 recordings
Clip position entrance/exit animation dropdowns were closing immediately without selecting — fixed by allowing Radix Select portal clicks to pass through the outside-click dismiss handler
Spotlight timeline floating controls had the same portal dismiss issue — fixed with the same Radix portal detection
Theme bootstrap script no longer triggers a React console error about script tags — replaced next/script with a raw inline script in <head>
sessionStorage access in VideoEditor no longer throws during server-side rendering on some browsers
Luma dark mode timeline labels were too dim — bumped muted-foreground lightness from 0.65 to 0.75
Removed2 items
Slice button removed from the right sidebar (moved to playback controls)
Quick Edits section label removed from sidebar — reset button appears inline when cuts exist
v2.22.0
Screenshot, Recording UX & Shadow Improvements
Added13 items
Screenshot button ('Snap') — captures the current frame at full resolution and opens Screenshot Studio for copy/download
Screenshot Studio modal — polish a snapped frame with tilt, roll, zoom, position, and depth-of-field before copying or downloading
Start Recording button moved to the toolbar row next to format/layout settings — always visible without scrolling on smaller screens
Upload Video button added to both the recording studio and editor headers
Pro badge on user avatar (yellow with black text) when the user has a paid license
FeedbackBasket widget for in-app feedback collection
Pricing section, About page, and footer with backlinks on the landing page
Editor preview image in the landing page hero section (1.5MB PNG compressed to 65KB WebP)
Brutalist grid pattern in the hero background
View transitions on page navigation using Next.js ViewTransition API
SEO metadata, sitemap, web manifest, and OpenGraph banner
Global clip entrance/exit animation controls in the sidebar — slide or fade the whole video clip in/out independently of per-segment timeline animations
Fullscreen scrub bar that respects deleted segments and speed changes — click to seek within playable content only
Changed13 items
Clip segments now support close-up shot scaling plus radial or directional depth-of-field for more cinematic framing on individual moments
Clip segment depth-of-field controls — add radial or directional focus looks to individual clip-position shots with smooth ease-in and ease-out
Clip shadow now uses 3 layered passes (contact + depth + ambient) for a more realistic 'floating above surface' effect
Screenshot Studio now opens from Snap instead of copying immediately, so you can polish the shot before copying or downloading
Screenshot Studio now supports much closer hero-shot zoom levels and mouse-wheel zooming in the preview
Facehash avatar used as fallback when user has no profile image, with Google photo preferred when available
Landing page hero text updated — 'No account needed to start' instead of 'No login'
Landing page copy now speaks more clearly to product demos, tutorials, uploads, privacy, Screenshot Studio, and music syncing instead of sounding like a generic recorder
Landing page navigation now includes a FAQ link, and the homepage now answers the most common workflow, privacy, pricing, screenshots, and music questions directly in a new FAQ section
Landing page FAQ now also clarifies that Chrome is the best browser for reliable local recording saves and that future desktop versions will honor the same purchase
Shared SiteHeader component across landing, about, and changelog pages for consistent navigation
GIF output resolution increased from 480p to 720p for better quality
GIF range overlay on timeline now uses emerald green for better visibility
Fixed41 items
Recording Studio top format/layout/position/gesture controls now stay in a cleaner wrapped toolbar instead of forcing a horizontal scroller over the preview, and Start Recording stands out more clearly as the primary action
Recording Studio now shows a proper in-preview Select Screen prompt instead of a half-empty canvas when a screen mode is selected but no screen source is active
Recording Studio gestures now let regular layout/position gestures bring you back out of Camera Only without needing a separate thumbs-down reset
Recording Studio gesture detection now follows live camera frames more smoothly and only restores a screen mode when a screen source is actually available
Recording Studio now asks for an optional backup folder when you enter the recording workspace instead of interrupting the actual Start Recording click, and screen modes no longer open the browser screen picker until you really need it
Screenshot captures now match the editor preview timing and retimed subtitles before opening Screenshot Studio
Screenshot Studio now keeps the background static while tilting and zooming a separate clip card, with mouse-wheel zoom and multiple depth-of-field modes for close-up mockups
Screenshot Studio now captures the clip flat and upright first, then rebuilds the final shot in the modal with its own background, padding, border, shadow, tilt, and depth-of-field styling
Screenshot Studio now uses a clean neutral workspace and exports fixed 16:9 shots for more consistent hero images
Screenshot Studio depth-of-field now blurs the full scene cleanly without exposing the mask at the edges during stronger tilts
Screenshot Studio scene controls no longer flash the preview black while adjusting padding, border, shadow, or glass border, and dynamic/gradient backgrounds stay available in the studio
Screenshot Studio glass borders now render cleanly without triangle seam artifacts, and the card can be dragged directly in the preview
Screenshot Studio glass borders now stay attached to the card edge instead of floating away during heavier tilts
Screenshot Studio mouse-wheel zoom now uses a non-passive preview listener so scrolling no longer throws console warnings
Screenshot Studio glass borders now keep their tilt alignment while avoiding seam patterns in the translucent rim
Screenshot Studio now gives directional focus a simple 0–360° angle control and exposes dynamic/gradient background controls inside the modal
Screenshot Studio dynamic backgrounds now animate live in the preview and keep the current motion phase when copying or downloading
Screenshot Studio directional depth-of-field now rotates correctly with the angle control instead of appearing stuck in one direction
Screenshot Studio controls now feel much snappier while dragging sliders or camera pads by coalescing preview redraws and using a lighter live render during active adjustments
Clips Only now hides only the base video between clip segments while keeping music playback continuous and still preserving text-only moments
Clip close-up scaling now stays consistent in paused preview and no longer throws text overlay sizing off while you edit
Regenerating AI voiceover now immediately updates preview playback without needing to toggle voiceover off and back on
Video depth-of-field export now matches the preview more closely instead of over-blurring most of the shot
Directional depth-of-field exports now use the same centered focus band as the preview instead of drifting from hidden focus coordinates
Dynamic and gradient background libraries now include new light and pastel presets for brighter scenes and screenshot compositions
Spotlight dimming now covers the whole exported scene like the preview instead of being clipped to the moved video area
Uploading a different video into the editor now clears stale timeline state first, restores that video's own saved setup when available, and no longer lets old cuts or preview timing make the new file fade out early
Editor actions sidebar now groups timeline actions more clearly and includes a one-click Clear Timeline reset like the legacy workflow
Recording Studio now keeps Start Recording pinned in the top-right while layout/position/gesture controls stay visible as disabled placeholders when unavailable
Clip-only exports now keep text and subtitle overlays visible even when the base video is hidden between clip segments
Timeline popovers now flip inward near the left and right edges so clip, zoom, blur, text, and spotlight controls stay visible instead of hiding under the surrounding UI
Uploading the same video again now reloads its saved editor state more reliably by matching uploads to a stable per-video key instead of a one-off file timestamp
Landing page now calls out Screenshot Studio and beat-synced music more explicitly, and the recording section headline reflects the actual record-or-upload workflow
Cut timeline ruler now gives time labels more breathing room on longer edits so the values stay readable instead of feeling crushed together
Text overlay editing no longer shows the dead 'Drag on preview' placeholder chip for freeform text
Spotlight popouts now stay anchored to moved clips in preview again, with a stronger lift animation and a brighter traveling-light border in exports
Screenshot Studio now falls back cleanly when a snapped blob cannot be decoded through createImageBitmap, so the captured image still loads in the modal
Screenshot Studio now opens snapped shots from a ready clip image first, so the modal no longer comes up blank while waiting on a second decode step
Screenshot Studio camera controls now show cleaner rounded tilt and position values instead of noisy decimal drift while you drag
Theme bootstrapping now uses a proper Next.js beforeInteractive script again, avoiding client render warnings in the app shell
Admin menu visibility now respects users with the real admin role immediately again, while still supporting env-based admin access
v2.21.1
Checkout Confirmation Fixes
Fixed7 items
Checkout success now refreshes account status without getting stuck in a page-reload loop
Older Polar customers can now unlock Pro after a one-time purchase even if their account link needs to be repaired by email
Pro access is no longer revoked as soon as a refund is created — only fully refunded Pro orders remove access
Tilted exports now keep the same clip shadow treatment as the editor preview
Tilted clip shadows now export without the visible projection grid artifacts behind the video
Exported glass borders now stay translucent like the editor preview instead of tinting the clip itself
Editor sidebar now includes whole-clip position and tilt pads for framing the entire video without adding a clip segment, with free 2D dragging like the legacy editor
v2.21.0
GIF Export with Effects
Added6 items
GIF export — select a clip range on the timeline and generate a GIF with all editor effects applied (backgrounds, text, spotlight, subtitles, zoom, blur)
GIF range overlay on the timeline with draggable handles — move the whole range or resize from either end
GIF mode toggle in the right sidebar with usage instructions when active
Generate GIF button with progress percentage below the timeline
Cancellation support during GIF generation
Warning for GIFs longer than 30 seconds
Changed5 items
GIF output renders at 720p (downscaled from source) for reasonable file sizes
GIF frames use the full export compositing pipeline — not raw video like the legacy version
Background image and font loading run in parallel during GIF generation (async-parallel best practice)
Editor hero image on landing page compressed from 1.5MB PNG to 65KB WebP
FeedbackBasket widget loaded via next/script with afterInteractive strategy
v2.20.0
Auth, Payments & Pro Exports
Added13 items
Sign in with Google OAuth or email OTP (passwordless 6-digit code)
Polar integration for one-time Pro license purchase ($29.99 early bird)
Upgrade modal with pricing when free users export — option to continue with watermark or upgrade
Watermark on exported videos for free users — 'Made with ScreenSlick' pill in bottom-right corner
User avatar menu in the editor and recording studio — billing portal, sign out
Sign In button on editor and recording studio nav bars when not logged in
Checkout success page with pro status polling before redirect
Pricing section on landing page with Free vs Pro comparison
About page with project backstory and links to other projects
Shared site header component across landing, about, and changelog pages
Footer with product links, other projects (ProntoShoot, FeedbackBasket, DoodleAI), and social links
View transitions on page navigation (fade + slide) using Next.js 16.2 ViewTransition API
OTP email delivery via ZeptoMail with branded ScreenSlick template
Changed7 items
Export button now checks auth — redirects to login if not signed in, shows upgrade modal if free
Download button renamed to 'Download Raw' to distinguish from edited export
Removed small download button from playback controls (redundant with top bar)
Gradient backgrounds — static mesh gradients with 6 presets (Warm, Cool, Sunset, Forest, Berry, Mono) and a 'Pick from Video' button that samples dominant colors from the current video frame
Beat detection markers now show descriptive tooltips on hover with beat timing and intensity
Smart Sync can now snap cuts, text timing, clip-position timing, and optional zoom punches to the visible beat positions on the music timeline
Cut and Detect Beats buttons now have multi-line tooltips explaining what they do
Fixed6 items
Corner-wrap text now correctly hugs the clip border regardless of padding amount
Corner-wrap text renders on the outside of the clip border instead of overlapping inward
Corner-wrap corner presets (top-left, top-right, etc.) now center text on the actual corner arc
Corner-wrap text no longer gets cropped at the top-left seam point
Export border radius now matches the preview by using clip dimensions instead of canvas dimensions
Tilted clip corner-wrap text in exports now uses per-character 3D projection to match CSS preview exactly
Changed4 items
Beat markers are now orange/amber with higher contrast instead of barely-visible grey lines
Strong beat drops are thicker and more prominent than regular beats
Background blur slider is hidden for dynamic and gradient backgrounds since they have built-in softness controls
Dynamic background Safari fallback renders at reduced resolution with upscaling instead of relying on unsupported ctx.filter
v2.18.0
Editor Layout Cleanup
Changed91 items
The editor now uses a wider three-column layout with left settings, center preview, and a new right actions rail
Crowded timeline buttons moved out of the bottom strip so the timeline reads more clearly
Segment tools, edit modes, and preset import/export now live in the right sidebar for quicker scanning
The editor workspace now stretches more like the recording studio instead of feeling narrower after recording
Selected cut controls now appear above the timeline so speed, mute, and delete edits stay focused near the clip you clicked
The sidebars keep a steadier footprint while editing because cut-specific controls no longer expand and collapse the actions rail
The preview area now gets more room and fits 16:9 compositions more cleanly instead of feeling cropped at the bottom
The editor now keeps more of the timeline stack visible when a segment is selected by trimming the preview height budget
Timeline stats now sit with the playback controls and the segment tools area keeps a reserved height so selections no longer make the editor jump
Timeline lanes are slightly shorter so more tracks fit on screen at once
Subtitle controls no longer push the left sidebar into a horizontal scrollbar when longer model names are selected
Clip-position sections now ease their opacity in and out by default so transitions from the regular video feel smoother even without a manual fade animation
Delete confirmation now actually removes the selected timeline item instead of only closing the dialog
Clicking a zoom, blur, text, spotlight, clip-position, or music item now clears the previous timeline selection so Delete targets the thing you just selected
Switching tools now clears lingering edit modes, and new zoom or music items take over selection immediately so Delete stays predictable
Segment controls now use a fixed-height layout so changing speed or mute states no longer nudges the timeline stack
Default clip-scene transitions now blend more clearly from the regular video into the clip state instead of feeling abrupt
Clicking the same timeline item now keeps it selected; selections clear only when you click elsewhere or choose a different target
The segment-tools strip now shows disabled controls when nothing is selected so the editor always looks ready for edit actions
Text overlays now include a stronger explode animation that implodes on entry and blasts outward on exit for more dramatic motion
Text overlay popovers now dismiss when you click elsewhere in the preview, whether they were opened from the preview or the timeline
Subtitle editing now lives in the right sidebar with its own dedicated tab next to Actions for a more natural editing flow
The subtitles tab now shows a live processing spinner while transcription or voiceover work is still running
The transcript sidebar now highlights the currently spoken subtitle and surfaces a live Reading now panel while the video plays
Full AI voiceover generation now composes segment audio on the timeline more reliably so longer lines are less likely to cut off early between subtitle sections
When AI voiceover playback is enabled, subtitle timing now follows the generated voice timing more closely instead of sticking to the original transcript pacing
The three-column editor now compresses more cleanly on laptop-sized screens with earlier desktop breakpoints, slimmer rails, and tighter header spacing
Exports that use the AI voiceover track now keep subtitle timing aligned with the same retimed voiceover pacing shown in the editor preview
Active click-on-video tools now show a small cursor-following label so Zoom, Blur, Text, Spotlight, and Clip modes are easier to understand at a glance
Very small screens now get a dedicated brutalist blocker screen instead of a broken compressed editor layout
Turning on AI voiceover now automatically mutes the original video audio so preview playback doesn’t double up both tracks
Removed cut sections now use a much stronger red treatment in the main timeline so deleted areas are easier to spot instantly
Refreshing or importing a saved edit now restores timeline items without re-arming Text, Clip Position, or other click-on-video tool buttons
Landing page uploads now open videos directly in the editor instead of bouncing through the recording setup flow
Uploading the same video again now restores its saved edit state more reliably by using a stable upload source key
Background selection now includes animated dynamic backgrounds and custom gradients with editable palettes, live preview, and export support
Landing page video uploads now initialize their local editor backup store correctly instead of failing on older saved browser schemas
Clip-position moves now stay clipped inside the composition area so sliding the video left or right reveals the background instead of spilling off the frame
Background-framed uploads now fit their clip box more cleanly again instead of showing a stray black strip beneath the video content
Videos without a background now stay centered in the preview too, so uploaded clips no longer shift left unless a background wrapper is active
Rounded clip corners now render cleanly again after clip-position moves instead of showing dark clipped wedges around the frame
Text overlays now support a new Corner Wrap layout that can hug a clip corner and flow from one frame edge onto the next
Corner-wrapped text now uses a dedicated edge-following layout path in both the editor preview and export rendering
Corner-wrap text now rides the outside edge of the clip with a real curved corner path instead of floating away from the frame
The text overlay popover now includes corner-wrap controls for layout mode, corner, inset, band thickness, and edge spans
The text overlay editor panel now floats above the preview in a portal so it no longer gets tucked behind clip borders or composition effects
Corner-wrap text panels now avoid the attached edge better by opening on the opposite side of right-edge and left-edge corner text
Corner-wrap text can now be dragged around the clip edge directly, with the layout staying attached to the frame instead of behaving like a floating box
Text overlay dropdown menus now open above the floating editor panel instead of slipping behind it
Corner-wrap text now follows the clip’s live tilt better and moves with a simpler forward/back progress model instead of buggy 2D edge dragging
Left-side corner-wrap text now starts on the chosen top or bottom border before curving onto the side, instead of appearing inverted
Top and bottom corner-wrap modes now travel along the visible upper or lower perimeter instead of unexpectedly dropping onto the wrong edge
Corner-wrap text now avoids a double-transform bug so it stays on the visible clip bounds instead of drifting toward the preview container edge
Corner-wrap text now uses the clip’s original layout box plus the same live transform as the video, so tilted clips keep the border text aligned to the apparent frame
Corner-wrap selections now show a dashed border path instead of a rectangular box so the guide follows the same clip edge as the text
Corner-wrap text and its dashed guide now project through the clip’s live transform point-by-point so tilted frames keep the path much closer to the rendered border
Fresh corner-wrap overlays now start from the selected corner instead of halfway around the frame path, so basic top-left and top-right layouts land where you expect
Corner-wrap text now starts from the chosen top or bottom edge again and wraps around the border run with the curved path, instead of collapsing back into straight box lanes on flat clips
Corner-wrap preview now uses an SVG textPath probe in the editor so border-following text can be tested against the actual rounded clip perimeter before the full feature is rebuilt
The SVG corner-wrap probe is now pinned closer to the actual clip border and temporarily locks to the selected corner so old progress offsets no longer throw the preview off while the new path behavior is being validated
The SVG corner-wrap probe now lowers text onto the border path itself and restores wheel-based movement around the full loop so the preview is easier to judge before the full rebuild
The SVG corner-wrap probe now follows the clip’s actual rounded-rectangle border shape again instead of an over-inset custom curve, so the right-hand corner tracks the real frame more closely
Corner-wrap text effects now render from the same rounded-border character path in both preview and export so typewriter, elastic, and explode-style motion stay visually consistent
Corner-wrap text now rides just outside the clip border again instead of sitting on top of the frame after the preview/export parity rebuild, with a little more breathing room from the edge
The Explode text preset now strongly implodes on entry and truly blasts characters outward on exit
Delete confirmation dialogs now always stack above floating editor popovers so destructive actions stay unmistakably on top
Clicking a timeline layer that is currently off-screen in the preview now pauses playback and jumps slightly inside that layer so animated edits are visible right away instead of landing on the first hidden frame
The center play button stays clickable even while overlay editors are open, so resuming playback feels more direct
Text overlays stop acting draggable during playback, and clicking the preview while text is selected now pauses cleanly instead of getting trapped by edit-mode selection
Text overlay popovers now open only when you click the text itself or its timeline block, instead of stealing clicks from empty preview space just because the playhead is inside that text segment
Detected beat markers now stay clipped inside the music timeline instead of hanging past the right edge and triggering a horizontal scrollbar
Pressing play from a deleted tail section or raw video end now jumps back to the first playable kept frame instead of trying to resume inside removed footage
Text overlay dropdowns now stay flush to their left or right columns instead of drifting inward when shorter option labels are selected
Freeform text overlays now use a touch more letter spacing in preview and export so bold headlines feel less cramped
The Freeform 'Drag on preview' helper now matches the neighboring text dropdown height so that control row feels cleaner
Freeform text overlays now animate correctly again with Elastic and Explode-style character motion in both preview and export instead of falling back to static text
Exports now keep freeform text anchored to the same composition space as the preview, and corner-wrap text follows clip offsets and tilt more closely instead of snapping to a flat frame
Glass borders now export with a thickness that better matches the editor preview instead of shrinking noticeably in the final render
Exports now respect the clip’s real contained frame size before applying tilt, offsets, borders, and text sizing, so moved or tilted scenes line up more closely with the preview
Clip tilt perspective now scales with the rendered frame size so the same clip-position settings read more consistently in the editor preview, fullscreen preview, and export
Tilted exports now keep corner-wrap text spacing steadier and push glass borders outward so both read closer to the editor preview
Tilted corner-wrap text now uses a denser export projection mesh so border text hugs the preview perspective more closely near the outer edges
Tilted corner-wrap exports now warp each wrapped text overlay through its own clip-aligned projection plane so perspective stays closer to the preview without the earlier batch offset drift
Tilted corner-wrap exports now use a much denser per-overlay projection grid so wrapped text stays tighter to the clip edge near steep corners
Tilted clips with corner-wrap text now export as one combined clip scene before projection, so the video, glass border, and wrapped text share the same 3D warp model
Tilted clip exports now keep the clean glass border and clip edges while corner-wrap text warps on a full clip-based text plane, which keeps the perspective closer to the preview without the earlier border artifacts
Tilted corner-wrap exports now use the full glass-border footprint as the transformed text plane so wrapped text sits a bit closer to the same perspective span as the preview
Wrapped border text in exports now uses the same larger glass-border frame box as the preview, helping tilted corner text stay tighter to the visible edge
Videos now fade in and out more gracefully, with background scenes bringing the backdrop in before the clip and preview/export audio fading with the opening and closing beats
Scene fades can now be turned on or off from the editor settings when users want clean hard cuts instead
Older saved text overlays now pick up sensible defaults for the new corner-wrap settings instead of breaking on refresh or import
v2.17.0
Full Video Export with All Effects
Added9 items
Export settings dialog with resolution, encoding quality, compression, and audio track options
Optional FFmpeg Web compression pass for smaller MP4 exports
Export pipeline now renders ALL editor effects into the final MP4
Drag text overlays to move with snap-to-center guides (horizontal + vertical green dashed lines)
Resize text overlays from all 4 corners with proportional font scaling (text grows/shrinks with box)
Text auto-wraps and auto-shrinks font to fit within the box, matching legacy layout system
Text timeline track with blocks spanning hold duration only (ease in/out don't affect block length)
Dual-thumb In/Out slider for controlling entry and exit animation durations simultaneously
Dynamic Google Fonts loading — all 38 fonts preloaded when editor popover opens
Text stroke (border) and drop shadow with adjustable opacity
Draggable editor popover with grip handle
Text, zoom, and blur modes are all mutually exclusive
Per-character elastic animation with staggered sine wave bounce matching legacy exactly
Changed4 items
Text overlay outline, resize handles, and popover hidden during playback for clean animation preview
Font picker previews each font in its actual typeface at default weight
Text stroke uses paint-order: stroke fill so borders render outside the text instead of eating into it
Font grid layout gives more space to font name column to prevent overlap with animation dropdown
Fixed7 items
Google Fonts loading split into default weight (picker preview) and bold weight (overlay rendering) to fix single-weight display fonts like Bungee, Righteous, Anton not rendering correctly
Font loading batched in groups of 8 with deduplication to avoid URL length limits and duplicate requests
Color picker debounced to prevent lag when dragging — no unnecessary useEffect for state sync
Text overlay animations now match legacy exactly — easeIn before startTime, easeOut after hold end
Fullscreen mode now hides timelines and controls so video fills the screen without UI overlay
VideoPlayer refactored from 885 to 392 lines — extracted BlurOverlay and TextOverlayRenderer into separate components following Vercel React best practices
Elastic animation uses per-character staggered sine wave bounce with global sequence index across lines
v2.6.0
Blur Regions
Added8 items
Blur regions for privacy — draw a rectangle on the video to blur sensitive areas
Three blur types: pixelation (most secure), gaussian, and frosted glass
Adjustable intensity slider (0-100%) per blur region
Blur timeline track with draggable blocks and resize handles
Floating controls on selected blur: edit position, blur type picker, intensity slider, delete
Live blur preview on video using CSS backdrop-filter
Canvas-based blur rendering for accurate export (applyBlurEffect with temp canvas pipeline)
Blur and zoom modes are mutually exclusive to prevent accidental interactions
v2.5.0
Zoom Keyframes
Added8 items
Zoom keyframes — click Zoom button then click on video to set zoom target point
Smooth easeOutQuad zoom transitions with configurable ease-in, hold duration, and ease-out
Zoom timeline track below cut timeline with draggable keyframe blocks
Scale picker (1.5x, 2x, 2.5x) and pan repositioning via floating controls on selected keyframe
Border color picker only shown when border width > 0
Background thumbnails now use 3-column grid with light grey borders
Removed disclaimer text under hero CTA buttons on landing page
Backup folder label renamed to 'Save To' for cleaner sidebar layout
Fixed34 items
Camera drop shadow now renders correctly (was using transparent fill)
Camera roundness at max now produces a fully circular bubble
Sonner toast notifications now show colored backgrounds for error/success
Permission denied errors for camera, mic, and screen now show toast notifications
File System Access API types fixed for TypeScript strict mode builds
Screen text stays sharp in side-by-side layouts (smart smoothing for downscaled content)
Canvas matches source resolution 1:1 during preview for pixel-perfect sharpness
Canvas resizes to recording resolution before MediaBunny encoder initializes
AudioContext uses playback latency hint and auto-resumes on tab switch to prevent audio drops
Shared screen panels no longer show unintended black bars when padding or alternate canvas ratios are active
Stacked camera layout (top/bottom) now matches the screen panel width instead of stretching full-width
Stacked top/bottom camera layouts are centered again with the same tight 4px gap used in the legacy recorder
Aspect ratio picker (16:9, 9:16, 1:1) added above the recording preview
Preview container dynamically adjusts shape to match selected aspect ratio
When screen sharing stops, a 'Select Screen' button appears over the preview instead of stretching the camera
Preview container border thinned from 4px to 2px
Portrait overlay and stacked layouts now prioritize the shared screen like the legacy recorder instead of cropping it to the canvas
Available camera layouts now switch by aspect ratio so portrait only shows portrait-friendly options while landscape and square keep side layouts
Camera moves and layout changes now animate with an elastic transition instead of snapping in place
Footer shown on recording studio mode selection screen
Portrait recordings on the /edit preview page now stay viewport-bounded so the video player controls remain visible without awkward scrolling
Recording Studio now tears down old screen-share sessions when you switch modes, re-pick a screen, or leave the studio so browser share banners do not stack up
Recording Studio live previews no longer turn black after selecting sources because active camera and screen streams are no longer cleaned up during normal rerenders
Wide shared screens rendered in the 9:16 stacked layout now sit centered within the portrait canvas instead of sticking to the top edge
Recording Studio now shows loading feedback while the browser opens the screen picker and while camera or microphone devices are starting up
Camera resize handles now sit closer to the overlay corner and use a clearer drag icon in the live preview
The stopped-sharing prompt is now centered and only appears in modes that actually need a shared screen
Prisma client uses dynamic require() so the app builds without a database
Camera overlay can now be resized independently in width and height (drag to make thinner or wider, matching legacy)
Resize handle icon replaced with expand/contract arrows
Camera resize drag direction fixed to match legacy (drag away from camera to grow)
Screen source renders at native aspect ratio inside any canvas format — no stretching
Format/layout toolbar pinned at top of preview area so it stays fixed when aspect ratio changes
Dark mode init script updated for Next.js 16 Turbopack compatibility
v2.1.0
Landing Page & Changelog Overhaul
Added6 items
Ported landing page copy from legacy BSR with full i18n support (EN/ES)
Hero section with badges, bold headline, and feature cards
6 feature sections: AI Subtitles, AI Voiceover, Editing, Recording Modes, Customize & Export, Privacy
Brutalist CTA buttons with offset shadow animation
Changelog data file with typed structure
Changelog nav link in landing page header
Changed2 items
Landing page fully uses theme tokens — no hardcoded colors
Changelog page now reads from lib/changelog.ts data file