{"id":52025,"date":"2026-05-27T14:51:23","date_gmt":"2026-05-27T18:51:23","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=52025"},"modified":"2026-05-27T14:51:23","modified_gmt":"2026-05-27T18:51:23","slug":"iris-1-0","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2026\/05\/27\/iris-1-0\/","title":{"rendered":"Iris 1.0"},"content":{"rendered":"<p><a href=\"https:\/\/tyler.io\/2026\/05\/27\/fossils-in-the-ground\/\">Tyler Hall<\/a> (<a href=\"https:\/\/social.lol\/@tylerhall\/116647146680865230\">Mastodon<\/a>):<\/p>\n<blockquote cite=\"https:\/\/tyler.io\/2026\/05\/27\/fossils-in-the-ground\/\">\n<p>The first version, from November 2020, was called AntiPhoto. The name was a <em>mood<\/em>. I had tens of thousands of photos and videos scattered across drives and old phone backups, and Apple Photos wanted me to live inside <em>its<\/em> library, on <em>its<\/em> terms. I didn&rsquo;t want a walled garden. I wanted something that could point at a messy folder and just make sense of it.<\/p>\n<p>[&#8230;]<\/p>\n<p>For 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 <em>scrolling<\/em>. A photo library isn&rsquo;t 200 items, it&rsquo;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 &ldquo;100k Spinning Scroll&rdquo; from April 2022 &mdash; the day a library of <strong>101,706 items<\/strong> finally scrolled without choking &mdash; and I remember it feeling like a bigger win than any feature. But even today, Iris has performance hiccups &mdash; especially around complex searches and truly massive libraries. But if I waited to solve every bug, I&rsquo;d never ship.<\/p>\n<p>[&#8230;]<\/p>\n<p>I set out to build an anti-Photos <em>utility<\/em> &mdash; 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 &ldquo;16 items on this day,&rdquo; drops a pin on the map, and lists the people in the frame with their ages quietly calculated from their birthdays.<\/p>\n<\/blockquote>\n<p>It&rsquo;s now <a href=\"https:\/\/irisphotos.app\">available<\/a>:<\/p>\n<blockquote cite=\"https:\/\/irisphotos.app\"><p>Somewhere along the way, &ldquo;your library&rdquo; turned into &ldquo;an account someone else owns.&rdquo; That&rsquo;s not the future we want. Iris reads from the folders or Apple Photos library you already have, builds a fast and intelligent library on your Mac, and leaves the originals exactly where you put them. No cloud. No accounts. Your memories are yours.<\/p><\/blockquote>\n<p>$14, no subscription, either direct or from the Mac App Store.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2026\/05\/25\/iris-rejected-from-the-app-store\/\">Iris Rejected From the App Store<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2026\/04\/24\/i-regret-the-blood-pact-i-have-made-with-icloud-photos\/\">I Regret the Blood Pact I Have Made With iCloud Photos<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Tyler Hall (Mastodon): The first version, from November 2020, was called AntiPhoto. The name was a mood. I had tens of thousands of photos and videos scattered across drives and old phone backups, and Apple Photos wanted me to live inside its library, on its terms. I didn&rsquo;t want a walled garden. I wanted something [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2026-05-27T18:51:27Z","apple_news_api_id":"6f5ee954-51e6-4871-9c0a-4a073771e60c","apple_news_api_modified_at":"2026-05-27T18:51:27Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/Ab17pVFHmSHGcCkoHN3HmDA","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[2922,30,32,2742,153],"class_list":["post-52025","post","type-post","status-publish","format-standard","hentry","category-technology","tag-iris","tag-mac","tag-macapp","tag-macos-tahoe-26","tag-photography"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/52025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=52025"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/52025\/revisions"}],"predecessor-version":[{"id":52026,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/52025\/revisions\/52026"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=52025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=52025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=52025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}