Banner image.
avatar Follow

Caleb Hailey

@calebhailey.com

HyperText junkie. #RSS prosumer. Founder @herdworks.com. 🌹⚽️

Caleb Hailey @calebhailey.com

I want so badly for this game to exist. The world needs a proper NBA Street Vol.2 successor! 🏀

1minus1
PlayByPlay Studios

Creating highly crafted sports games built to be played together and remembered forever.

https://playbyplaystudios.com/
YouTube
The Run: Got Next - Official Announcement Teaser Trailer - YouTube

Squad up, stack wins and become the G.O.A.T. in The Run: Got Next. Welcome to a new fast-paced, 3v3 PvP basketball game that celebrates street hoops culture ...

https://www.youtube.com/watch?v=Vmq1zu8u0OU
Continue reading →
Caleb Hailey @calebhailey.com

Finally ready to outsource bookkeeping for @herd.works 🎉

#startups #AchievementUnlocked

Continue reading →
Caleb Hailey @calebhailey.com

Scored some sweet deals on the Prime Sale this year after mostly ignoring it for the past few years. I had my eye on this charger for a while and noticed it was $60 off, so I snagged one of these and massively simplified the device charging setup in my home office. This thing is an absolute beast.

PS - this is not an affiliate link. I’m just sharing out of the goodness of my nerdy little heart. 🤓

Anker
Anker Prime Charger (250W, 6 Ports, GaNPrime) - Anker US

Power up with the Anker Prime Desktop Charger (250W, 6 Ports, GaNPrime) –enjoy ultra-fast, efficient charging with this powerful desktop charging station.

https://www.anker.com/products/a2345-anker-prime-charger-250w-6-ports-ganprime
Continue reading →
Caleb Hailey @calebhailey.com

Is this thing on?!

Continue reading →
Caleb Hailey @calebhailey.com

I noticed my following feed was broken earlier this week. It turns out it's been broken since the updated site went live at the beginning of the year. Whoops! 😅

