John’s Blog

My personal journal and blog. Subscribe via RSS


Friday Links: January 19, 2024

January 19, 2024

Happy Friday. A few links and thoughts from the week:

  • The Obsessor – Matthew Panzarino’s new site launched late last year after he left TechCrunch. Added a $6/mo paid tier this month. Powered by Ghost, which seems to be a popular non-Substack solution these days.

  • reMarkable – reMarkable e-ink tablet for writing. I really like the idea of this. Pricing is reasonable, but with a pen and case adds up quick. I’ve been using an iPad for this purpose for now, but this is a really interesting idea too. (via The Obsessor)

  • Justin Jackson’s newsletter focus this year is on marketing and growth tips for SaaS founders. Subscribed.

  • Prompt 3 – Third version of the great terminal/SSH app for iOS and now the Mac. Been using the previous versions on my iPad for years. (Also, Panic’s app pages are just the best.)

  • Bluesky 2023 Moderation Report – Interesting to me to see a social platform reporting this type of data. Maybe it’s been done by others, but this is the simplest and clearest I’ve seen. There’s a lot of tooling behind the scenes to make this work.

  • Iowa sues TikTok over mature and inappropriate content accessible to minors. Don’t let your kids use TikTok people. Or any social media if you can.

  • Amazon to invest in Diamond Sports and bail out the bankrupt and poorly run regional sports networks. Three cheers for Amazon here. Please let us stream local sports easily.

  • Last but not least: pre-orders opened up this morning for Apple’s first Vision Pro release. Very curious how this release is going to go.

Apple and App Payments on the Web

January 18, 2024

Apple updated its developer guidelines this week to “allow” for external linking to third-party payment sources for app developers. From the Apple Developer site:

In addition to using Apple’s convenient, safe, and secure in-app purchase system, apps on the App Store in the United States that offer in-app purchases can also use the StoreKit External Purchase Link Entitlement (US) to include a link to the developer’s website that informs users of other ways to purchase digital goods or services.

The change comes with many specific requirements, including:

The link you provide in your app must:

  • Go directly to your website without any redirect or intermediate links or landing page;
  • Open a new window in the default browser on the device, and may not open a web view;
  • Not pass additional parameters in the URL in order to protect the user (for example, their privacy);

[…]

  • May not be displayed on any page that is part of an in-app flow to merchandise or initiate a purchase using in-app purchase.

I understand not wanting any tracking or privacy tracking parameters in these links, but it’s not a great user experience to be dumped out on a generic web page, requiring you to either sign-in or find what you were trying to purchase manually.

Apple is using a 7-day attribution window for all purchases made on the web through these links, and a commission of 27% (or 12% if you’re in the Small Business Program):

Apple is charging a commission on digital purchases initiated within seven days from link out, as described below. This will not capture all transactions that Apple has facilitated through the App Store, but is a reasonable means to account for the substantial value Apple provides developers, including in facilitating linked transactions.

[…]

If you adopt this entitlement, you will be required to provide transaction reports within 15 calendar days following the end of each calendar month. Even if there were no transactions, you’re required to provide a report stating that is the case.

There’s just a ton of hoops to jump through and extra work to make this happen, and developers still will owe the 27% commission for the sale externally. What’s the point? I don’t see how any developer actually goes through the effort of doing this, and that’s the point.


This is quite the change and has caused a justified uproar in the Apple development community:

Tim Sweeney, CEO of Epic Games, on Twitter/X:

Apple filed a bad-faith “compliance” plan for the District Court’s injunction. It totally undermines the order allowing “buttons, external links, or other calls to action that direct customers to purchasing mechanisms, in addition to IAP”.

[…]

Epic will contest Apple’s bad-faith compliance plan in District Court.

Brent Simmons:

Apple doesn’t care about you personally in the least tiny bit, and if you were in their way somehow, they would do whatever their might — effectively infinite compared to your own — enables them to deal with you.

Luckily, Apple has just provided us all with a reminder. Just like the sixth finger in an AI-rendered hand, Apple’s policies for Distributing apps in the U.S. that provide an external purchase link are startlingly graceless and a jarring, but not surprising, reminder that Apple is not a real person and not worthy of your love.

Graceless and jarring indeed.

John Gruber, on Daring Fireball:

