John Voorhees

1589 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


App Marketing: My Extended Q&A for Paul Hudson’s Everything but the Code

Earlier this year, Paul Hudson asked me to answer a few questions about app marketing for a book he was writing called Everything But the Code.

The book is finished now, and it’s full of great advice from Paul and a long list of indie developers whose apps are some of MacStories’ favorites. Paul covers the entire process of making apps, from validating an idea to selling your app and beyond. The only thing he doesn’t cover, as the book’s title makes clear, is building apps, which is the subject of other books and courses he’s created.

Paul was kind enough to ask me to share some insights on marketing apps to the press. You’ll find my contributions in the Prelaunch and Publicity and Aftermath and Evolution chapters, and now that the book is final, I thought I’d share extended versions of my responses with readers. Although the focus is on apps, I expect there are a few lessons here for anyone pitching their creative work to the world. So, here you go.

Paul Hudson: What common mistakes do developers make when pitching their app to the press?

Me: Most developers do a great job thinking through what they’re pitching but don’t spend enough time thinking about who they’re pitching to. I’d love to be able to tell developers do these five things, and you’ll have a pitch you can send to anyone, but it doesn’t work that way. Developers need to think about things like who at a publication typically covers certain types of apps.

For example, if you know a publication has a musician on staff who has covered music apps before, that person should be at the top of your list if you’ve built a guitar tab app. However, that doesn’t mean you shouldn’t contact anyone else at the publication. People get busy, so don’t limit yourself. However, focus your efforts on the people who are most likely to be receptive to your app.

It also pays to make things easy for the person you’re pitching to. Keep your pitch short and to the point, link to a press kit, beta, and other materials, and follow up closer to launch.

A few other pitch pointers:

  • Don’t wait to send your pitches until the last minute. Personally, I prefer getting pitches at least a couple of weeks in advance of a launch, so I can make the time for testing and writing about them.
  • Don’t send pitches during WWDC, on Apple event days, or major holidays. Your pitch is much more likely to get lost in the shuffle on those days.
  • You don’t need to ask if it’s okay to send a TestFlight link. If the person you’re pitching to isn’t interested, they won’t use it.
  • It’s okay to copy multiple people at a publication if you’re unsure who to contact.
  • Try to understand where a writer likes to be contacted. Email is probably the safest bet, but social media DMs might be better for some people.
  • It’s okay to send follow-up reminders about your app launch. I personally appreciate them.
  • Don’t expect app feedback from most press contacts. I let developers know when I find the kind of bug I’d mention in a review, but unfortunately, I usually don’t have time for much more than that.
  • Don’t take it personally if you don’t get a response to a pitch. Remember, the people you contact are getting a lot of pitches.
  • Don’t close down your TestFlight beta immediately after you launch your app. If a publication can’t get a story out to coincide with your launch, closing down your beta immediately so it can no longer be downloaded makes it less likely they’ll cover it post-launch.
  • Don’t forget to include the name of your app in your pitch – yes, that happens.

Read more


Why I Came Around on Notion

It’s fair to say that in 2025 I changed my mind about Notion, or at least, I’ve come to realize that its strengths make putting up with its quirks worth the effort. In fact, I think Notion is positioned to become the universal workspace it has always aspired to be. The company seems to feel...


What’s Next for Apps in 2026

This week, Federico and John look ahead to 2026 and what it will mean for apps, smarter Siri, and more.

On AppStories+, Federico and John update listeners on their latest app experiments and holiday hardware projects.


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 466 - What’s Next for Apps in 2026

0:00
28:22

AppStories+ Deeper into the world of apps

Read more


Rethinking the Studio Display

As I detailed yesterday, I recently abandoned my Apple Studio Display for a 4K OLED gaming display from ASUS. I like my new monitor a lot, but it left me disappointed in Apple because its Studio Display could be so much more than it is. The Studio Display has a lot going for it. First...


OpenAI Opens Up ChatGPT App Submissions to Developers

Announced earlier this year at OpenAI’s DevDay, developers may now submit ChatGPT apps for review and publication. OpenAI’s blog post explains that:

Apps extend ChatGPT conversations by bringing in new context and letting users take actions like order groceries, turn an outline into a slide deck, or search for an apartment.

Under the hood, OpenAI is using MCP, Model Context Protocol, which was pioneered by Anthropic late last year and donated to the Agentic AI Foundation last week.