The issue was with my static site generator and how it was parsing OPML data files. With that fixed I can now drop a lightly modified OPML file (with paywalled #RSS feeds removed) into a data folder and get an auto-generated following page. 🤌🏽

This whole idea was inspired by this @anildash.com blog post that I think about way too often.

Anil Dash
The lost infrastructure of social media. - Anil Dash

A blog about making culture. Since 1999.

https://www.anildash.com/2016/08/08/the-lost-infrastructure-of-social-media/
Continue reading →
Caleb Hailey @calebhailey.com

Office productivity is going to take a slight hit this week. ⚽️😅📉

UEFA.com
UEFA Champions League semi-finals: What to look out for in the second legs | UEFA Champions League | UEFA.com

Inter and Barcelona are all square while Paris Saint-Germain hold a slender advantage as they welcome Arsenal for the climax of the UEFA Champions League semi-finals.

https://www.uefa.com/uefachampionsleague/news/0299-1da8eda6a8ed-aebd19692d21-1000--uefa-champions-league-semi-finals-what-to-look-out-for-in-/
Continue reading →
Caleb Hailey @calebhailey.com

The web needs more experimentation like this from @eieio.games. 👏👏👏

eieio.games
One Million Chessboards · eieio.games

I made a website. It's called One Million Chessboards. It has a million chessboards on it. Moving a piece moves it for everyone, instantly. There are no turns.

https://eieio.games/blog/one-million-chessboards/
Continue reading →
Steve Jobs Archive @stevejobsarchive.com
Steve Jobs Archive
Objects of Our Life | Steve Jobs Archive

Exclusive video footage of Steve Jobs talking about his design vision and philosophy and how design worked at Apple.

https://stevejobsarchive.com/exhibits/objects-of-our-life
Continue reading →
Caleb Hailey @calebhailey.com

Cool to see @stripe.com jump in! Competition for payments on iOS?!

The comments on this Twitter thread from Stripe Product Manager Michael Lou are amazing. It reads like an FAQ, haha.

One comment replies "But using Apple Pay makes purchasing something way more likely for me." Lou responds "You can use Apple pay via Stripe!"

Another comment asks "Do users return to the app automatically after successful completion or is an action required?" Lou responds "They return automatically if [the developer has] Universal Links enabled".

🍿

The Stripe Docs logo
Link out for in-app purchases | Stripe Documentation

Let customers buy digital goods or subscriptions by redirecting from your app to the browser.

https://docs.stripe.com/mobile/digital-goods
Continue reading →
Caleb Hailey @calebhailey.com

I knew today was gonna be an exceptional Daily Update on @stratechery.com and I was not disappointed! 🔥

Stratechery by Ben Thompson
Apple Held in Contempt, The Crux of the Case, The Takings Clause – Stratechery by Ben Thompson

The judge in the Epic case released a devastating ruling on Apple’s lack of compliance in terms of allowing links to the win; Apple was clearly in the wrong, but still might win on appeal.

https://stratechery.com/2025/apple-held-in-contempt-the-crux-of-the-case-the-takings-clause/
Continue reading →
Caleb Hailey @calebhailey.com

These might be the three most meaningful paragraphs of policy/legal mumbo jumbo I've experienced in my professional career.

From an inconspicuously titled "Updated guidelines now available" from @developer.apple.com:

3.1.1(a): On the United States storefront, there is no prohibition on an app including buttons, external links, or other calls to action, and no entitlement is required to do so.

3.1.3: The prohibition on encouraging users to use a purchasing method other than in-app purchase does not apply on the United States storefront.

3.1.3(a): The External Link Account entitlement is not required for apps on the United States storefront to include buttons, external links, or other calls to action.

The email opened with an acknowledgement of this week's monumental legal mandate:

The App Review Guidelines have been updated for compliance with a United States court decision regarding buttons, external links, and other calls to action in apps. These changes affect apps distributed on the United States storefront of the App Store

Three cheers for regulation?! 👩‍⚖️

The most exciting thing about this to me personally is how @apple.com itself might respond to these changes by actually competing for developers' business in an area where it hasn't had to in the past.

It's gonna be a fun #WWDC & summer! 🙌🏽

Continue reading →
Caleb Hailey @calebhailey.com

While asking @chatgpt.com to help me debug a SwiftUI issue, it offered a solution and then said "but that results in a janky experience"!

The AI has become self-aware! 😅

Continue reading →
Caleb Hailey @calebhailey.com

Looks like the @gohugo.io website got a refresh. 👌

HUGO
The world's fastest framework for building websites

Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.

https://gohugo.io/
Continue reading →
Caleb Hailey @calebhailey.com

Markdown: this is the way. 🤌

iA
Markdown And The Slow Fade Of The Formatting Fetish

Notes on a revolution in slow motion.

https://ia.net/topics/markdown-and-the-slow-fade-of-the-formatting-fetish
Continue reading →
Caleb Hailey @calebhailey.com

The web never rests. I love seeing stuff like this from @webkit.org in the roadmap! #HTML

WebKit
Item Flow, Part 1: A new unified concept for layout | WebKit

CSS Grid and Flexbox brought incredible layout tools to the web, but they don’t yet do everything a designer might want.

https://webkit.org/blog/16587/item-flow-part-1-a-new-unified-concept-for-layout/
Continue reading →
Caleb Hailey @calebhailey.com

Just got a Freshboi 💈

Continue reading →
Caleb Hailey @calebhailey.com

Setting up my HyperTexting… 🤌

Continue reading →
Caleb Hailey @calebhailey.com

is experimenting… 👨🏽‍🔬

Continue reading →
Caleb Hailey @calebhailey.com

It's happening!! 😱

Continue reading →
Caleb Hailey @calebhailey.com

Whoa! 🤯

Continue reading →
Caleb Hailey @calebhailey.com

Test post from a new tool I've been working on. I hope this works!

Continue reading →
Caleb Hailey @calebhailey.com

customElements.apply()

A (naive?) approach to workaround customElements.define() "same tag name" errors.

Web components have completely changed the way I write vanilla JavaScript. It turns out classes are quite useful for encapsulation (who knew?)! Complementary approaches like HTML web components (and CSS web components) have reduced the amount of JavaScript I'm writing by about 95%. These ideas from @adactio.com and @hawkticehurst.com together with a steady stream of web component content from @gomakethings.com have revived my interest in modern web development.

But recently I started running into a little speed bump. I've been exploring HTML templating workflows that enable me to compose sections and entire pages from a collection of layout "partials" (ala server side includes). This sometimes causes multiple <script> tags to be added for a given web component, resulting in redundant calls to customElements.define() and a "cannot define multiple custom elements with the same tag name" error.

NotSupportedError: Cannot define multiple custom elements with the same tag name.

My initial reaction to this was to move all <script src> tags into the <head>, but this inevitably resulted in failing to load a component's JavaScript on certain pages (dependency management fail). Then I read @jakelazaroff.com's excellent Define a custom element blog post and it opened my eyes to the many different approaches to managing custom elements. But I also felt like my challenge might have been slightly different than the problem Jake was solving. So I tried something different that has been working really well for me.

It started with reviewing the CustomElementsRegistry reference documentation and discovering that get() and getName() methods already existed. All that was needed was an idempotent method for registering custom elements. It turns out this was trivial to implement.

1CustomElementRegistry.prototype.apply = function(tag, component) {
2    if (!(!!component.constructor && component.toString().substring(0,5) == "class")) { return }; // guard
3    if (this.get(tag)) { return }; // lookup by tag name
4    if (this.getName(component)) { return }; // lookup by component class
5    try { this.define(tag, component) } catch(err) {
6        console.debug(`component ${component.name} already registered as <${tag}>`);
7    };
8};

This is already working so well for me that it's just about the only JavaScript I keep in main.js for new projects. I'm replacing calls to customElements.define with customElements.apply in all of my web component JavaScript.

1customElements.apply("my-element", class MyElement extends HTMLElement {
2    // this is where the magic happens 🪄
3});

In doing so, I can add <script src='/js/my-component.js'> tags in any layout partial without worrying about "same tag name" errors.

Do you find this helpful? Or is this a horrible idea? 😅 Send me an email and let me know what you think: hello [at] calebhailey.com

Continue reading →
Caleb Hailey @calebhailey.com

This post by @ia.net reminds me of a quote I used to have permanently written on the top of the whiteboard in my office:

The only intuitive interface is the nipple. Everything else is learned.

— Bruce "Tog" Tognazzini

My favorite quote from the interview is:

Design requires a willingness to make a fool of yourself by asking outrageous and offensive questions and to be amazed at things that seem perfectly normal to other people.

iA
Design as Thought: AI and the Future of Design

Orlando and Oliver studied philosophy together 30 years ago. Their shared love for philosophy, design, and technology reunited them to discuss AI and the future.

https://ia.net/topics/design-as-thought
Continue reading →
Caleb Hailey @calebhailey.com

Speaking of #RSS, I love this piece by @anildash.com.

I've always wondered if one of the biggest differences in adoption between podcasts and text-based RSS feeds is that "podcast" has a catchy ring to it, and "really simple sindication" does not. Neither does "RDF site summary". It makes me further wonder if @textcasting.org (by @scripting.com) is more important as (re-)branding for text-based RSS feeds than it is as an actual new standard.

Anil Dash
“Wherever you get your podcasts” is a radical statement. - Anil Dash

A blog about making culture. Since 1999.

https://www.anildash.com/2024/02/06/wherever-you-get-podcasts/
Continue reading →
Caleb Hailey @calebhailey.com

I've been looking for good resources to introduce people to #RSS and this looks like a great one by @interconnected.org!

About Feeds
What is a feed? (a.k.a. RSS) | About Feeds

Getting Started guide to web feeds/RSS

https://aboutfeeds.com/
Continue reading →
How To Market A Game @howtomarketagame.com
How To Market A Game
Don’t build your castle in other people’s kingdoms – How To Market A Game

https://howtomarketagame.com/2021/11/01/dont-build-your-castle-in-other-peoples-kingdoms/
Continue reading →
Caleb Hailey @calebhailey.com

I've thought about this @stephango.com blog post at least once per week for the last ~18 months.

Just added this to my inspired by hall of fame.

Steph Ango
File over app — Steph Ango

If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...

https://stephango.com/file-over-app
Continue reading →
Daring Fireball @daringfireball.net
Daring Fireball
Daring Fireball: Also From the Archive: '"Beta" Is Not an Excuse'

Link to: https://daringfireball.net/2006/11/beta_excuse

https://daringfireball.net/linked/2025/01/07/beta-is-not-an-excuse-archive
Continue reading →
Caleb Hailey @calebhailey.com

I still haven't used @htmx.org, but I've read the #HyperMedia book and I'm a big fan of their ideas and where the project is headed overall. 🚀

#html #htmx #javascript

</> htmx
</> htmx ~ The future of htmx

htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext htmx is small (~14k min.gz’d), dependency-free, extendable, IE11 compatible & has reduced code base sizes by 67% when compared with react

https://htmx.org/essays/future/
Continue reading →
Caleb Hailey @calebhailey.com

This is hands-down my favorite craft cocktail website. 🍹

Punch
The Best Underrated Classic Cocktails, According to Bartenders | PUNCH

The best underrated classic cocktails, according to bartenders, range from the Tom Collins to a 1930s rum Manhattan. Here are their recipes.

https://punchdrink.com/articles/best-underrated-classic-cocktails-bartenders/
Continue reading →
Caleb Hailey @calebhailey.com

I'm loving the new @vw.com ID Buzz.

And my new scrolling image gallery. 😎

👈🏽 Swipe 👉🏽

The Verge
Living and working from an all-electric VW ID Buzz - The Verge

With the Ququq BusBox, you can convert the VW ID Buzz passenger vans into a two-person camper — and back — in just minutes.

https://www.theverge.com/23735554/vw-id-buzz-review-ququq-camper-e-vanlife

Pretty cool, right?!

Continue reading →
Caleb Hailey @calebhailey.com

More like fast trashion, amirite? 😅

The Verge
The delusion of Amazon Haul - The Verge

Amazon’s new ultracheap discount store, Haul, is filled with cheap, low-quality items. It sells the same things as Temu, Shein, or AliExpress — both physically and philosophically.

https://www.theverge.com/2024/12/19/24322922/amazon-haul-aliexpress-shein-temu-fast-fashion-ecommerce
Continue reading →
Caleb Hailey @calebhailey.com

Keep it on the markdown-low

First post with my custom #markdown parser.

Here's a little sample code block to show off the <code> syntax highlighting.

 1<!DOCTYPE html>
 2<html lang='en-US'>
 3    <head>
 4        <meta ht-include='partials/head.html'>
 5        <meta itemprop='template.name' content='default'>
 6
 7        <!-- Web Components -->
 8        <script src='/js/components/relative-time.js'></script>
 9    </head>
10    <body>
11        <nav ht-include='partials/nav.html'></nav>
12        <content-whitespace></content-whitespace>
13        <section id='post' data-color-scheme='light'>
14            <article ht-include='partials/post-article'></article>
15        </section>
16        <content-whitespace></content-whitespace>
17        <footer ht-include='partials/footer.html' data-color-scheme='dark'></footer>
18        <section ht-include='partials/tail.html'></section>
19    </body>
20</html>

This is all table stakes stuff, but I'm pumped to get it all wired up!

Continue reading →
Caleb Hailey @calebhailey.com

Just started reading "Filterworld", by @kylechayka.com, and it starts with a picture from one of my favorite Wikipedia pages of all time. I think I'm gonna like this book!

#NowReading

Kyle Chayka
Filterworld — Kyle Chayka

https://www.kylechayka.com/filterworld
Continue reading →
Caleb Hailey @calebhailey.com

TIL about the #HTML <base> element!

MDN Web Docs
<base>: The Document Base URL element - HTML: HyperText Markup Language | MDN

The <base> HTML element specifies the base URL to use for all relative URLs in a document. There can be only one <base> element in a document.

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
Continue reading →
Herd Works @herd.works
Herd Works
Herd Works // Introducing The Magic Highlighter

Friends don't let friends use old-fashioned ⌘-F.

https://herd.works/blog/introducing-the-magic-highlighter/
Continue reading →
Caleb Hailey @calebhailey.com

Originally posted on @sheesh.blog.

As soon as you have 20 minutes to spare, I encourage you to go watch this short film about Sally Schmidt, produced by Oscar® award winning documentary filmmaker Ben Proudfoot, for the @nytimes.com1.

Speaking of restaurants, Sally started a little establishment you might have heard of called The French Laundry. 🤌

YouTube
The Best Chef in the World | Op-Docs - YouTube

When my father died, he held disappointment in his heart. He was 66 and had only just retired from a life of 80-hour workweeks as a successful lawyer, and th...

https://www.youtube.com/watch?v=O5d1Cclk5QA

I particularly like this comment in the accompanying article:

Talking to Ms. Schmitt that morning, I learned she held a different kind of wisdom: that success may have other definitions.

Now that's what I call life-work balance!


  1. Op-Docs is a New York Times production of "Oscar-winning series of short documentaries by independent filmmakers". This might be one of my new favorite places on the internet. ↩︎

Continue reading →
Caleb Hailey @calebhailey.com

Originally posted on @sheesh.blog.

Long time listener, first time caller

I can't remember the last time I read a book from front to back1, but I am a voracious reader. The thing is, I prefer to read "the internet" instead of books.

At some point early on in my internet journey I discovered #RSS and I immediately fell in love2. My RSS feed became like my own personal newspaper, where I was the curator. I could add and remove columnists blog feeds as my interest graph would change over time. I was one of the many3 who decried the death of Google Reader. RSS lives on, but it's not as ubiquitious as it once was.

For some years my feed shifted from RSS to social media — almost exclusively Twitter, and mostly via Twitter Lists — but a few trends in recent years have brought me back to RSS:

  1. RSS services are great again4.
  2. RSS apps are making a comeback!
  3. "Doomscrolling" became a thing™️, prompting a renewed need to curate my feed.

With my newfound replacement for Google Reader's service (Feedbin.com), and my favorite old RSS reader app making a glorious (and open source!!) comeback, I decided to start the curation process from scratch. I created folders for "News", "People", "Portland" (my local happenings), "Products", "Startups", and "Tech".

And then I started subscribing. And I discovered that the very first feeds I added were the very same feeds I've been reading all along. A combination of overlapping interest graphs (I'm assuming) and writing styles have kept me reading certain blogs for over a decade now. These are the bloggers who's writing has both intimidated me – because I hold them in high esteem – and inspired me to start this blog.