Apple should have been looking for ways to lessen regulatory and legislative pressure over the past few years, and in today’s climate that’s more true than ever. But instead, their stance has seemingly been “Bring it on.” Confrontational, not conciliatory, conceding not an inch. Rather than take a sure win with most_ of what they could want, Apple is seemingly hell-bent on trying to keep everything.

Nick Heer, on Pixel Envy:

Developers sure will have a lot of paperwork to complete in the near future if they want to take advantage of these additional capabilities. Apple is creating this bureaucracy because it says this is how it gets paid to develop iOS; Judge Yvonne Gonzalez Rogers found, on page 114 of her decision (PDF) Apple’s arguments were “pretextual, but not to the exclusion of some measure of compensation”. I find that line questionable mainly because Apple has developed MacOS continuously for over twenty years without taking a commission on digital purchases. But who am I to question the U.S. legal system?

Ben Thompson, in a Stratechery Daily Update:

I don’t, to be clear, like this state of affairs. While an iPhone may not be a technical standard, I do think that it is an essential platform for businesses of all kinds, and that Apple reaps a multitude of benefits from having a thriving app ecosystem. At the end of the day, though, Apple’s intellectual property is their property, and they get to charge whatever fee they like. That they will jump through whatever hoops are necessary to collect said fee should not be a surprise to anyone at this point.

Manton Reece:

I like Tim Cook, but there are moral issues he seems completely blind to, like this 27% tax nonsense. Forget iOS. By Apple’s logic, they could also charge 27% (or anything!) for any business that has a Mac app and links to their web site. Never in computing have we seen a company so overreach.

David Heinemeier Hansson, never one to mince words:

Apple would be wise to study the long arc of Microsoft’s history. Learn that you can win the battle, say, against Epic, and end up losing the war for the hearts and minds of developers. And that while the price for that loss lags beyond the current platform, it’ll eventually come due, and they’ll rue the day they chose this wretched path.


I don’t have any issue with Apple expecting some sort of payment or commission on purchases in the App Store, and a reasonable attribution of other purchases. It’s their store, their platform, and their prerogative to do so. The 27% isn’t a payment processing fee, it’s an “IP license”, which Apple is going to collect from developers no matter what. I think this license is extremely high and aggressive, but they can charge what they decide.

There’s a reason I’ve spent most of my career working on the open web. Sure, the web has its deep flaws, but I can’t imagine running a sustainable long-term business subject to the whims and demands of one corporation. In the early days of the app stores, this type of behavior would have been more reasonable (I guess), but mobile devices are (as Ben notes above) an “essential platform for businesses of all kinds” and it’s a shame that there are so many rules and regulations governing how they work.

The past decade or so of the Tim Cook era at Apple has been mostly positive: incredible shareholder value generated, industry-leading environmental policies, and of course some amazing products. But I think the long-term stain on Apple and this era will be its relationship with China and how it treats the App Store especially its entitlement to receive a “license fee” for all commerce on its platforms.

A Plea for Lean Software

January 16, 2024

Niklaus Wirth’s writing in 1995 is just as relevant today as it was then. Some gold in here:

  • The belief that complex systems require armies of designers and programmers is wrong. A system that is not understood in its entirety, or at least to significant degree of detail by a single individual, should probably not be built.

  • Communication problems grow as the size of the design team grows. Whether they are obvious or not, when communication problems predominate, the team and the project are both in deep trouble.

  • Reducing complexity and size must be the goal in every step—in system specification, design, and in detailed programming. A programmer’s competence should be judged by the ability to find simple solutions, certainly not by productivity measured in “number of lines ejected per day.” Prolific programmers contribute to certain disaster.

Some of the best programmers I’ve ever worked with wrote the least amount of code.

  • To gain experience, there is no substitute for one’s own programming effort. Organizing a team into man- agers, designers, programmers, analysts, and users is detrimental. All should participate (with differing degrees of emphasis) in all aspects of development.

  • Programs should be written and polished until they acquire publication quality. It is infinitely more demanding to design a publishable program than one that “runs.” Programs should be written for human. readers as well as for computers. If this notion contradicts certain vested interests in the commercial world, it should at least find no resistance in academia.

I was meeting with an advisor this week and one of his pieces of advice was very similar to this last point: We often get only one shot at a first impression in software, especially for B2B hosted software. Make sure it’s ready and polished up. If we need more time, then take it to build, but don’t rush something out. An “MVP” isn’t a good thing in the B2B space.

