π₯οΈ π± βΆοΈ Wrap your iPhone screen recordings in a beautiful device frame, add cinematic zoom moments, and export ready-to-share videos.
See the codeWrap screen recordings in a beautiful device frame, adjust the pacing, add cinematic zoom and tap moments, and export ready-to-share videos.
A native macOS app for turning raw screen recordings into polished marketing clips, social-media posts, and in-app tutorial overlays.

Download Maya for macOS Β· Website
Requires macOS 26.3 (Tahoe) or later. Maya is signed with a Developer ID and notarized by Apple β it opens with a normal double-click, no security workaround needed.
Want the latest unreleased changes? Build from source. Maintainers: see RELEASING.md.
A single picker, five modes:
.mov with HEVC + alpha.#6466FA).Like shots.so for Mac:
+ affordance.| Curve | Feel |
|---|---|
| Spring | Soft overshoot, lively (default) |
| Bouncy | More overshoot, playful |
| Smooth | Classic ease in/out |
| Snappy | Fast attack, slow settle |
| Gentle | Soft and organic |
| Linear | Constant rate, mechanical |
Five pre-baked combinations of scale + focus + duration + curve, each with a looping visual preview: Quick Punch, Dramatic, Top Focus, Bottom Focus, and Soft Reveal.
.mp4, H.264. Drop straight into Reels / TikTok / Shorts..mov with HEVC + alpha channel. Composite the framed device over any UI inside another AVPlayer / AVKit consumer β perfect for in-app tutorials, Final Cut, Motion.| Key | Action |
|---|---|
| Space | Play / pause |
| M | Mute / unmute |
| β / β | Scrub Β±0.25 s |
| β§+β / β§+β | Scrub Β±1 s |
| I / O | Mark trim in / out at the playhead |
| β₯+β« | Reset trim |
| β« | Delete selected zoom, tap, or speed event |
| β+D | Duplicate selected zoom, tap, or speed event |
NSViewRepresentable for AVPlayerLayer)AVMutableComposition, per-range time scaling, custom AVVideoCompositing, AVAssetExportSession, manual AVAssetReader / AVAssetWriter pipeline for HEVC + alpha@Observable, actors, async/await) β export runs on a dedicated actor so the UI never blocks.mp4 / .mov formatgit clone https://github.com/ronaldo-avalos/Maya.git
cd Maya
open Maya.xcodeproj
# In Xcode: βR
This project is in active development and contributions are very welcome. Whether you're an iOS/macOS dev, a designer, or someone who just loves polished tools, there's a place for you.
Maya currently ships iPhone 17 Pro, 16 Pro, 15 Pro (each with multiple color variants), iPad Pro 11" (landscape), and MacBook Pro 14, plus a configurable Generic frame and a No-frame mode. PRs that add more devices are very welcome:
To add a frame:
Maya/Assets.xcassets/ β one imageset per color variant.Maya/Models/DeviceFrame.swift (DeviceModel) with the frame aspect, normalized screen rect, corner radius, and a DeviceColor per variant. Append it to DeviceModel.all.βZ / ββ§Z)..mayaproj document on disk so users can come back to a layout.AnimationSampler, DeviceFrame coordinate math, and BlurPosterCache.git checkout -b feature/iphone-16-proFor larger features, open an issue first so we can align on the approach before you spend hours on it.
Maya/
βββ MayaApp.swift App entry
βββ ContentView.swift Root β EditorView
βββ Models/ State + value types
β βββ Project Root @Observable state (video, canvas, devices, shadow, animationsβ¦)
β βββ DeviceFrame DeviceModel + DeviceColor catalog (iPhone, iPad, MacBook, Generic, None)
β βββ CanvasAspectRatio 1:1, 9:16, 4:5, 4:3, 16:9 β pixel sizes + chip metadata
β βββ PhoneShadow Drop-shadow parameters (color, blur, offsets, opacity)
β βββ BackgroundOption Solid / gradient / image / video-blur / transparent
β βββ ZoomSegment Per-segment zoom animation spec
β βββ TapEvent Positioned press-feedback animation spec
β βββ SpeedSegment Source-anchored speed range + timeline mapping
βββ Services/ AVFoundation + Core Image plumbing
β βββ DeviceFrameCompositor Custom AVVideoCompositing (per-frame compositing)
β βββ ExportService Actor that runs both .mp4 and .mov exports
β βββ AnimationSampler Envelope math for zoom segments
β βββ BlurPosterCache One-shot blurred-frame cache
β βββ VideoThumbnailGenerator Async timeline thumbnails
βββ Views/ SwiftUI views
β βββ EditorView Top-level layout (sidebar / canvas / timeline / editor panel)
β βββ CanvasView Configurable-ratio canvas with framed device + background
β βββ FramedDeviceView Composite of video + frame overlay + shadow
β βββ BackgroundPicker Mode tabs + per-mode controls
β βββ SettingsSidebar Left sidebar (recording, canvas, device, transform, background, shadow, export)
β βββ AnimationEditorSheet Right panel for editing a selected zoom event (live preview)
β βββ TapEditorPanel Right panel for editing a selected tap event
β βββ SpeedEditorPanel Right panel for speed presets, rate, and source range
β βββ Timeline/ Ruler, video strip, zoom/tap/speed tracks, draggable playhead
βββ Assets.xcassets/ iPhone/iPad/MacBook frame PNGs + app icon
MIT β see LICENSE.
You can fork, use Maya in personal or commercial projects, and ship derived work. Attribution is appreciated but not required.
#6466FA borrows from the Tailwind/Indigo family.If Maya helps you ship a video, tag @ronaldo-avalos β we'd love to see it.
13,415 followers Β· starred Aug 2026
574 followers Β· starred Aug 2026
1,056 followers Β· starred Sep 2026
82 followers Β· starred May 2026
π₯οΈ π± βΆοΈ Wrap your iPhone screen recordings in a beautiful device frame, add cinematic zoom moments, and export ready-to-share videos.
See the codeWrap screen recordings in a beautiful device frame, adjust the pacing, add cinematic zoom and tap moments, and export ready-to-share videos.
A native macOS app for turning raw screen recordings into polished marketing clips, social-media posts, and in-app tutorial overlays.