I have feared that if I ever started a blog I would appear as a copy cat, a cheap imitation of these now-veterans who probably started like I am starting right now. But I decided that instead of shying away from writing, I should lean into it. Give credit where credit is due. Start my blog, in my own voice (however heavily "inspired by" it may be), and acknowledge those who went before me.

Starting a blog is easy. Buy a domain ✅ write an /about page ✅ write a "hello, world" ✅ smash the publish button. 💥 But for me, I could not have started this blog without acknowledging who this blog was inspired by.

✌️


  1. I mean, I do remember the last book I read, but it's embarrasing. 😅 ↩︎

  2. FUN FACT: fast forward many years later and I somehow had the privilege of working with Matt Shobe – one of the co-founders of Feedburner (acquired by Google in 2007). And by "working with" I mean he became an angel investor in my first company, and a critical advisor in our early stages. ↩︎

  3. Or few, I guess. Otherwise we would still have Google Reader? ↩︎

  4. In the years following the death of Google Reader (RIP), I tried a handful of apps and services that built replacements for Google Reader — from Feedly to Flipboard (powered by a carefully curated Twitter list) – but nothing stuck. Then a few years ago I tried Feedbin, and subsequently discovered its support for Newsletters (at a time when it seemed like everyone was starting a SubStack), and I almost forgot that Google Reader ever existed. ↩︎

