I built Postdeck, slides from posts on X for my videos
By Flavio Copes
Postdeck is my free, open source Mac app and Chrome extension that turn posts on X into slides. Click the slide icon under a post, reorder the slides, and play them in the app window while you record.

I built Postdeck, a free and open source Mac app with a Chrome extension. It turns posts on X into slides I talk over while I record a video. I click a small icon under a post, and the post shows up in the app as a slide, with the author, the avatar, the text and the images.
Here’s how it works in 30 seconds:
I record videos where I talk about posts on X. Recording X itself means the timeline, the replies, the ads and the sidebar all end up in the frame, and I scroll around looking for the next post while I’m talking. I wanted a clean slideshow of just the posts I picked, in the order I want to talk about them.
One click under a post
The extension adds a slide icon next to Like, under every post on X. Click it, and a message at the bottom of the page tells you where the post went, like Added to “This week’s apps”, slide 6.
The post goes to the slideshow selected in the app, so you can keep one slideshow per video. ⌘N creates a new one, and a double-click renames it.

Each post becomes a small slide in the middle column. Drag the slides to put them in the order you want, or drop one on another slideshow in the sidebar to move it there. Press Delete to remove a slide, or right-click it to open the post on X.
The sun and moon switch next to Play changes every slide between light and dark.
Playing the slideshow
When I’m ready to record, I press ⌘↩. The window shows only the slide, with no sidebar, no buttons and no traffic lights, so a recording of the Postdeck window is just the slide. I record it with Borumi.

→ and ← change the slide, and so do Space, Page Up and Page Down, so a presentation clicker works too. S takes me back to the slideshow, on the slide I stopped at.
A few details make the slides easier to talk over:
- Shorter posts get bigger text, so a one-liner fills the slide.
- Replies show who they reply to.
- Videos show up as their thumbnail with a play button.
- X cuts long posts short in the timeline. Open the post and click the icon again, and Postdeck replaces the text with the full one.
The app downloads the avatar and the images when a post arrives. The slides don’t depend on X while I record, and they work offline.
How it works
A content script on the X page can’t talk to an app on your Mac, so the page hands the post to the extension’s service worker. The worker sends it to a tiny HTTP server inside the app, on 127.0.0.1:7678. That server only listens on your Mac, and it refuses requests from web pages, so a website can’t add slides behind your back.
Reading a post from X is the fragile part, because X changes its markup. The extension handles the current markup and the older one, reads the date from the post ID (X’s IDs carry a timestamp), and skips anything inside a quoted post. Its test loads the extension into Chromium and clicks posts on real X pages saved in the repo, so when X changes something, I save fresh pages and see what broke.
Each slide is laid out on a 1920×1080 canvas, and every size is scaled to the window width. That keeps the text and the images sharp in a small window, in full screen, and in the thumbnails.
The app is SwiftUI with no dependencies. Your slideshows stay in one JSON file on your Mac, with the images in a folder next to it. There are no accounts and no analytics.
Get it
The code is on GitHub at flaviocopes/postdeck, MIT licensed.
Download Postdeck-1.0.0.zip from the latest release and unzip it. Drag Postdeck to your Applications folder. It runs on macOS 14 Sonoma or later, on Apple silicon and Intel Macs. It’s signed with my Apple Developer ID and notarized by Apple, so it opens like any other app you download.
The zip also has the Postdeck Extension folder. Move it somewhere it can stay, open chrome://extensions, turn on Developer mode, click Load unpacked and pick the folder. Reload X, and the slide icon shows up under every post.
After that, the app updates itself. It checks GitHub once a day, and Install and Relaunch puts the new version in place. The README covers every feature and shortcut.
Want me to talk about your product? You can sponsor this site.
Related posts about news: