John Voorhees

5220 posts on MacStories since November 2015

John is MacStories' Managing Editor, has been writing about Apple and apps since joining the team in 2015, and today, runs the site alongside Federico. John also co-hosts four MacStories podcasts: AppStories, which covers the world of apps, MacStories Unwind, which explores the fun differences between American and Italian culture and recommends media to listeners, Ruminate, a show about the weird web and unusual snacks, and NPC: Next Portable Console, a show about the games we take with us.

This Week's Sponsor:

SoundSource

New Year, New Audio Setup: SoundSource 6 from Rogue Amoeba


Cassette: A Video Time Machine

Devin Davies, the developer of Crouton whom Federico and I interviewed after he won an Apple Design Award in 2024, has released a new app called Cassette. It’s an app for browsing videos from the photo library on your iPhone or iPad that has a fun design twist.

Leaning heavily into the nostalgia of watching old videos of friends and family, Cassette sorts your videos using a VCR metaphor. Videos are organized by year and by collection, with video cassette art and a label identifying each. At the top of the screen is an old CRT TV with a built-in VCR. Tap a year or collection, and it loads into the TV with satisfying haptic feedback on the iPhone.

Videos running full-screen.

Videos running full-screen.

Tap the virtual TV, and the video goes full-screen with date and location data that’s reminiscent of a VCR’s UI. While watching videos, the app offers standard playback controls along with a shuffle button, buttons to share and favorite videos, and an eject button to return to your video collections.

Videos cycle from one to the next and then loop back to the beginning, where playback continues. You can also swipe through videos TikTok-style, skipping over any you don’t want to watch. Finally, there’s a ‘Take Me Somewhere’ button at the bottom that drops you at a random location in your video collection, eliminating the need to pick something yourself.

Most of the functionality found in Cassette is available in other video players, but that doesn’t make it any less fun or delightful. What sets the app apart is its focus on design and framing. From the drop, Cassette is designed to transport you to the past with its VCR-inspired UI and singular focus on videos, transforming into a sort of handheld time machine.

Cassette is available on the App Store as a free download. Certain features are only available via a $0.99/month or $5.99/year subscription or a $7.99 one-time payment.


Building Tools with GPT-5

Yesterday, Parker Ortolani wrote about several vibe coding projects he’s been working on and his experience with GPT-5:

The good news is that GPT-5 is simply amazing. Not only does it design beautiful user interfaces on its own without even needing guidance, it has also been infinitely more reliable. I couldn’t even count the number of times I have needed to work with the older models to troubleshoot errors that they created themselves. Thus far, GPT-5 has not caused a single build error in Xcode.

I’ve had a similar initial experience. Leading up to the release of GPT-5, I used Claude Opus 4 and 4.1 to create a Python script that queries the Amazon Product Advertising API to check whether there are any good deals on a long list of products. I got it working, but it typically returned a list of 200-300 deals sorted by discount percentage.

Though those results were fine, a percentage discount only roughly correlates to whether something is a good deal. What I wanted was to rank the deals by assigning different weights to several factors and coming up with a composite score for each. Having reached my token limits with Claude, I went to GPT-o3 for help, and it failed, scrambling my script. A couple of days later, GPT-5 launched, so I gave that a try, and it got the script right on the very first try. Now, my script spits out a spreadsheet sorted by rank, making spotting the best deals a little easier than before.

In the days since, I’ve used GPT-5 to set up a synced Python environment across two Macs and begun the process of creating a series of Zapier automations to simplify other administrative tasks. These tasks are all very specific to MacStories and the work I do, so I’ve stuck with scripting them instead of building standalone apps. However, it’s great to hear about Ortolani’s experiences with creating interfaces for native and web apps. It opens up the possibility of creating tools for the rest of the MacStories team that would be easier to install and maintain than walking people through what I’ve done in Terminal.

This statement from Ortolani also resonated with me:

As much as I can understand what code is when I’m looking at it, I just can’t write it. Vibe coding has opened up a whole new world for me. I’ve spent more than a decade designing static concepts, but now I can make those concepts actually work. It changes everything for someone like me.

