Skip to content
← All apps

An app by Flavio

Post Slide Deck

Collect posts on X, arrange them into slides and record a clean slideshow offline. Includes a Mac app, Chrome extension and full MIT source.

Buy Post Slide Deck · $20

One-time purchase. Tax included. Full source code.

macOS 14+ · Chrome extension

Post Slide Deck, a Mac app and a Chrome extension that turn posts on X into slides

$20 including tax, one-time purchase. Full MIT source included.

Post Slide Deck is a 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.

The Post Slide Deck window, with three slideshows in the sidebar, the slides of the selected one, and a large preview of the selected slide

These slides use my original posts on X, before I renamed the apps.

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 Post Slide Deck window is just the slide. I record it with Borumi. I wrote about what a recording tool needs before an agent can help with it.

A slide with a post about the app I'm building to understand the architecture of the apps my agents build

→ 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 Post Slide Deck 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.

Prepare slides for an offline recordingThe app downloads images when each post arrives, then lets you arrange slides and record the clean playback window without loading X.Add posts toselected slideshowDownload avatars andimagesReorder slidesStart clean playbackviewRecord the appwindowAdvance slideswithout loading X

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.

Fig 1 · 1/4From an X post to a slide
Pick a post

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.

Buy Post Slide Deck and get started

Post Slide Deck costs $20 including tax, paid once. You get the app and its full source code under the MIT license, so you can read it, change it and build your own version.

After buying, connect your GitHub account in Polar and accept the invitation to the private Post Slide Deck repository. Then open its Releases page to download it. Future updates are available from the same private GitHub Releases page.

Once you have repository access, download the zip from the latest release and unzip it. Drag Post Slide Deck 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 Post Slide Deck 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. That load-unpacked path is how I ship this one. Publishing to the Chrome Web Store is a separate workflow.

The README covers every feature and shortcut.

Post Slide Deck screenshot at full size