Apps are currently available in the web version of ChatGPT from the sidebar or tools menu and, once connected, can be accessed by @mentioning them. Early participants include Adobe, which preannounced its apps last week, Apple Music, Spotify, Zillow, OpenTable, Figma, Canva, Expedia, Target, AllTrails, Instacart, and others.

I was hoping the Apple Music app would allow me to query my music library directly, but that’s not possible. Instead, it allows ChatGPT to do things like search Apple Music’s full catalog and generate playlists, which is useful but limited.

ChatGPT's Apple Music app lets you create playlists.

ChatGPT’s Apple Music app lets you create playlists.

Currently, there’s no way for developers to complete transactions inside ChatGPT. Instead, sales can be kicked to another app or the web, although OpenAI says it is exploring ways to offer transactions inside ChatGPT. Developers who want to submit an app must follow OpenAI’s app submission guidelines (sound familiar?) and can learn more from a variety of resources that OpenAI has made available.

A playlist generated by ChatGPT from a 40-year-old setlist.

A playlist generated by ChatGPT from a 40-year-old setlist.

I haven’t spent a lot of time with the apps that are available, but despite the lack of access to your library, the Apple Music integration can be useful when combined with ChatGPT’s world knowledge. I asked it to create a playlist of the songs that The Replacements played at a show I saw in 1985, and while I don’t recall the exact setlist, ChatGPT matched what’s on Setlist.fm, a user-maintained wiki of live shows. I could have made this playlist myself, but it was convenient to have ChatGPT do it instead, even if the Apple Music integration is limited to 25-song playlists, which meant that The Replacements’ setlist was split into two playlists.

We’re still in the early days of MCP, and participation by companies will depend on whether they can make incremental sales to users via ChatGPT. Still, there’s clearly potential for apps embedded in chatbots to take off.


Our Final 2025 MacStories Setups Update

Our desk setups. Federico (left) and John (right).

Our desk setups. Federico (left) and John (right).

John: As 2025 comes to an end, Federico and I thought we’d cap off the year with a final update on our setups. We just went through this in November, but both Federico and I decided to take advantage of Black Friday sales to improve our setups in very different ways. Let’s take a look.

My changes were primarily to my office setup. I’ve wanted a gaming PC for a long time, but I never had a good place to set one up. The solution was to go with a high-end mini PC, the GMKtec EVO-X2, which features a Strix Halo processor, 64GB of RAM, and a 2TB SSD. It came with Windows installed, but after a few days, I installed Bazzite, an open-source version of SteamOS, which makes it dead simple to access my Steam videogame library.

Two things kept me from getting a PC earlier. The first was space, which the EVO-X2 takes care of nicely because it’s roughly the size of the Mac mini before its recent redesign.

The second and bigger issue, though, was my Studio Display. It’s an excellent screen, but it’s showing its age with its 60Hz refresh rate and 600 nits of brightness. Plus, with one Thunderbolt port for connecting to your Mac and three USB-C ports, the Studio Display is limiting. Without HDMI or DisplayPort, connecting it to other video sources like a PC or game console is nearly impossible.

The GMKtec EVO-X2 mini PC, Switch 2, and 8BitDo Ultimate 2 controller

The GMKtec EVO-X2 mini PC, Switch 2, and 8BitDo Ultimate 2 controller

So I also bought a deeply discounted ASUS ROG Swift 32” 4K OLED Gaming Monitor, which is attached to my desk using a VIVO VESA desk mount. I’d wanted a bigger screen for work anyway, and with its 240Hz refresh rate and bright OLED panel, the ASUS has been excellent. However, the ASUS display really shines when connected to my GMKtec and Nintendo Switch 2. As I covered on NPC: Next Portable Console recently, the mini PC combined with a great monitor, which also allows me to stream games to my handhelds over my local network, was the missing link in my setup, delivering a flexibility I just didn’t have before.

Along with the gaming part of my desktop setup, I updated my desktop lighting with two Philips Hue Play Wall Washer lights and a Hue Play HDMI Sync Box 8K, which casts light against the wall behind my desk that’s synced with what’s onscreen. In fact, the Sync Box 8K works with all the Hue lights in my office, allowing me to create a more immersive environment when I’m gaming.

I’ve been using a handful of other accessories lately, too, including:

That’s it from me for 2025, folks. Enjoy the holidays! Things will be a little quieter at MacStories over the next couple of weeks as we unwind and spend the time with family and friends over the holidays, but we’ll be back with lots more before long.