(via Daring Fireball)

January 15, 2024 at 8:25 AM

Fun weekend of NFL playoffs this weekend. With the Ravens on a first round bye week it was a nice low-stress way to enjoy the first round for me. This weekend will be a different story..


Saturday night’s Dolphins/Chiefs game was streaming-only, a first for an NFL playoff game. I’m curious how that experiment went. Younger and more tech-savvy fans surely had no problem, but I bet a ton of people that wanted to watch couldn’t find the game. Early reports give the broadcast a new streaming record, but seems to be far below the numbers for a typical broadcast in years past. The NFL seems to be really pushing towards streaming, which is very interesting to me over the long term. I wish baseball and basketball would make similar moves and further separate from the regional sports networks.


Another year, another Cowboys playoff meltdown. It’s comical at this point. Hard to see this organization not making serious coaching changes.


Nice to see the Lions get their first playoff win since 1991! Happy for Detroit this morning.


Two more games today for a MLK holiday doubleheader. Let’s go Buffalo!

January 15, 2024 at 8:02 AM

Trying out cross-posting to Micro.blog. I’ve had an account there since the beginning but never have hooked it up to anything. Let’s see how it goes.

I really prefer owning my own corner of the web, but Micro.blog does the best of just about every host I’ve found at letting me tweak and own my content. Easy to come and go as I please. Just the way the open web should be!

JT on Micro.blog →

Artifact is Shutting Down

January 14, 2024

Kevin Systrom:

We’ve made the decision to wind down operations of the Artifact app. We launched a year ago and since then we’ve been working tirelessly to build a great product. We have built something that a core group of users love, but we have concluded that the market opportunity isn’t big enough to warrant continued investment in this way.

Sad to hear this, but not a surprise. I liked Artifact but didn’t end up making it a part of my daily habit. We did some custom work for Air Mail to be included in the app as well but it never drove much traffic at all. Something “a core group of users” love sounds like a small batch of regular users to me.

News and information remain critical areas for startup investment. We are at an existential moment where many publications are shutting down or struggling, local news has all but vanished, and larger publishers have fraught relationships with leading technology companies. My hope is that technology can find ways to preserve, support and grow these institutions and that these institutions find ways of leveraging the scale that things like AI can provide.

I still agree with this. Something I’m continuing to work on as well.

Week Notes: January 12, 2024

January 12, 2024

It’s been a very eventful January so far. A few notes from this week:

  • My son wants to be a YouTube gamer. Great! Luckily I have most of the gear needed for him already, but we needed to get a capture device to get the Xbox audio and video recorded. Trying out the Elgato HD60 X. So far it’s working perfectly. Fun project to try and figure out.
  • Picked up a copy of High Performance PostgreSQL for Rails. Scanning through it’s a lot of review for me, but some interesting pieces. Glad this exists.
  • Playing with various simple content managers this week. Trying to get some inspiration and ideas for a project. Stumbled upon Bear Blog. Nice little app!
  • Apple Vision Pro pre-orders begin next week, January 19th. It’s very often there’s an entirely new platform to build for. Cautiously optimistic about this one.
  • Set up a new project on Render. The platform has really improved a ton since the last time I used it a few years back. Having ‘projects’ to group services together is really nice. I don’t love that I have to pay $19 per user for a team access though. Especially if it’s just me, why am I paying $19/mo just for the privilege to use the platform? This project has a team of 3 so I’m paying $57 per month just to use the service. Not ideal for a small business. The rest of the services will have to be much cheaper to justify the extra expense over Heroku..
  • Also spent time experimenting with Kamal on Digital Ocean, Linode, and Hetzner. Overall a very nice solution and super easy to set up. Pairing this with a fully-managed database service seems like an attractive option.
  • What a mess of drama over the past week regarding the HEY calendar rejection then approval of the app. We’re working on another app of our own and have taken many steps to avoid this type of scrutiny.
  • And lastly, it was quite a week for football coaching changes! Bill Belichick, Pete Carroll, and Nick Saban all out. Saban on his own terms. I presume not the last we’ll see of the others…

Cold weekend ahead in Texas. Stay warm out there… 🥶

BBEdit 15

January 12, 2024

A new major upgrade release of my daily driver text editor for as long as I can remember. Instant purchase.

The major new features include:

A new Minimap palette shows a high-level overview of the active text document. This facilitates visualization of the document’s overall structure, as well as navigation within larger documents.