Continue reading →
Caleb Hailey @calebhailey.com

Every new blog should start with an obligatory "hello, world" — so here I am doing just that. My experience with blogging has generally rhymed with the experience a former co-worker of mine once shared:

"I’ve started seven different blogs. Every one had one post."

Derek Newsom

Something feels different this time, but only time will tell.

✌️

Continue reading →

These are a few of my favorite feeds. 🔀

404 Media @404media.co 500ish @500ish.com 9to5Google @9to5google.com 9to5Mac @9to5mac.com Adam Stoddard @aaadaaam.com Aaron Parecki @aaronparecki.com Jeremy Keith @adactio.com Adamsilver.io @adamsilver.io adrian cockroft - Medium @adrianco.medium.com Aftermath @aftermath.site Alexander Obenauer @alexanderobenauer.com Dr Werner Vogels @allthingsdistributed.com Steve Newman @amistrongeryet.substack.com Andrew Chen @andrewchen.substack.com Anil Dash @anildash.com Anton Zhiyanov @antonz.org Ars Technica @arstechnica.com Basic Apple Guy @basicappleguy.com begriffs @begriffs.com The Cloudflare Blog @blog.cloudflare.com Jordan Singer @blog.diagram.com Discourse @blog.discourse.org Todoist Inspiration @blog.doist.com blog.google @blog.google Ramblings from Jessie @blog.jessfraz.com Mastodon Blog @blog.joinmastodon.org On my Om - Daily Blog @blog.om.co Stephanie Stimac's Blog @blog.stephaniestimac.com Superhuman Blog @blog.superhuman.com brandur.org @brandur.org brandur.org @brandur.org brandur.org @brandur.org brandur.org @brandur.org Brave @brave.com Brendan Gregg @brendangregg.com Bluesky @bsky.social Bytecode Alliance @bytecodealliance.org cabel.com @cabel.com Caleb Hailey @calebhailey.com Casey Liss @caseyliss.com Cassidy James Blaede @cassidyjames.com Christopher Butler @chrbutler.com Chris Ferdinandi @chrisferdinandi.com Chrome Story @chromestory.com CNAB: Cloud Native Application Bundles @cnab.io CNCF @cncf.io cra mr @cra.mr Jhey ʕ•ᴥ•ʔ @craftofui.substack.com Crunchy Bagel @crunchybagel.com CSS { In Real Life } @css-irl.info csvbase @csvbase.com Cult of Mac @cultofmac.com Cultured Code @culturedcode.com Daring Fireball @daringfireball.net David Smith @david-smith.org Deno @deno.com Apple Developer @developer.apple.com MDN Web Docs @developer.mozilla.org Nolen Royalty @eieio.games Elan Ullendorff @escapethealgorithm.substack.com Remains of the Day @eugenewei.com evilmartians.com @evilmartians.com Feedbin @feedbin.com Fly.io @fly.io Foundry @foundry.vc Furbo.org by Craig Hockenberry @furbo.org Giles' blog @gilesthomas.com The GitHub Blog @github.blog The Go Project @go.dev Golden Hill Software @goldenhillsoftware.com Go Make Things, by Chris Ferdinandi @gomakethings.com Paul Hudson @hackingwithswift.com Halide @halide.cam City of Happy Valley @happyvalleyor.gov Harshil Shah @harshil.net HeyDingus by Jarrod Blundy 🏳️‍⚧️🇺🇸 @heydingus.net High Caffeine Content @highcaffeinecontent.com Markup from hell - HTMHell @htmhell.dev HTMX @htmx.org Hypercritical, by John Siracusa @hypercritical.co iA @ia.net inessential by Brent Simmons @inessential.com The Ink & Switch Dispatch @inkandswitch.com Instapaper @instapaper.com Interconnected, a blog by Matt Webb @interconnected.org Jake Lazaroff @jakelazaroff.com Jeremy Daly @jeremydaly.com Jhey Tompkins @jhey.dev James Long @jlongster.com Josh W. Comeau @joshwcomeau.com Julian Dunn's Blog @juliandunn.net Julia Evans @jvns.ca Kagi Search @kagi.com Kevin Rose @kevinrose.com Kev Quirk @kevquirk.com Kilian Valkhof @kilianvalkhof.com Ladybird @ladybird.org Hardcore Software, by Steven Sinofsky @learningbyshipping.com Linear @linear.app Louie Mantia, Jr. @lmnt.me Luke Kanies @lukekanies.com MacAdmins.org @macadmins.org Apple Machine Learning Research @machinelearning.apple.com Mac Operations @macops.ca MacStories @macstories.net Macworld @macworld.com Manton Reece @manton.org Manu – I write @manuelmoreale.com Marco.org @marco.org Mat Ellis – Medium @matellis.medium.com Matthew Cassinelli @matthewcassinelli.com Matt Klein @mattklein123.dev Meh.com @meh.com Mere Civilian @merecivilian.com Eric A. and Kathryn S. Meyer @meyerweb.com Michael Mignano – Medium @mignano.medium.com Preetam Jinka @misfra.me Mitchell Hashimoto @mitchellh.com Michael J. Tsai @mjtsai.com MKBHD @mkbhd.com Mobile.blog @mobile.blog Molly White @mollywhite.net More than seven @morethanseven.net Max Böck @mxb.dev NetNewsWire @netnewswire.blog opb @news.opb.org Hacker News @news.ycombinator.com Condé Nast @newyorker.com NPR @npr.org NSHipster @nshipster.com New York Times Most Viewed @nytimes.com New York Times Op-Docs @nytimes.com New York Times Technology @nytimes.com Wirecutter: Reviews for the Real World @nytimes.com On my Om @om.co OpenAI @openai.com Ordealist @ordealist.com Parker Higgins @parkerhiggins.net Eater Portland @pdx.eater.com Portland Monthly @pdxmonthly.com Portland Monthly @pdxmonthly.com pketh.org @pketh.org Platformer @platformer.news Pluralistic: Daily links from Cory Doctorow @pluralistic.net Podman @podman.io Punch @punchdrink.com Raspberry Pi @raspberrypi.com Reddit Inc Blog @redditinc.com relevant buildings @relevantbuildings.com Robin Rendle @robinrendle.com Rosemary Orchard @rosemaryorchard.com Ryan Frantz @ryanfrantz.com Ryan Mulligan @ryanmulligan.dev Sandofsky @sandofsky.com Sara Joy @sarajoy.dev Scripting News @scripting.com sdw space — Sebastiaan de With @sdw.space selfh.st @selfh.st Seth's Blog @seths.blog Shadowfacts @shadowfacts.net Shopify @shopify.dev Shopify @shopify.engineering Sidebar @sidebar.io Signal @signal.org Silicon Florist @siliconflorist.com Simon Willison @simonwillison.net Sindre Sorhus @sindresorhus.com Six Colors @sixcolors.com Slack @slackhq.com The Stack Overflow Blog @stackoverflow.blog Steph Ango @stephango.com Stratechery by Ben Thompson @stratechery.com Heyang Zhou @su3.io Supabase @supabase.com Swift.org @swift.org Swift by Sundell @swiftbysundell.com Jordan Morgan @swiftjectivec.com Swift on server @swiftonserver.com Tailscale @tailscale.com Swift Talk @talk.objc.io ongoing, by Tim Bray @tbray.org Techmeme @techmeme.com The Magic Highlighter @themagichighlighter.com The Verge @theverge.com Today I Learned @til.jakelazaroff.com Ryan Dahl @tinyclouds.org Three Letter Acronym @tla.systems Nikita Prokopov @tonsky.me Michael Easter @twopct.com Waxy.org @waxy.org West Coast Overland @wcoverland.com Rogue Amoeba - Under the Microscope @weblog.rogueamoeba.com Jason Fried @world.hey.com Willamette Week @wweek.com MAJ – YouTube @youtube.com/myanalogjournal Techstars – YouTube @youtube.com/techstarsglobal Zig @ziglang.org

Join the mailing list

No more than one email per week, no fewer than one per month.