2026-08-06 21:05:15
TL;DR
I'm shutting down EchoFeed within the next 12 months when the final subscriptions expire. It will continue to run as it is until then so if you've already paid you have access until the end of your subscription.
Last night, after a few months on and off of problems with EchoFeed from my side and general feed problems I made the decision to shut it down. As of right now, this is what I've done:
When EchoFeed is running smoothly, it's great. It posts quickly and I think overall most people are happy with it but when I get an email saying there's a problem my heart sinks: it could be a quick reboot fixes it or it could be an endless cycle of fiddling with the database, debugging someone else's feed, or maybe EchoFeed has been blocked for making too many requests[1]. Sometimes I'd be doing the same fixes every couple of hours, usually overnight because the stress meant I couldn't sleep, only for it to magically be fine again seemingly at random.
The sheer volume of feeds EchoFeed was handling caused some of the problems - hundreds of feeds all need to be checked regularly so updates can be found quickly which adds up to hundreds of jobs a minute. At some point, probably now if I'm honest, EchoFeed would need to be upgraded to multiple servers just for running the fetching which for a service charging $25 a year just isn't sustainable. The price is part of the product in that I want normal people to be able to access it and not start charging enterprise prices for cross posting.
Spam was also a big problem and one thats hard to get a handle on. Requiring email verification stopped a lot of traditional spam but there's an endless supply of crypto bros setting up accounts to cross post their shitty pretend money news websites to Bluesky, sometimes with hundreds of posts a day. I don't have the resources to review every single account and feed. The other type is the paid accounts which have 100s of echoes that just post news sites to mirror accounts on Mastodon and Bluesky.
Then there's the money. Once you take into account taxes, server and email costs, I make about the same a month as I would charge for a couple of hours work and most months I am spending at least 4-5 hours looking at issues on EchoFeed.
Then there is the issue of feeds in general. No one, including me, gets RSS or Atom feeds entirely right[2]. EchoFeed's feed fetcher, which should be simple, is filled with multiple lines of code to catch edges cases in different formats, platforms, even some hard-coded personal sites where the platform provider has made a silly mistake. The same is true for the image extraction code - between jpeg, gif, avif, heic, srcset, and various CDN techniques, the code is horrible. This part I don't mind because this is the (usually) fun code bit but it's just another reason EchoFeed has become difficult to maintain.
All of these things, on top of having two young children, have led to to shut down EchoFeed as outlined at the top of the post. It wasn't an easy decision and not one I took lightly. I appreciate the support of everyone who used EchoFeed, paid for it, linked to it, and suggested it as an option for people. I'm particularly grateful for Adam who has given me advice from the start of EchoFeed as well as talking through the shut down.
I have some emails to send out to customers and I need to update the home page to reflect the status but those should get those done in the next couple of days.
Technical notes. Firstly, I will attempt to get the code in such a state that I can release it for people to run themselves but no promises.
Secondly, this is the script I used to cancel everyone's subscriptions in Stripe. To get the subscription IDs go to the subscriptions tab in Stripe and export the list.
// `npm install stripe`
import Stripe from 'stripe';
const SUBSCRIPTION_IDS = [
'sub_XXXXXX',
];
// your API key here
const SECRET = 'sk_live_XXXX'
const stripe = new Stripe(SECRET);
const results = { cancelled: [], failed: [] };
for (const [index, id] of SUBSCRIPTION_IDS.entries()) {
try {
const subscription = await stripe.subscriptions.update(id, {
cancel_at_period_end: true,
});
const cancelAt = subscription.cancel_at
? new Date(subscription.cancel_at * 1000).toISOString()
: 'unknown date';
console.log(`${id} — cancels at ${cancelAt}`);
results.cancelled.push(id);
} catch (error) {
console.error(`${id} — failed: ${error.message}`);
results.failed.push({ id, message: error.message });
}
}
console.log(`Done. ${results.cancelled.length} scheduled, ${results.failed.length} failed.`);
I never really thought of a good way to handle this - you want quick updates when a post appears in a feed but it could be days or weeks in between updates and EchoFeed has checked the feed hundreds of times during that span. WebSub I think is the solution but it's required at the publishers end and not something I could control. ⤾
2026-07-28 16:22:00
I asked for recommendations for courses and books related to learning drawing techniques and I got a bunch of great suggestions. I've not tried any of these yet (except a single video from Alphonso Dunn but I want to collect these in one place I can refer back to.
I'm not going to get everything on this list because that would be chaos but there's lots of great stuff in here that I can choose from.
The Art Coach was the course advertised to me on Instagram which triggered me to ask this question in the first place.
2026-07-26 17:13:44
I posted about my June-Boree entries a couple of weeks ago and the winners were announced on episode 167. Turns out I came second, beaten narrowly by Arcadia king Eric, which means I get one of Jason's famous trophies.
After some shenanigans with trying to send it to a pickup location which UPS couldn't do three days in a row, I finally got my hands on it and it's glorious.