A nice addition, most editors have had this for years now. I don’t use them myself, but good to see. It’s a bit strange to me to have this in a separate floating window that requires more window management.

BBEdit 15’s joins BBEdit’s unique “worksheet” interface to ChatGPT, so that you can have conversations with ChatGPT right in BBEdit itself — no application switching or awkward copy/paste from a web browser.

Using ChatGPT in a worksheet is cool and works very nicely. Certainly more convenient than opening up a browser. They also can save as text documents so you can keep them around. They’re in markdown format, so easy to preview as well. Some sort of AI feature is table stakes these days for editors. I really wish they would go a step further and introduce some sort of “Copilot” like is available in VS Code for inline code suggestions and features. Someday..

Make a Damn Website

January 8, 2024

Louie Mantia, Jr.:

In the last 15 years, many people (myself included) were drawn to third-party solutions for presenting ourselves. For our résumés, LinkedIn. For portfolios, Behance and Dribbble. For blogging, Tumblr, Medium, and Substack. Instead of forums, Discord and Slack. But despite each of these advertising some amount of autonomy, in reality you have very little.

By centralizing not just your content, but yourself, on these sites, you rob yourself the opportunity to be more authentically you. In addition, a peer or competitor might appear next to you. It may not be great for you to have your competitor one click away from your own profile.

Therefore, I believe it’s everyone’s imperative to genuinely invest in making websites again. For ourselves, for our businesses, for our interests.

Yep.

January 6, 2024 at 11:22 AM

Updated the site feed to include a JSON feed, and now supporting just basic status feed posts. (like this one!) I like the idea of just being able to post simple thoughts, without concern for titles and specific formatting.

Week Notes: January 5, 2024

January 5, 2024

Kicking off this year’s blogging challenge with some notes for this week of January 2nd. I’m keeping some thoughts as I work throughout the week of what comes up, what I’ve learned, and what I’m reading.

  • First week back after an extended vacation. Working after a break is amazing. I love what I do, and it’s a good reminder to be excited about what I’m working on. Need to take more breaks!

  • I’m removing Twitter share links from our site. I wanted to replace it with Threads, but there seems to be no way to directly share a link to a new ‘Threads’ thread that I can find. It seems that they really do not want news and links posted easily yet. One of the nice things about old Twitter was how easy it was to share things to it.

  • Ended up replacing the Twitter share button with a generic ’native’ sharing control that uses the browser’s native control for doing so. This seems like a better idea than supporting one or two specific services. Just let people do what they want. Here’s a gist of a Stimulus controller to use native browser sharing menus.

  • We’re working on using AI-generated voices to read articles on Air Mail. It’s a fascinating process. Rolling out an internal test for this weekend’s issue and if all goes well will roll this out to subscribers in the coming weeks. I’m using a service called ElevenLabs to do the heavy lifting on the AI side. A very nice service and API to interact with.

  • For the new year, I’m starting out with some new structures for how the teams meet and collaborate. I really do resist regular standing meetings but we need to have a few to keep on pace. Without a regular cadence, it’s too much ad-hoc for me.

  • Upgraded two of my apps to use Turbo 8 betas. Just making sure everything is stable for now, but really looking forward to using the morphing pieces in some future functionality.

  • A nice post by Brad Gessler on the Fly.io blog about Turbo 8 tips and gotchas: 8 Turbo 8 “Gotchas”

  • My Hey email account was upgraded to use the new Hey Calendar feature. As I expected, it’s very thoughtfully put together and has some nice unique features I’ve not used before. It’s going to be a tall order to replace my use of Fantastical, but I’m giving it a fair shake.

  • We’re building an activity feed for one of our apps, and it was fun to research how ActivityPub works behind the scenes of Mastodon. This post from 2018 seems to be mostly still relevant and is really handy as a reference.

  • I’d love to make Air Mail fully ActivityPub compatible some day. Would be pretty cool to follow authors, topics, or a general feed directly from the publication on federated apps and sites.

✌️

Happy 2024

January 2, 2024

🎉 Happy New Year. Starting off the year with something old but newly energized: blogging. I’m going to treat this more as a personal traditional blog again. Just posting what I’m interested in, and sharing things I’m working on along the way. Casual and simple for now.

No promises for how long this will last, but going to try it out again. Let’s see how I do..