Federico: For this final update to my setup before the end of the year, I focused on two key areas: audio and my living room TV setup.

The biggest – literally – upgrade for me this month has been switching from my previous LG 65” TV to a flagship LG G5 77” model. I’d been keeping an eye on this TV for a while: it’s LG’s first model to use Tandem OLED technology, and it boasts higher brightness in both SDR and HDR with reduced reflections thanks to the new panel. I took advantage of an incredible Black Friday deal in Italy to buy it at 50% off, and we love it. The TV rests almost flush against the wall thanks to its compact design, but since it’s not completely flush, it allowed us to re-install our Philips Hue Gradient Light Strip behind it. Since I was in a renovation mood and I also wanted to future-proof my setup for the Steam Machine in 2026, I also upgraded to a Hue Bridge Pro and replaced my previous Hue Sync Box with the latest 8K edition that is certified for HDMI 2.1 connections. Speaking of gaming: as I discussed this week on NPC, I got a Beelink SER9 Pro mini PC and installed Bazzite on it to get a taste for SteamOS in the living room; this one will eventually be replaced by a more powerful Steam Machine.

The other area of improvement was audio. I recently realized that I wanted to fully take advantage of Apple Music and Spotify’s support for lossless playback with wireless headphones, which is something that, alas, Apple’s AirPods Max do not support. So after much research, I decided to treat myself to a pair of Bowers & Wilkins Px8 S2, which are widely considered some of the best Bluetooth headphones that you can buy right now. But you may be wondering: how do you even connect these headphones to Apple devices that do not support Qualcomm’s aptX Lossless or Adaptive codecs? That’s where the BT-W6 Bluetooth dongle comes in. In researching this field, I came across this relatively new category of small Bluetooth adapters that plug into an iPhone’s USB-C port (they work on a Mac or iPad, too) and essentially override the device’s built-in Bluetooth chip. Once headphones are paired with the dongle rather than the phone, wireless streaming from Apple Music or Spotify will use aptX Lossless instead of Apple’s legacy SBC protocol. The difference in audio quality is outstanding, and it makes me appreciate the Px8 S2 for all they have to offer.

While I was at it, I also took advantage of another deal for a Sonos Move 2 portable speaker; we’ll have to decide whether this one will be permanently docked on my desk or next to a record player that Silvia is getting me for Christmas. (We don’t like surprises for each other, especially when it comes to furniture-adjacent shopping.)

So that’s my update before we go on break for a couple of weeks. I can already feel that, when I’m back, I’ll have some changes to cover on the software front. But we’ll talk about those in 2026.

Permalink

Two Months with the Narwal Freo X10 Pro

In the depths of the pandemic, I bought an iRobot Roomba j7 vacuum. At the time, it was one of the nicer models iRobot offered, but it was expensive. It did a passable job in areas with few obstacles, but it filled up fast, had a hard time positioning itself on its base and frequently got clogged with debris, requiring me to partially disassemble and clean it regularly. The experience was bad enough that I’d written off robot vacuums as nice-to-have appliances that weren’t a great value.

So, when Narwal contacted me to see if I wanted to test its new Freo X10 Pro, I was hesitant at first. However, I’d seen a couple of glowing early reviews online, so I thought I’d see if the passage of time had been good to robo-vacuums, and boy has it. The Narwal Freo X10 Pro is not only an excellent vacuum cleaner, but a mopping champ, too.

Read more


The 2025 MacStories Selects Awards

This week, Federico and John reveal the winners of the 2025 MacStories Selects Awards, which celebrate the exceptional design, innovation, and creativity of apps across the iPhone, iPad, Mac, and Apple Watch.

On AppStories+, John has some Apple Music discovery tips for Federico, and they reveal the iPhone features they don’t use.


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 465 - The 2025 MacStories Selects Awards

0:00
57:26

AppStories+ Deeper into the world of apps

This episode is sponsored by:

  • RevenueCat – It’s the easiest way to add in-app subscriptions and native paywalls into your mobile apps, and getting started is free.

Read more


Easy Ways To Support Your Favorite Creators

First, I want to go on record that I’m not a fan of the word “creator.” It’s not as bad as “influencer” as far as words go, but still, I don’t like it. However, since what I’m going to suggest applies to a wide range of people making videos and podcasts, writing, developing apps and...