2026-07-17 02:41:50
I backed this pen Kickstarter despite breaking my rule of no hardware Kickstarters - the company, Antou, seem to know what they're doing but we'll see. They have a lot of nice stuff on their site including this pen rest. The pen should be arriving in August some time.
Pica is a new font management app that looks great and it's free. I need to get a handle on all the fonts I have.
I'm not a font designer but if I was I might need to make proofs and Hellbox is the one.
Two fascinating fonts I came across: Datatype is a "variable font that turns text into charts" and then this person built a chess rendering engine into a font which is wild.
Matt did a handwriting font, something I've done a couple of times to varying levels of success.
The last font and writing link is this post about backtrack-free cursive. I don't write cursive (or in lowercase for that matter) but this is really interesting.
What intrigued me about files.md is that it uses an API I wasn't aware of to access local folders and files. I'm not dropping Obsidian any time soon but this is an API I want to try out more.
Friend of the blog made equinox to test light and dark mode at the same time which is handy.
I'd come across but not heard of the XY problem before: "asking about your attempted solution rather than your actual problem". Nice to have a name for this scenario.
P4LETTE is another colour palette generator. Can't have too many.
Daily games is a thing now and I've been enjoying 4x3. I also found Gerrymandle which is interesting but doesn't spark joy for me.
Signalbox, a live train map, does spark joy though.
Finally this is a fun article about using public domain image archive for art ideas.
2026-07-02 20:00:46
June-Boree is a reimagining of Arcadia June. June-Boree is "a challenge board spanning the entire month consisting of 30 unique challenges". I wanted to make a poster for June-Boree and it was a good excuse to use some excellent fonts like Parkly.


View the full poster here.
Day 1: Create your thread in the forum to track your progress! Your Name - 30 Challenges
Easy one. You can see my thread on the forum here along with comments and such which I won't be including here.
Day 2: Create a hyper-specific meme about a running joke from the podcast.
I had so many ideas for this - trivia corner, counter chat, thumbs up vs media corner, something Thomas-related, notes apps, and the classic depreciation spreadsheet. My main submission was this Thanos one:

And the others:





Day 03: Listen to an entire music album from start to finish without looking at a screen or skipping a track. Post the album length and link to the album.
How dare Jason try to get me to sit quietly and enjoy something. I sat down and listened to one of my favourites: Sugarcult - Palm Trees and Powerlines. 12 songs, 40 minutes.
Day 04: Record a 30-second audio clip of the ambient sound outside your house (birds, traffic, etc.) and post it without context.
This was recorded (as a video) by one of the Knightlings, on my phone, while I was dozing on the sofa so I converted it to audio (I also had to bleep out one of them saying the other's name because op sec).
Day 05: Take a screenshot of your phone battery hitting exactly 1%.
This one was just cruel, but I did it.
Day 06: Take a photo of a classic regional snack or beverage unique to your part of the world.
Burger from Kyes innit.

Day 07: Take an artistic photo of something interesting on your daily walk or drive.
This is the Havant United Reform Church near the train station.

Day 08: Write down a thought, a quote, or a goal for today on an actual piece of paper with a physical pen, and post a photo
I was on the train and it was not easy to write this.

Day 09: Find a real-world sign, menu, or package with terrible font spacing and shame it with a photo.
I didn’t get this one for a few days. I drove to a couple of places I knew of with terrible kerning on some banners but they had both been removed so I assumed I wouldn’t get this challenge. Then my car presented me with this monstrosity.

Day 10: Take a "before" and "after" photo of your desk setup after a deep declutter.
This the best I'm ever going to declutter, this is my emotional support clutter.
Before:

After:

Day 11: - Make a digital "postcard" of your town using only emoji and text.
"Time for some ASCII art" - Me on day 11.

Raw:
..____________________________________________..
|| ~~~ 🛥️ PORTSMOUTH ☀️ ~~~ ||
|| | ______ ||
|| |.^ | | ||
|| || ^ | ^^^^ | ||
|| || ^ | | | [][] | ||
|| || ^ )_) )) | ---- | ||
|| .|| ^ )__) )_) | [][] | ||
|| .; ||^ )___))___) |______| ||
|| ..;; || ___|____|___ / ----- / ||
||————————————^^^^\__________/^^^~~^^~~^^^^^^^||
..____________________________________________..
Day 12: Walk 10,000+ steps. Post a photo showing date and step count.
I usually hit 10k steps but I figured I'd post one that was the highest for the week which was just over 18k steps when I was in London.
Day 13: Do a 15-second voice memo pronouncing a difficult local place name from your area.
"Cosham and Bosham are pronounced the same" one might think.
Day 14: Take a photo of a local transit pass, train ticket, or a unique road sign from your neighborhood