I can’t decide whether this is like being able to read a foreign language without knowing how to speak it or the other way around, but I completely understand where Ortolani is coming from. It’s helped me a lot to have a basic understanding of how code works, how apps are built, and – as Ortolani mentions – how to write a good prompt for the LLM you’re using.

What’s remarkable to me is that those few ingredients combined with GPT-5 have gone such a long way to eliminate the upfront time I need to get projects like these off the ground. Instead of spending days on research without knowing whether I could accomplish what I set out to do, I’ve been able to just get started and, like Ortolani, iterate quickly, wasting little time if I reach a dead end and, best of all, shortening the time until I have a result that makes my life a little easier.

Federico and I have said many times that LLMs are another form of automation and automation is just another form of coding. GPT-5 and Claude Opus 4.1 are rapidly blurring the lines between both, making automation and coding more accessible than ever.

Permalink

Building a Better AI App

This week, Federico and John pick and choose their favorite AI app features to imagine a better AI app future, critiquing the leading LLM apps along the way. And, as a bonus, John explains why read-later apps should support Shortcuts and other automation schemes.

On AppStories+, the critique continues with a look at how Todoist could be improved.


We deliver AppStories+ to subscribers with bonus content, ad-free, and at a high bitrate early every week.

To learn more about an AppStories+ subscription, visit our Plans page, or read the AppStories+ FAQ.


AppStories+ Deeper into the world of apps

AppStories Episode 449 - Building a Better AI App

0:00
36:27

AppStories+ Deeper into the world of apps

This episode is sponsored by:

  • Factor – Healthy, fully-prepared food delivered to your door. Use code appstories50off

Read more


App Debuts

Castro Castro is now available on the iPad with full iCloud sync across devices. The update adds HTML rendering for better show notes, too. I rarely listen to podcasts on my iPad, but it’s nice to know it’s now an option, especially since this is a feature that many other podcast players have had...


A Trio of Todoist Tips

  1. Thinking Horizontally and Vertically My first tip isn’t exclusive to Todoist. Just about every task manager incorporates both projects and tagging, which lets you think of your tasks in two dimensions. For me, each project is the vertical axis. As an example, this issue of MacStories Weekly could be a project that includes everything
...

The Good Old Days of Tech

It’s easy to look back at earlier eras and declare them the good old days. I’ve heard a lot of that lately when it comes to the tech and gadget landscape, and I get it. When I think back to 2007 and the introduction of the iPhone, the first things I think of are the...


Time Off and MacStories Deals

Every summer, we take a little time off before the busy fall OS review season. It’s a time to recharge and get ready for what is always a busy year end at MacStories. This year is shaping up to be even more packed than most. On top of our reviews, we’ve been working on new...


Interesting Links

When OpenAI announced GPT-5 this week, the company updated more than just ChatGPT’s underlying LLM; it also updated the app. Emma Roth has an excellent story with the highlights on The Verge. (Link) For more technical details on GPT-5, you can’t go wrong with Simon Willison’s blog. Willison had early access to the model,...


Apple Expands Its U.S. Manufacturing Commitment

In February, Apple announced plans to invest $500 billion in the U.S. over the next four years. Today, that commitment was increased to $600 billion. In the company’s press release, Tim Cook said:

Today, we’re proud to increase our investments across the United States to $600 billion over four years and launch our new American Manufacturing Program. This includes new and expanded work with 10 companies across America. They produce components that are used in Apple products sold all over the world, and we’re grateful to the President for his support.

One of the first deals announced is an expansion of Apple’s relationship with Corning to make all cover glass for the iPhone and Apple Watch at a Corning plant in Kentucky. That deal is part of what Apple calls its American Manufacturing Program, in which Coherent, GlobalWafers America (GWA), Applied Materials, Texas Instruments (TI), Samsung, GlobalFoundries, Amkor, and Broadcom will also participate. Apple says the program builds on its deal to buy rare earth magnets from MP Materials, a July 2025 deal that was announced shortly after the unusual sale of $400 million of MP Materials’ preferred stock to the U.S. Department of Defense.

Apple continues to be under a lot of political pressure to make its devices in the U.S., despite its prior financial commitments to make components in America. Another $100 billion over four years is a lot, but I suspect this won’t be enough. Instead, I expect we’ll see more of this type of announcement, given how quickly the first half a trillion was followed by another $100 billion.