Download Maya for macOS Β· Website
Requires macOS 26.3 (Tahoe) or later. Maya is signed with a Developer ID and notarized by Apple β it opens with a normal double-click, no security workaround needed.
Want the latest unreleased changes? Build from source. Maintainers: see RELEASING.md.
A single picker, five modes:
.mov with HEVC + alpha.#6466FA).Like shots.so for Mac:
+ affordance.| Curve | Feel |
|---|---|
| Spring | Soft overshoot, lively (default) |
| Bouncy | More overshoot, playful |
| Smooth | Classic ease in/out |
| Snappy | Fast attack, slow settle |
| Gentle | Soft and organic |
| Linear | Constant rate, mechanical |
Five pre-baked combinations of scale + focus + duration + curve, each with a looping visual preview: Quick Punch, Dramatic, Top Focus, Bottom Focus, and Soft Reveal.
.mp4, H.264. Drop straight into Reels / TikTok / Shorts..mov with HEVC + alpha channel. Composite the framed device over any UI inside another AVPlayer / AVKit consumer β perfect for in-app tutorials, Final Cut, Motion.| Key | Action |
|---|---|
| Space | Play / pause |
| M | Mute / unmute |
| β / β | Scrub Β±0.25 s |
| β§+β / β§+β | Scrub Β±1 s |
| I / O | Mark trim in / out at the playhead |
| β₯+β« | Reset trim |
| β« | Delete selected zoom, tap, or speed event |
| β+D | Duplicate selected zoom, tap, or speed event |
NSViewRepresentable for AVPlayerLayer)AVMutableComposition, per-range time scaling, custom AVVideoCompositing, AVAssetExportSession, manual AVAssetReader / AVAssetWriter pipeline for HEVC + alpha@Observable, actors, async/await) β export runs on a dedicated actor so the UI never blocks.mp4 / .mov formatgit clone https://github.com/ronaldo-avalos/Maya.git
cd Maya
open Maya.xcodeproj
# In Xcode: βR
This project is in active development and contributions are very welcome. Whether you're an iOS/macOS dev, a designer, or someone who just loves polished tools, there's a place for you.
Maya currently ships iPhone 17 Pro, 16 Pro, 15 Pro (each with multiple color variants), iPad Pro 11" (landscape), and MacBook Pro 14, plus a configurable Generic frame and a No-frame mode. PRs that add more devices are very welcome:
To add a frame:
Maya/Assets.xcassets/ β one imageset per color variant.Maya/Models/DeviceFrame.swift (DeviceModel) with the frame aspect, normalized screen rect, corner radius, and a DeviceColor per variant. Append it to DeviceModel.all.βZ / ββ§Z)..mayaproj document on disk so users can come back to a layout.AnimationSampler, DeviceFrame coordinate math, and BlurPosterCache.git checkout -b feature/iphone-16-proFor larger features, open an issue first so we can align on the approach before you spend hours on it.
Maya/
βββ MayaApp.swift App entry
βββ ContentView.swift Root β EditorView
βββ Models/ State + value types
β βββ Project Root @Observable state (video, canvas, devices, shadow, animationsβ¦)
β βββ DeviceFrame DeviceModel + DeviceColor catalog (iPhone, iPad, MacBook, Generic, None)
β βββ CanvasAspectRatio 1:1, 9:16, 4:5, 4:3, 16:9 β pixel sizes + chip metadata
β βββ PhoneShadow Drop-shadow parameters (color, blur, offsets, opacity)
β βββ BackgroundOption Solid / gradient / image / video-blur / transparent
β βββ ZoomSegment Per-segment zoom animation spec
β βββ TapEvent Positioned press-feedback animation spec
β βββ SpeedSegment Source-anchored speed range + timeline mapping
βββ Services/ AVFoundation + Core Image plumbing
β βββ DeviceFrameCompositor Custom AVVideoCompositing (per-frame compositing)
β βββ ExportService Actor that runs both .mp4 and .mov exports
β βββ AnimationSampler Envelope math for zoom segments
β βββ BlurPosterCache One-shot blurred-frame cache
β βββ VideoThumbnailGenerator Async timeline thumbnails
βββ Views/ SwiftUI views
β βββ EditorView Top-level layout (sidebar / canvas / timeline / editor panel)
β βββ CanvasView Configurable-ratio canvas with framed device + background
β βββ FramedDeviceView Composite of video + frame overlay + shadow
β βββ BackgroundPicker Mode tabs + per-mode controls
β βββ SettingsSidebar Left sidebar (recording, canvas, device, transform, background, shadow, export)
β βββ AnimationEditorSheet Right panel for editing a selected zoom event (live preview)
β βββ TapEditorPanel Right panel for editing a selected tap event
β βββ SpeedEditorPanel Right panel for speed presets, rate, and source range
β βββ Timeline/ Ruler, video strip, zoom/tap/speed tracks, draggable playhead
βββ Assets.xcassets/ iPhone/iPad/MacBook frame PNGs + app icon
MIT β see LICENSE.
You can fork, use Maya in personal or commercial projects, and ship derived work. Attribution is appreciated but not required.
#6466FA borrows from the Tailwind/Indigo family.If Maya helps you ship a video, tag @ronaldo-avalos β we'd love to see it.
13,415 followers Β· starred Aug 2026
574 followers Β· starred Aug 2026
1,056 followers Β· starred Sep 2026
82 followers Β· starred May 2026