Day 15: Score 50+ in Bounce in Arcadia
I prefer the games on Arcadia where I can take my time so I didn't think I'd get this but I managed to get exactly 50 and that's enough for me. Eric got 702 which is ridiculous.

Day 16: Put a sticker on something that is decidedly not a piece of tech!
I'd done this a few days prior and it fits so perfectly. My Midori cutter with a Ruminate King sticker on it.

Day 17: Take a day off, you’ve earned it! (OR make more memes)
You don't have to tell me twice. For reference, Eric is stupidly good at Arcadia, having won the previous five years of Arcadia June.



Day 18: Post a photo at exactly 12:00 PM local time of the sky/view outside your window.

Day 19: Complete 100 reps of a body weight exercise (push-ups, squats, or jumping jacks) throughout a single day. Keep track on a tally sheet and post a photo
Here’s a tally of every time I thought about the day 19 challenge and didn’t do it because lazy.

Day 20: Score 25,000+ in CandyBall
Not a chance. Eric did it though
Day 21: Change the wallpaper on your phone or desktop to something completely new and show it off.

Day 22: Buy a coffee/tea/beverage, music, or book from a local independent shop and share the haul.
These are the best pork scratchings I’ve ever had in my life.

Day 23: Score 10,000+ in The Claw.
I really did try on this one but I couldn't even get close.
Day 24: Show the most ridiculous chain of tech adapters or dongles you can assemble to connect two incompatible devices
Not quite incompatible but I've been forgetting for years to take in a C to C cable to my office, so instead I use this USB C hub that has four USB A ports. Then I use a USB A to C cable to charge my mouse.

Day 25: Look behind your computer monitor or TV and take a photo of the hidden, chaotic cable nest you pretend doesn't exist.
Behold, the cables behind my desk.

Day 26: Consume a piece of media (a podcast episode, article, or YouTube video) produced in the opposite hemisphere from where you live. Share a link!
I did two:
Day 27: Record the sound of a satisfying real-world click
This is the click of the Bluetooth knob on my 8BitDo keyboard
Day 28: Draw a terrible, MS Paint style portrait of Andrew, Martin, or Jason. Or all three!

Day 29: Write a traditional 5-7-5 syllable haiku about the podcast or your favorite co-host.
I did a Haiku:
Whimsical podcast
Martin, Jason, Andrew news
Hemispheric Views
I also did a limerick because that's my preferred poetry format:
There once was a podcast with Andrew,
Jason, and Martin, just talking,
They all jumped on planes,
To meet for a day,
It was significantly faster than walking
Day 30: Race to the finish! Score 50,000+ points in FastRun!
The final day, the final Arcadia challenge. I got 39,939 after a handful of attempts. 50k wasn't going to happen.
Like WeblogPomo and Inktober, I enjoy the structure of having a single, small thing to do every day but I also need the accountability otherwise I won't do it. Jason did a great job of picking a selection of challenges that every can do and it made the month interesting to go into the forum and see what people had posted every day.
2026-06-22 17:55:58
Avengers
The movies, overrated with the exception of Infinity War/Endgame which was some of the best movie experiences I've ever had.
The comics, underrated. The stories from the comics is where it's at but it's not a medium that everyone can enjoy. There are so many great Avengers and Avengers-adjacent stories available if you're willing to give it a try. My recommendation is Kelly Thompson's West Coast Avengers run.
Weeknotes
Underrated. I love reading people's weeknotes and I've found it a useful tool to get out random thoughts I've had as well as share fun things I've seen online that week. The pressure to do them every week though, massively overrated. You don't need to do that to yourself, post when you want.
Stickers
Underrated. What a fun item stickers are but you've got to use them. Stick them on anything. Maybe Maique will spot one you stuck somewhere. I love stickers.
BuJo
This is a tough one. Bullet Journal the brand? Overrated. Intentionally or not, one look at the website shows that it exists now to sell courses, books, and other related services.
Bullet Journal the system on the other hand has a lot of good ideas. I don't do all of them, nor do I follow it strictly but the things I did take from the (the bullet system itself, migrating tasks, monthly spreads) have been massively helpful. Slightly underrated if only because the website no longer reflects the system and rather serves as the business side.
Tacos
Underrated. I'm in the UK where we have a troubling lack of mexican-inspired food available but whats not to love? Meat, sauce, taco shell, lettuce, it's got it all.
What are the two best books you couldn't live without and that you recommend?
How to Lie with Statistics. I read this when I was 17 or so and it blew my mind the way you can present data in different ways to elicit different reactions or prove your point. Fair warning this was written in 1954 so some of the language would not be appropriate in 2025, but the ideas are solid.
So You've Been Publicly Shamed. This one serves have a warning both about what one might post online, as well as how wild online mobs can get.