{
  "authors": [
    {
      "name": "tyler",
      "url": "https://tyler.io/"
    }
  ],
  "description": "mostly nonsense",
  "feed_url": "https://tyler.io/feed/json/index.json",
  "home_page_url": "https://tyler.io/",
  "items": [
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eThis weekend, I was wrapping up \u003ca href=\"https://irisphotos.app/\"\u003ea new release of Iris\u003c/a\u003e and decided to have some fun after a user emailed to say:\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eI have a rather niche feature request—but wondering if it would be possible to offer an alternative app icon with the beautiful flower freed from its squircle? I know that Apple has mandated the squircle from macOS Tahoe on; but I’m still running Sequoia, and I imagine other users may be as well. I love the way apps like Nova and Sketch offer alternative “legacy” icons, and it would make Iris feel even more at home in my dock 🙂\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eWe all know about macOS Tahoe’s \u003ca href=\"https://daringfireball.net/linked/2025/11/07/tahoes-terrible-icons\"\u003eterrible app icons\u003c/a\u003e and how 3rd party developers have been confined to \u003ca href=\"https://atp.fm/643?utm_source=irisphotos\"\u003esquircle jail\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you’re lucky enough to distribute an app outside the Mac App Store, you can break free of squircle jail using \u003ca href=\"https://developer.apple.com/documentation/appkit/nsdocktileplugin\"\u003eNSDockTilePlugIn\u003c/a\u003e. It’s not strictly the intended use-case of that API. And it’s not allowed in the Mac App Store, either. But it can solve the problem.\u003c/p\u003e\n\u003cp\u003eSo today’s release of Iris adds three additional app icons to choose from in the app’s \u003cem\u003eSpecial\u003c/em\u003e \u003cdel\u003ePreferences\u003c/del\u003e Settings pane. And since they use the NSDockTilePlugIn API, the custom icon remains even when you quit the app.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/07/CleanShot-2026-07-05-at-19.38.26.gif\" alt=\"\" height=\"531\" width=\"800\"\u003e\u003c/figure\u003e\u003cp\u003eBut let’s take this a step further. Past useful, beyond silly and ridiculous, and all the way to fun. (Remember when software was allowed to be whimsical?)\u003c/p\u003e\n\u003cp\u003eOne of \u003ca href=\"https://irisphotos.app/manifesto/\"\u003eIris’s Guiding Principles\u003c/a\u003e is “Fun”:\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eThere is no reason to maintain and invest in your family’s photo and home video library if you’re not also going to enjoy your memories.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eI added another setting named “Show Faces in Dock”. Once enabled, you can choose any person’s face in your library and…add them to the Dock. Now your favorite people can hang out alongside your favorite apps.\u003c/p\u003e\n\u003cdiv style=\"position:relative;padding-top:56.25%;\"\u003e\u003ciframe allow=\"accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;fullscreen;\" allowfullscreen=\"true\" loading=\"lazy\" src=\"https://iframe.mediadelivery.net/embed/48030/3c19705f-ee9c-4a07-bc60-19fdad2a28ca?autoplay=false\u0026amp;loop=true\u0026amp;muted=true\u0026amp;preload=true\u0026amp;responsive=true\" style=\"border:0;position:absolute;top:0;height:100%;width:100%;\"\u003e\u003c/iframe\u003e\u003c/div\u003e\n\u003cp\u003e\u003cbr\u003eWhy?\u003c/p\u003e\n\u003cp\u003eBecause software should be fun and joyful just as much as it should be useful. That’s why.\u003c/p\u003e\n\u003cp\u003eIris is available \u003ca href=\"https://irisphotos.app/\"\u003edirectly from the app’s website\u003c/a\u003e or in the \u003ca href=\"https://apps.apple.com/us/app/iris-photo-video-library/id6761598836\"\u003eMac App Store\u003c/a\u003e. Only the direct version includes fun extras like custom app icons and Dock faces.\u003c/p\u003e\n",
      "date_published": "2026-07-05T00:00:00-04:00",
      "id": "https://tyler.io/?p=3105",
      "summary": "This weekend, I was wrapping up a new release of Iris and decided to have some fun with the app icon.",
      "title": "Escape from Squircle Jail",
      "url": "https://tyler.io/2026/07/05/escape-from-squircle-jail/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003e\u003ca href=\"https://irisphotos.app/\"\u003eIris\u003c/a\u003e ships today.\u003c/p\u003e\n\u003cp\u003e2,023 days since the first line of code. Before I say anything about what it \u003cem\u003eis\u003c/em\u003e, I want to show you what the app started as — because the two things barely resemble each other, and the gap between them is basically the whole story.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/hero-light-1024x721.jpg\" alt=\"\" height=\"721\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003eThat’s the finished thing. Now let me rewind almost six years.\u003c/p\u003e\n\u003ch2 id=\"it-started-as-antiphoto-and-it-wasnt-really-a-photo-app\"\u003eIt started as “AntiPhoto,” and it wasn’t really a photo app\u003c/h2\u003e\n\u003cp\u003eThe first version, from November 2020, was called AntiPhoto. The name was a \u003cem\u003emood\u003c/em\u003e. I had tens of thousands of photos and videos scattered across drives and old phone backups, and Apple Photos wanted me to live inside \u003cem\u003eits\u003c/em\u003e library, on \u003cem\u003eits\u003c/em\u003e terms. I didn’t want a walled garden. I wanted something that could point at a messy folder and just make sense of it.\u003c/p\u003e\n\u003cp\u003eSo the very first build wasn’t about browsing pretty pictures at all. It was a triage tool. It scanned a folder and tried to \u003cem\u003eunderstand\u003c/em\u003e each image — running it through machine learning models to pull out scene categories, objects, and any text it could find.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/02_antiphoto_grid-1024x713.jpg\" alt=\"\" height=\"713\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eAntiPhoto, week one. Every photo auto-tagged with whatever the models thought was in it. Half of these tags are wrong, which was sort of the point — I was trying to see how far this could go.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eBehind the grid was a little command-line program I called \u003ccode\u003eTriageDemo\u003c/code\u003e. You pointed it at a directory and it printed out everything it could infer per image: categories with confidence scores, detected objects, OCR’d text, the works.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/03_triage_terminal-1024x641.jpg\" alt=\"\" height=\"641\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eThe actual seed of the whole project: \u003ccode\u003eTriageDemo\u003c/code\u003e chewing through a folder, scoring every guess. “Category: structure 0.996. Term: people 0.98. Term: sign 0.85.”\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIf you’d asked me then, I’d have told you I was building a search engine for your own hard drive. Faces, things, text-in-images — index all of it, make it findable. The fact that it happened to contain your family photos was almost incidental.\u003c/p\u003e\n\u003cp\u003eThat framing didn’t last.\u003c/p\u003e\n\u003ch2 id=\"renaming-to-iris\"\u003eRenaming to Iris\u003c/h2\u003e\n\u003cp\u003eBy the end of December 2020, “AntiPhoto” had become Iris. (The internal library format kept the name \u003ccode\u003eAntiPhotoLibrary\u003c/code\u003e for an embarrassingly long time afterward — you can still find it lurking in old screenshots.) Within about six weeks the skeleton of the real app was already there: sources, dates, places, people, things, and a status bar quietly counting how much it had scanned.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/04_iris_2020-1024x698.jpg\" alt=\"\" height=\"698\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eDecember 2020. Newly renamed, already counting EXIF, GPS, ML, and hash passes in the status bar. Everything after this was variations on a theme.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI liked “Iris” because it refused to mean one thing. It’s the iris of your \u003cstrong\u003eeye\u003c/strong\u003e. It’s the \u003cstrong\u003eaperture\u003c/strong\u003e of a camera. And it’s the \u003cstrong\u003eflower\u003c/strong\u003e. I spent a genuinely unreasonable amount of the next several years unable to decide which of those three the app actually was. You can watch me fail to decide, right in the icon.\u003c/p\u003e\n\u003ch2 id=\"the-icon-saga\"\u003eThe icon saga\u003c/h2\u003e\n\u003cp\u003eThis is the part I’m most sheepish about. Here is the design “process,” and I use that word generously. A lot of bad clip-art testing out ideas and even worse \u003cdel\u003ePhotoshop\u003c/del\u003e Acorn choices.\u003c/p\u003e\n\u003cp\u003eIt began on-the-nose: an eyeball, inside a camera lens. Both meanings of “iris,” literally stacked on top of each other.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/05_icon_eye.jpg\" alt=\"\" height=\"760\" width=\"760\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eExhibit A: the “what if we just did both” icon. An eye. In a lens. Subtle.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThen I swung hard toward the flower. In January 2022 the icon became a sketched iris bloom — blue fading to magenta, on a purple tile. Meh. It also looked nothing like a utility for searching 100,000 files, which is what the app actually was by then.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/06_icon_painted_iris.jpg\" alt=\"\" height=\"860\" width=\"900\"\u003e\u003c/figure\u003e\u003cp\u003eThen, in late 2022, image-generation tools showed up and I completely lost the plot. I generated \u003cem\u003edozens\u003c/em\u003e of camera-lens-inside-a-flower icons and saved them all in a folder I named, with no irony, “Icon Apps.” Antique. Black. Blurred Rainbow Waves. Drippy Flower. Funky Shape. Purple Stars. Starfield. White. I could not stop.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/07_icon_apps_grid-1024x755.jpg\" alt=\"\" height=\"755\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eA small sample of the icon binge. There were more. There are always more.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI even went to space.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/08_icon_space.jpg\" alt=\"\" height=\"760\" width=\"760\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003e“Space Iris.” This version hung around for a surprisingly long time through early beta versions that friends and family were testing.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eFor even longer, it came back around to, fittingly, a flower After four years and a few dozen detours, the eye and the lens quietly stepped aside and let the flower win.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/icon_512x512@2x.png\" alt=\"\" height=\"1024\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003eBut then Apple came around and decided to put everyone’s Mac apps in \u003cem\u003e\u003ca href=\"https://9to5mac.com/2025/08/08/macos-tahoe-fix-gray-box-icons/\"\u003esquircle jail\u003c/a\u003e\u003c/em\u003e. I needed to align with Tahoe’s demoralizing icon design guidelines and keep everything within the squircle bounds. Which led to this compromise:\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/tahoe-flower.png\" alt=\"\" height=\"1024\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003eAs much as I had learned to love the rainbow flower over the two years it was the app’s icon, it had way too much detail — especially in the modern Apple design era.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/Iris-App-Icon-1024.png\" alt=\"\" height=\"1024\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003eWhich brings us to the final icon design that Iris ships with today.\u003c/p\u003e\n\u003ch2 id=\"the-modes-that-came-and-went\"\u003eThe modes that came and went\u003c/h2\u003e\n\u003cp\u003eUnder the hood, Iris was organized around \u003cstrong\u003emodes\u003c/strong\u003e — a Browse / Organize / Find toggle at the top of the window. By 2022 you could see it sitting (smugly) right next to Apple Photos, which is exactly where I kept it while I worked.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/09_side_by_side_photos-1024x584.jpg\" alt=\"\" height=\"584\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eIris (right) next to the thing it was a reaction to (left), August 2022. Note the “image analysis remaining” counter — there was always more to scan.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eSome of those modes were wildly ambitious, and not all of them survived contact with reality. My favorite casualty is \u003cstrong\u003eExplore Mode\u003c/strong\u003e — a drag-and-drop visual query builder I described in my own notes as “Advanced Search for Normals.” The idea was that you’d drag People, Places, Things, and Text onto a canvas and wire them together with AND/OR connectors to build a search visually, no query syntax required.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/10_explore_mode-1024x705.jpg\" alt=\"\" height=\"705\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eExplore Mode, as sketched on my iPad. I still think this is a good idea. I also fully understand why it didn’t ship in this form — note my own margin note worrying about whether places have to be OR’d “b/c a photo can’t be in more than one at a time.”\u003c/em\u003e\u003c/p\u003e\n\u003cdiv style=\"position:relative;padding-top:56.25%;\"\u003e\u003ciframe allow=\"accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;fullscreen;\" allowfullscreen=\"true\" loading=\"lazy\" src=\"https://iframe.mediadelivery.net/embed/50686/8da76b22-454b-4930-b03b-b5907a3a40cc?autoplay=false\u0026amp;loop=true\u0026amp;muted=true\u0026amp;preload=true\u0026amp;responsive=true\" style=\"border:0;position:absolute;top:0;height:100%;width:100%;\"\u003e\u003c/iframe\u003e\u003c/div\u003e\n\u003cp\u003eThis is the only screen recording of the old Explore Mode I could find.\u003c/p\u003e\n\u003cp\u003eThen there was also \u003cstrong\u003eOrganize Mode\u003c/strong\u003e, which was its own little universe. You’d collect items onto a “shelf,” then run batch operations on the whole shelf at once: set dates, fix locations, sort into date folders, correct OCR. There was a whole scored \u003cstrong\u003eduplicate finder\u003c/strong\u003e in there — same filename worth +2, same size +1, same hash +5, with a hopeful “ML?” scribbled at the bottom — that computed a “dupe %” for every candidate.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/11_organize_mode-705x1024.jpg\" alt=\"\" height=\"1024\" width=\"705\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003eOrganize Mode. Half of this shipped, half of it is still a someday-maybe, and the duplicate scorer was way more fun to design than it had any right to be.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThe same notebooks have pages and pages on \u003cstrong\u003ePeople\u003c/strong\u003e: per-person “lifestreams,” matching faces by vector distance (the more faces you confirm, the better the guesses get), a biography view that charts how often someone appears in your photos by age, and a wistful note asking whether I should let you group people into families. Some of that is in the app today. Some of it is still just ink.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/Biography-1024x768.jpg\" alt=\"\" height=\"768\" width=\"1024\"\u003e\u003c/figure\u003e\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/People-Editor-1024x607.jpg\" alt=\"\" height=\"607\" width=\"1024\"\u003e\u003c/figure\u003e\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/People-Window-1024x821.jpg\" alt=\"\" height=\"821\" width=\"1024\"\u003e\u003c/figure\u003e\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/Timeline-1024x741.jpg\" alt=\"\" height=\"741\" width=\"1024\"\u003e\u003c/figure\u003e\u003cdiv style=\"position:relative;padding-top:56.25%;\"\u003e\u003ciframe allow=\"accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;fullscreen;\" allowfullscreen=\"true\" loading=\"lazy\" src=\"https://iframe.mediadelivery.net/embed/50686/2d567fb9-fbd4-4bce-8d0d-0f95745e8ced?autoplay=false\u0026amp;loop=true\u0026amp;muted=true\u0026amp;preload=true\u0026amp;responsive=true\" style=\"border:0;position:absolute;top:0;height:100%;width:100%;\"\u003e\u003c/iframe\u003e\u003c/div\u003e\n\u003cp\u003e\u003cem\u003eOne last, random, video. Iris had a prototype interactive graph view (like \u003ca href=\"https://obsidian.md/\"\u003eObsidian\u003c/a\u003e) that shows a visually weighted representation of how your photos connect with each other by way of people, places, dates, and things.\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"the-boring-work-nobody-sees\"\u003eThe boring work nobody sees\u003c/h2\u003e\n\u003cp\u003eFor every dreamy sketch there were months of deeply unglamorous hitting my head against the wall, none of which makes a good screenshot. The single hardest problem was often just \u003cem\u003escrolling\u003c/em\u003e. A photo library isn’t 200 items, it’s 200,000+, and they all have different aspect ratios, and you want a buttery justified grid that never stutters. I have a screen recording I named “100k Spinning Scroll” from April 2022 — the day a library of \u003cstrong\u003e101,706 items\u003c/strong\u003e finally scrolled without choking — and I remember it feeling like a bigger win than any feature. But even today, Iris has performance hiccups — especially around complex searches and truly massive libraries. But if I waited to solve every bug, I’d never ship.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/05/12_100k_inspector-1024x617.jpg\" alt=\"\" height=\"617\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003e\u003cem\u003e101,706 items, scrolling smoothly at last. That meant a custom collection-view layout, a background scanning daemon, and a lot of staring at memory graphs.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eThat daemon — \u003ccode\u003eIrisScanner\u003c/code\u003e — was its own saga. It does all the heavy lifting (EXIF, hashing, location lookups, face and object ML) in the background without making the app feel slow or eating your RAM. I spent a good chunk of 2023 in Instruments getting it to do all of that while holding steady around 266 MB. Nobody will ever notice this work, which is exactly the goal.\u003c/p\u003e\n\u003ch2 id=\"what-iris-actually-became\"\u003eWhat Iris actually became\u003c/h2\u003e\n\u003cp\u003eHere’s the part I didn’t see coming. That original triage idea — the thing that made me call it \u003cem\u003eAntiPhoto\u003c/em\u003e — never died. It just grew up.\u003c/p\u003e\n\u003cp\u003eAnd somewhere along the way the whole emotional center of the thing shifted. I set out to build an anti-Photos \u003cem\u003eutility\u003c/em\u003e — a search engine for a hard drive. What I actually ended up with is a memory keeper. Open a photo today and Iris tells you the date, surfaces “16 items on this day,” drops a pin on the map, and lists the people in the frame with their ages quietly calculated from their birthdays. That is not a utility. That is the opposite of anti-anything.\u003c/p\u003e\n\u003cp\u003eI think that’s the real lesson from digging through six years of old screenshots. You start with a thesis — \u003cem\u003emine was basically “Apple Photos is not for me”\u003c/em\u003e — and you build toward it. But the app keeps making little counter-arguments. The scroll work pulls you toward big libraries. The face work pulls you toward people. The “on this day” experiment pulls you toward nostalgia. And one day you look up and the spiteful little triage tool has become a thing you’re genuinely fond of, named after a flower you spent three years refusing to commit to.\u003c/p\u003e\n\u003cp\u003eStephen King is my favorite author. And if you don’t count \u003cem\u003e\u003ca href=\"https://en.wikipedia.org/wiki/The_Elements_of_Style\"\u003eThe Elements of Style\u003c/a\u003e\u003c/em\u003e, he wrote the best book \u003cem\u003eever\u003c/em\u003e about writing, \u003cem\u003e\u003ca href=\"https://en.wikipedia.org/wiki/On_Writing:_A_Memoir_of_the_Craft\"\u003eOn Writing\u003c/a\u003e\u003c/em\u003e. He says:\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003e“Stories are found things, like fossils in the ground.”\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eThe same can be said about software. Apps go where they want to go. The best you can do is keep showing up and let them.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://irisphotos.app/\"\u003eIris is out today\u003c/a\u003e. Thanks for being here for the wrong turns.\u003c/p\u003e\n",
      "date_published": "2026-05-27T00:00:00-04:00",
      "id": "https://tyler.io/?p=3052",
      "summary": "Iris ships today. 2,023 days since the first line of code. Before I say anything about what it is, I want to show you what the app started as — because the two things barely resemble each other, and the gap between them is basically the whole story.",
      "title": "Fossils in the Ground",
      "url": "https://tyler.io/2026/05/27/fossils-in-the-ground/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eToday I was getting ready for a Zoom meeting, but my AirPods (Pro, gen 3) weren’t connecting to my work laptop (Tahoe 26.3). I assumed it was one of the usual AirPods failure modes where my phone or personal laptop might be holding onto the connection from the day before.\u003c/p\u003e\n\u003cp\u003eI checked my iPhone — no connection.\u003c/p\u003e\n\u003cp\u003eNext troubleshooting step: Put them back in the case. Count to five. Open the case. Hope they connect.\u003c/p\u003e\n\u003cp\u003eWorse. I get the dreaded half-screen setup sheet that says something like “These aren’t your AirPods” asking if I want to connect them. This happens a few times a year. They’ll go missing from my Apple account, I’ll re-pair, and then they mostly work for the next six months.\u003c/p\u003e\n\u003cp\u003eFine, start the setup process.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYes, I want to enable Announce Calls.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNo, I don’t want to enable Announce Notifications.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYes, I want to use Personalized Volume.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eYes, I want to enable head gestures to answer and decline phone calls.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNo, I don’t want to turn on Conversational Awareness.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNo, I don’t want to take a hearing test.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNo, I don’t want to try a demo of live translation.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eAnd then…\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGet 3 months of free music with your AirPods Pro\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eAn advertisement. In the setup wizard. After a product failure. While I’m stressed and late for a work meeting.\u003c/p\u003e\n\u003cp\u003eAnd Apple couldn’t even be bothered to make the advertisement properly fit on screen. On their latest flagship iPhone.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/02/fucking-stupid-airpods.jpeg\" alt=\"\" height=\"768\" width=\"1024\"\u003e\u003c/figure\u003e\u003cp\u003eMy wife switched to a pair of \u003ca href=\"https://electronics.sony.com/audio/headphones/all-headphones/p/wfls910n-g\"\u003eSony earbuds\u003c/a\u003e last year after swearing off AirPods for frequently failing to charge. She’s enjoyed them. So instead of accepting Apple’s generous three free months of Apple Music, I put that money to better use and bought a pair of \u003ca href=\"https://electronics.sony.com/audio/headphones/truly-wireless-earbuds/p/wf1000xm5-b\"\u003eSony WF-1000XM5\u003c/a\u003e (what a name) on my lunch break.\u003c/p\u003e\n\u003cp\u003eI no longer care if AirPods are the better product for my needs. They’re not the experience I want. And, increasingly, more and more of what Apple offers is not, either.\u003c/p\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/02/bb-email-sony-1024x866.png\" alt=\"\" height=\"866\" width=\"1024\"\u003e\u003c/figure\u003e",
      "date_published": "2026-02-27T00:00:00-05:00",
      "id": "https://tyler.io/?p=3008",
      "summary": "I don\u0026#39;t care if AirPods are the better product for my needs. They\u0026#39;re no longer the experience I want. And, increasingly, more and more of what Apple offers is not, either.",
      "title": "“Get 3 months of free music with your AirPods Pro”",
      "url": "https://tyler.io/2026/02/27/get-3-months-of-free-music-with-your-airpods-pro/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eAs a parent, I often lose faith that I’m doing a good job raising my kids, but then I’ll get a sign that maybe things are going OK after all. Last night, my daughter came into my office to show me a list she made of things she thinks she’s good at. Reading it nearly melted the eight inches of snow outside my window.\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eThings I think I’m good at.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMath\u003c/li\u003e\n\u003cli\u003eSoccer\u003c/li\u003e\n\u003cli\u003eKnowing peoples emotions\u003c/li\u003e\n\u003cli\u003eSketching\u003c/li\u003e\n\u003cli\u003eRun Fast\u003c/li\u003e\n\u003cli\u003eSwimming\u003c/li\u003e\n\u003cli\u003eFlipping on trampoline\u003c/li\u003e\n\u003cli\u003eSinging\u003c/li\u003e\n\u003cli\u003eDancing\u003c/li\u003e\n\u003cli\u003eMaking people laugh\u003c/li\u003e\n\u003cli\u003eMaking friends\u003c/li\u003e\n\u003cli\u003eWriting fast and readable\u003c/li\u003e\n\u003cli\u003eBeing with one another\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003c/blockquote\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2026/01/IMG_2526-768x1024.jpeg\" alt=\"\" height=\"1024\" width=\"768\"\u003e\u003c/figure\u003e",
      "date_published": "2026-01-27T00:00:00-05:00",
      "id": "https://tyler.io/?p=2981",
      "summary": "As a parent, I often lose faith that I\u0026#39;m doing a good job raising my kids, but then I\u0026#39;ll get a sign that maybe things are going OK after all. Last night, my daughter came into my office to show me a list she made of things she thinks she\u0026#39;s good at. Reading it nearly melted the eight inches of snow outside my window.",
      "title": "“Things I think I’m good at”",
      "url": "https://tyler.io/2026/01/27/things-i-think-im-good-at/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003e\u003ca href=\"https://morrick.me/archives/10176\"\u003eRiccardo Mori\u003c/a\u003e:\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eWhat is happening with the monetise \u0026amp; weaponise strategy, instead, is this progressive fracture and disconnect between tech companies and regular people. A disconnect where people at various levels of tech-savvy feel equally at odds with the behaviour of many tech companies. I certainly don’t view tech as an ally or as something that should benefit me or improve my life anymore. More like a user of technology, I increasingly feel used and lied to by it; I feel like a mere instrument that exists to guarantee its survival.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eMy idea of being a luddite is more like someone who keeps advocating that technology should be in \u003cem\u003eour\u003c/em\u003e service, and not vice-versa. Technology seems to be on a path of eroding people’s agency, whereas I want people to have \u003cem\u003emore\u003c/em\u003e agency and to be less ‘personal data fodder’.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eRiccardo accomplishes two extraordinary things in this article:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHe successfully puts into words what so many of us in the larger tech community (however you define that) have been feeling over the last few years.\u003c/li\u003e\n\u003cli\u003eHe authored one of his best posts ever. That’s no small feat.\u003c/li\u003e\n\u003c/ul\u003e\n",
      "date_published": "2025-12-06T00:00:00-05:00",
      "id": "https://tyler.io/?p=2905",
      "summary": "\u0026#34;My idea of being a luddite is more like someone who keeps advocating that technology should be in our service, and not vice-versa. Technology seems to be on a path of eroding people’s agency, whereas I want people to have more agency and to be less ‘personal data fodder’.\u0026#34;",
      "title": "“This time it’s not fatigue, but disconnection”",
      "url": "https://tyler.io/2025/12/06/this-time-its-not-fatigue-but-disconnection/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eMaybe it’s because my eyes are getting old or maybe it’s because \u003ca href=\"/2020/09/surtainly-not/#active-window\"\u003ethe contrast between windows\u003c/a\u003e on macOS keeps getting worse. Either way, I built a tiny Mac app last night that draws a border around the active window. I named it “Alan”.\u003c/p\u003e\n\u003cp\u003eIn Alan’s preferences, you can choose a preferred border width and colors for both light and dark mode.\u003c/p\u003e\n\u003cp\u003eThat’s it. That’s the app.\u003c/p\u003e\n\u003cp\u003eYou can \u003ca href=\"https://github.com/tylerhall/Alan/releases/tag/v1.0\"\u003edownload a notarized copy of Alan here\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eHere’s a short demo video.\u003c/p\u003e\n\u003cdiv style=\"position:relative;padding-top:56.25%;\"\u003e\u003ciframe allow=\"accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;\" allowfullscreen=\"true\" loading=\"lazy\" src=\"https://iframe.mediadelivery.net/embed/48030/d56950d0-4c13-498d-911b-8f61fda8e690?autoplay=false\u0026amp;loop=true\u0026amp;muted=false\u0026amp;preload=true\u0026amp;responsive=true\" style=\"border:0;position:absolute;top:0;height:100%;width:100%;\"\u003e\u003c/iframe\u003e\u003c/div\u003e\n\u003cp\u003eIf you want to hide Alan’s icon from the Dock, you can set a hidden preference by running this Terminal command. Then, relaunch the app.\u003c/p\u003e\n\u003cpre class=\"wp-block-code\"\u003e\u003ccode\u003edefaults write studio.retina.Alan hideDock -bool true\u003c/code\u003e\u003c/pre\u003e\n",
      "date_published": "2025-11-26T00:00:00-05:00",
      "id": "https://tyler.io/?p=2770",
      "summary": "Maybe it\u0026#39;s because my eyes are getting old or maybe it\u0026#39;s because the contrast between windows on macOS keeps getting worse. Either way, I built a tiny Mac app last night that draws a border around the active window. I named it \u0026#34;Alan\u0026#34;.",
      "title": "Alan.app",
      "url": "https://tyler.io/2025/11/26/alan/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eAn internet friend \u003ca href=\"https://allamaraine.io/@hisaac/114990274156235460\"\u003easked the other day\u003c/a\u003e:\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eIt appears I have finally rebooted my reading hobby, after years of trying. Feels good.\u003c/p\u003e\n\u003cp\u003eWhat’s something great you’ve read?\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eHere’s some of my favorites (in no particular order).\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/18505792-the-ocean-at-the-end-of-the-lane?from_search=true\u0026amp;from_srp=true\u0026amp;qid=QVuAvB3nsE\u0026amp;rank=1\"\u003e\u003cem\u003eThe Ocean at the End of the Lane\u003c/em\u003e\u003c/a\u003e by Neil Gaiman\u003cbr\u003eWonderful, quick, fantasy novel.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/48328.Revolutionary_Road?from_search=true\u0026amp;from_srp=true\u0026amp;qid=8X3AVijfNU\u0026amp;rank=2\"\u003e\u003cem\u003eRevolutionary Road\u003c/em\u003e\u003c/a\u003e by Richard Yates\u003cbr\u003eA gut-wrenching family drama.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/6913830-blind-descent?from_search=true\u0026amp;from_srp=true\u0026amp;qid=ZsN7tBayDf\u0026amp;rank=1\"\u003e\u003cem\u003eBlind Descent: The Quest to Discover the Deepest Place on Earth\u003c/em\u003e\u003c/a\u003e by James M. Tabor\u003cbr\u003eI’ve never been hooked so hard by a non-fiction book.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://sive.rs/n\"\u003e\u003cem\u003eHell Yeah or No\u003c/em\u003e\u003c/a\u003e by Derek Sivers\u003cbr\u003eModern advice and wisdom.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/205363955-meditations-for-mortals?from_search=true\u0026amp;from_srp=true\u0026amp;qid=1XNSxQpk3k\u0026amp;rank=1\"\u003e\u003cem\u003eMediation for Mortals\u003c/em\u003e\u003c/a\u003e by Oliver Burkeman\u003cbr\u003eForced me to rethink parts of my life.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/38169.Alas_Babylon\"\u003e\u003cem\u003eAlas, Babylon\u003c/em\u003e\u003c/a\u003e by Pat Frank\u003cbr\u003eMy dad was an English teacher, and this was a favorite of his – and now mine.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/145654483-midnight-on-beacon-street\"\u003e\u003cem\u003eMidnight on Beacon Street\u003c/em\u003e\u003c/a\u003e by Emily Ruth Verona\u003cbr\u003eHorror joy ride.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/42779092-the-chain\"\u003e\u003cem\u003eThe Chain\u003c/em\u003e\u003c/a\u003e by Adrian McKinty\u003cbr\u003eHold on to your butt horror.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://www.goodreads.com/book/show/840.The_Design_of_Everyday_Things\"\u003e\u003cem\u003eThe Design of Everyday Things\u003c/em\u003e\u003c/a\u003e by Donald A. Norman\u003cbr\u003eA great book for software developers that isn’t about software.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n",
      "date_published": "2025-08-11T00:00:00-04:00",
      "id": "https://tyler.io/?p=2748",
      "summary": "An internet friend asked the other day: It appears I have finally rebooted my reading hobby, after years of trying. Feels good. What’s something great you’ve read? Here’s some of my favorites (in no particular order). The Ocean at the End of…",
      "title": "Some Books",
      "url": "https://tyler.io/2025/08/11/some-books/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eI recently moved away from \u003ca href=\"https://dayoneapp.com/\"\u003eDay One\u003c/a\u003e and am now using \u003ca href=\"https://obsidian.md/\"\u003eObsidian\u003c/a\u003e to keep my daily journal. To make that possible, I needed to migrate over a decade’s worth of journal entries into an Obsidian-friendly format.\u003c/p\u003e\n\u003cp\u003eWhen I first started using Day One, \u003ca href=\"/2013/10/journaling/\"\u003eI wrote about it on this blog\u003c/a\u003e and said one of the requirements needed to be\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003e…and stores my data in an open format that I’m confident is future proof and exportable to another system if the need ever arises.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eI’m happy to say that worked out well. I don’t know what I’d do if my 20,000+ entries were locked-up in a proprietary format.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tylerhall/DayOne-Obsidian-Exporter\"\u003eThis Swift script\u003c/a\u003e takes \u003ca href=\"https://dayoneapp.com/guides/tips-and-tutorials/exporting-entries/\"\u003eDay One’s JSON export file\u003c/a\u003e (and media attachments) and converts each entry into a YAML + Markdown file that is friendly to Markdown editors like Obsidian.\u003c/p\u003e\n\u003cp\u003eEntries are sorted into folders based on their date with support for multiple entries per day. Media attachments are saved alongside the Markdown files as inline attachments.\u003c/p\u003e\n\u003cp\u003eRunning the script\u003c/p\u003e\n\u003cpre class=\"wp-block-code\"\u003e\u003ccode\u003ed1obsidian \u0026lt;path-to-export.json\u0026gt; \u0026lt;some-output-folder\u0026gt;\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ewill create a directory structure like this:\u003c/p\u003e\n\u003cpre class=\"wp-block-code\"\u003e\u003ccode\u003e/export-folder/\n  /2023/\n  /2024/\n  /2025/\n    /2024-01 - January/\n    /2024-02 - Februrary/\n      /2024-02-01/\n        2024-02-01 - 001.md\n        2024-02-01 - 002.md\n        some-image.jpeg\n        another-image.jpeg\u003c/code\u003e\u003c/pre\u003e\n\u003cfigure class=\"wp-block-image\"\u003e\u003cimg decoding=\"async\" src=\"https://cdn.tyler.io/wp-content/uploads/2025/06/458043133-88023a33-3d05-4b0a-9b7b-7a1b557f71e9-1024x726.png\" alt=\"\"\u003e\u003c/figure\u003e\u003cp\u003eBased on the availabe metadata, each entry’s Markdown file will look similar to:\u003c/p\u003e\n\u003cpre class=\"wp-block-code\"\u003e\u003ccode\u003e---\nuuid: AA7A6A77946547449ED0BBC99349537C\ncreationDate: 2013-02-13T20:38:54Z\ntimeZone: America/Chicago\nlocation:\n  latitude: 37.546\n  longitude: -77.439\n  localityName: Richmond\n  administrativeArea: Virginia\n  country: United States\nweather:\n  conditionsDescription: Cloudy\n  weatherCode: cloudy\n  temperatureCelsius: 3.5\n---\nToday I went for a run and ate a sandwhich.\n\n![](991F17490A0F4A919116C5AB428E6F1E.jpeg)\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIt’s worth noting that this script does not exhaustively migrate all fields that Day One supports — mostly because I couldn’t find a complete listing of all the available fields. It also strips out \u003ccode\u003edayone-moment:/workout\u003c/code\u003e and \u003ccode\u003edayone-moment:/location\u003c/code\u003e in-line references from your entires.\u003c/p\u003e\n\u003cp\u003eAnd in keeping with open source tradition, there are plenty of other export scripts floating around GitHub and the Obsidian forums, but it was easier to hack this together quickly than try and modify someone else’s to match the output I wanted.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/tylerhall/DayOne-Obsidian-Exporter\"\u003eDayOne-Obsidian-Exporter on GitHub\u003c/a\u003e\u003c/p\u003e\n",
      "date_published": "2025-06-23T00:00:00-04:00",
      "id": "https://tyler.io/?p=2712",
      "summary": "I recently moved away from Day One and am now using Obsidian to keep my daily journal. To make that possible, I needed to migrate over a decade’s worth of journal entries into an Obsidian-friendly format. When I first started using Day…",
      "title": "Migrating Day One Journal Entries to Obsidian",
      "url": "https://tyler.io/2025/06/23/migrating-day-one-journal-entries-to-obsidian/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eThe last iOS redesign, \u003ca href=\"https://en.wikipedia.org/wiki/IOS_7\"\u003eiOS 7 in 2013\u003c/a\u003e, laid the foundation for a neutral, nearly agnostic visual language that third-party developers and companies could build their own brand and corporate design on top of. It was such a clean slate that, twelve years later, most major apps look similar — if not identical — between their iOS and Android counterparts. Ignoring platform exclusives, most apps eschew Apple and Android’s branding in favor of their own.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://en.wikipedia.org/wiki/Liquid_Glass\"\u003eLiquid Glass\u003c/a\u003e, in Apple’s 2026 operating systems, feels like an attempt to reassert control over third-party app branding — forcing others to become a subset of the larger iOS brand and look and feel.\u003c/p\u003e\n\u003cp\u003eIt also strikes me as a defense against the continued growth of cross-platform frameworks by furthering the distance between what’s a “real” iOS app versus a cross-platform app — or even against apps that try to meet in the middle of both platforms design-wise. It will be more challenging to build an app that feels at home on iOS with limited development and design budgets.\u003c/p\u003e\n\u003cp\u003ePut another way: three days after the WWDC keynote, Liquid Glass feels just as much a strategic business move as it does a design solution \u003cdel\u003ein search of a problem\u003c/del\u003e. (I’m striking out that last phrase from my original post. It was unintentionally more harsh than I meant it to be.)\u003c/p\u003e\n\u003cp\u003e(\u003ca href=\"https://en.wikipedia.org/wiki/All_your_base_are_belong_to_us\"\u003eFor my younger readers\u003c/a\u003e.)\u003c/p\u003e\n",
      "date_published": "2025-06-12T00:00:00-04:00",
      "id": "https://tyler.io/?p=2706",
      "summary": "The last iOS redesign, iOS 7 in 2013, laid the foundation for a neutral, nearly agnostic visual language that third-party developers and companies could build their own brand and corporate design on top of. It was such a clean slate that, twelve…",
      "title": "All Your Brand Are Belong To Us",
      "url": "https://tyler.io/2025/06/12/all-your-brand-are-belong-to-us/"
    },
    {
      "authors": [
        {
          "name": "tyler"
        }
      ],
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://minifeed.net/\"\u003eminifeed\u003c/a\u003e, and it has quickly become one of my favorite things on the internet.\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003e\u003cstrong\u003eMinifeed\u003c/strong\u003e is a curated blog reader and search engine. We collect humans-written blogs to make them discoverable and searchable.\u003c/p\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eOnce, maybe twice a day, I load the homepage and browse through the latest posts from real blogs written by real humans. I almost always find something surprising, delightful, weird, or just plain fun to read. Even better, I come away with a new blogger to follow.\u003c/p\u003e\n\u003cp\u003eFrom the minifeed \u003ca href=\"https://minifeed.net/about\"\u003eAbout\u003c/a\u003e page, there is a self-imposed deadline to decide if the service is worth maintaining:\u003c/p\u003e\n\u003cblockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"\u003e\n\u003cp\u003eI have been building and using Minifeed since December 2023 (see \u003ca href=\"https://minifeed.net/about/changelog\"\u003echangelog\u003c/a\u003e). I will launch it publicly by the end of 2024, allow paid subscriptions, and keep actively working on it for 1 year (until end of 2025). In December 2025 I will make a public announcement choosing between one of 3 options:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eGiven enough interest and support from users, continue to develop and maintain Minifeed for the long term.\u003c/li\u003e\n\u003cli\u003eGiven little, but not enough interest, run it for as long as the money lasts.\u003c/li\u003e\n\u003cli\u003eGiven no interest, shut it down and allow users to download all their data in a simple, usable format.\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003c/blockquote\u003e\n\u003cp\u003eI sure hope they start charging soon. I’d love to see the service last.\u003c/p\u003e\n",
      "date_published": "2025-01-14T00:00:00-05:00",
      "id": "https://tyler.io/?p=2574",
      "summary": "I recently discovered minifeed, and it has quickly become one of my favorite things on the internet. Once, maybe twice a day, I load the homepage and browse through the latest posts from real blogs written by real humans. I almost always find something surprising, delightful, weird, or just plain fun to read. Even better, I come away with a new blogger to follow.",
      "title": "minifeed",
      "url": "https://tyler.io/2025/01/14/minifeed/"
    }
  ],
  "language": "en-US",
  "title": "tyler.io",
  "version": "https://jsonfeed.org/version/1.1"
}