<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>James Futhey</title>
  <link>/</link>
  <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
  <description>Indie founder in Taipei. Building Meeting Room 365.</description>
  <language>en</language>
  <lastBuildDate>Sun, 09 Aug 2026 16:00:00 GMT</lastBuildDate>
  <item>
    <title>Testing from the command line.</title>
    <link>/updates/2026-08-10-f698</link>
    <guid isPermaLink="true">/updates/2026-08-10-f698</guid>
    <pubDate>Sun, 09 Aug 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Testing from the command line.&lt;/p&gt;</description>
    <category>status</category>
  </item>
  <item>
    <title>Shipped a firmware update that lets a room display survive …</title>
    <link>/updates/firmware-dead-router</link>
    <guid isPermaLink="true">/updates/firmware-dead-router</guid>
    <pubDate>Sun, 09 Aug 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Shipped a firmware update that lets a room display survive a dead wifi router for eight hours. Unglamorous work, my favourite kind.&lt;/p&gt;</description>
    <category>status</category>
  </item>
  <item>
    <title>Sunday morning at Dadaocheng wharf, before the heat arrived.</title>
    <link>/photos/dadaocheng-wharf</link>
    <guid isPermaLink="true">/photos/dadaocheng-wharf</guid>
    <pubDate>Fri, 07 Aug 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;img src=&quot;/photos/placeholder-photo.jpg&quot; alt=&quot;Sunday morning at Dadaocheng wharf, before the heat arrived.&quot;&gt;&lt;/p&gt;
&lt;p&gt;Sunday morning at Dadaocheng wharf, before the heat arrived.&lt;/p&gt;</description>
    <category>photo</category>
    <enclosure url="/photos/placeholder-photo.jpg" type="image/jpeg" length="13285"/>
  </item>
  <item>
    <title>Audiolog 041 — hiring your first support person</title>
    <link>/updates/audiolog-041</link>
    <guid isPermaLink="true">/updates/audiolog-041</guid>
    <pubDate>Sun, 02 Aug 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Audiolog 041 — hiring your first support person&lt;/p&gt;</description>
    <category>audio</category>
  </item>
  <item>
    <title>Back in Taipei</title>
    <link>/updates/back-in-taipei</link>
    <guid isPermaLink="true">/updates/back-in-taipei</guid>
    <pubDate>Fri, 31 Jul 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Back in Taipei&lt;/p&gt;</description>
    <category>place</category>
  </item>
  <item>
    <title>Neon Loading Dock</title>
    <link>https://soundcloud.com/james-futhey/sets/latest</link>
    <guid isPermaLink="true">/updates/neon-loading-dock</guid>
    <pubDate>Sun, 26 Jul 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;James Futhey · from the Vaporlight EP&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://soundcloud.com/james-futhey/sets/latest&quot;&gt;https://soundcloud.com/james-futhey/sets/latest&lt;/a&gt;&lt;/p&gt;</description>
    <category>track</category>
  </item>
  <item>
    <title>Six years of running one product solo, and the thing I stil…</title>
    <link>/updates/six-years-solo</link>
    <guid isPermaLink="true">/updates/six-years-solo</guid>
    <pubDate>Tue, 21 Jul 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Six years of running one product solo, and the thing I still get wrong is estimating how long the boring half takes.&lt;/p&gt;</description>
    <category>status</category>
  </item>
  <item>
    <title>Roomstate</title>
    <link>https://www.jamesfuthey.com/things/</link>
    <guid isPermaLink="true">/updates/roomstate</guid>
    <pubDate>Fri, 17 Jul 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;A tiny menu-bar app that shows which meeting rooms are free right now. Built it for myself in a weekend; now on TestFlight.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.jamesfuthey.com/things/&quot;&gt;https://www.jamesfuthey.com/things/&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>Half the year gone. Revenue up, headcount still one, sleep …</title>
    <link>/updates/half-the-year</link>
    <guid isPermaLink="true">/updates/half-the-year</guid>
    <pubDate>Mon, 29 Jun 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Half the year gone. Revenue up, headcount still one, sleep unchanged.&lt;/p&gt;</description>
    <category>status</category>
  </item>
  <item>
    <title>Kyoto, mostly doorways and vending machines.</title>
    <link>/photos/kyoto-doorways</link>
    <guid isPermaLink="true">/photos/kyoto-doorways</guid>
    <pubDate>Tue, 23 Jun 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Kyoto, mostly doorways and vending machines.&lt;/p&gt;</description>
    <category>photo</category>
  </item>
  <item>
    <title>Audiolog 040 — what I would do differently</title>
    <link>/updates/audiolog-040</link>
    <guid isPermaLink="true">/updates/audiolog-040</guid>
    <pubDate>Tue, 16 Jun 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Audiolog 040 — what I would do differently&lt;/p&gt;</description>
    <category>audio</category>
  </item>
  <item>
    <title>Two weeks in Kyoto</title>
    <link>/updates/two-weeks-in-kyoto</link>
    <guid isPermaLink="true">/updates/two-weeks-in-kyoto</guid>
    <pubDate>Thu, 11 Jun 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Two weeks in Kyoto&lt;/p&gt;</description>
    <category>place</category>
  </item>
  <item>
    <title>Waitlist SaaS: Good Idea, or Bad?</title>
    <link>/posts/waitlist-saas-good-idea-or-bad</link>
    <guid isPermaLink="true">/posts/waitlist-saas-good-idea-or-bad</guid>
    <pubDate>Fri, 24 Apr 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/5144806630cb0a6525012d7be637ef35.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;What is a Waitlist SaaS?&lt;/h2&gt;
&lt;p&gt;A Waitlist SaaS is a web application designed to simplify the process for founders to add a waitlist sign-up to their product launch strategy. It sounds appealing, but is it really a good idea?&lt;/p&gt;
&lt;h2&gt;Why It Might Not Be a Good Idea&lt;/h2&gt;
&lt;h3&gt;Background&lt;/h3&gt;
&lt;p&gt;The concept of using a waitlist as a launch strategy was popularized by companies like Robinhood and Clubhouse. These companies created hype around their products by making sign-ups initially impossible, allowing only a waitlist. Users could invite friends or share on social media to move up the list. This strategy became popular for SaaS launches following these examples.&lt;/p&gt;
&lt;h3&gt;The Reality Behind Successful Launches&lt;/h3&gt;
&lt;p&gt;However, the success of Robinhood and Clubhouse wasn&amp;#39;t solely due to their waitlists. Their real strategy was leveraging FOMO (Fear of Missing Out) and hype. They over-promised on their products, creating a buzz that compelled users to share the product to move up the waitlist. The waitlist added friction to the sign-up process, which could actually hinder conversion rates.&lt;/p&gt;
&lt;h3&gt;Conversion Rates and Hype&lt;/h3&gt;
&lt;p&gt;Consider this: 100% of visitors willing to sign up for a waitlist would likely have signed up for the product immediately if it were available. The waitlist conversion rates—whether a week, a month, or two months later—cannot exceed 100%. Would removing the waitlist have slowed down the hype and FOMO driving the marketing campaign? Possibly.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In conclusion, launching a Waitlist SaaS in 2026 may not be a wise idea, especially for solo founders or small teams. While hype and FOMO can be effective launch strategies, they require a level of execution typically found in more experienced teams. A SaaS that facilitates adding a waitlist sign-up process is not likely to be a mass-market strategy that inexperienced or small teams can successfully implement. These elements are probably the least challenging parts of a more complex marketing strategy that a skilled marketing team might employ.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/5144806630cb0a6525012d7be637ef35.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Bluesky Stats</title>
    <link>https://www.jamesfuthey.com/bsky/</link>
    <guid isPermaLink="true">/projects/bluesky-stats</guid>
    <pubDate>Wed, 14 Jan 2026 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Network stats for Bluesky.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.jamesfuthey.com/bsky/&quot;&gt;https://www.jamesfuthey.com/bsky/&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>Pokemon Bluesky</title>
    <link>https://pmn.blue/</link>
    <guid isPermaLink="true">/projects/pokemon-bluesky</guid>
    <pubDate>Sat, 01 Nov 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Plays Pokémon, on Bluesky.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pmn.blue/&quot;&gt;https://pmn.blue/&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>Cloudflare Calls Client</title>
    <link>https://cloudflarecalls.jamesfuthey.com</link>
    <guid isPermaLink="true">/projects/cloudflare-calls-client</guid>
    <pubDate>Tue, 09 Sep 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;A client for Cloudflare Calls.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cloudflarecalls.jamesfuthey.com&quot;&gt;https://cloudflarecalls.jamesfuthey.com&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>iMessage ChatGPT</title>
    <link>https://l.imsg.bot/heygpt</link>
    <guid isPermaLink="true">/projects/imessage-chatgpt</guid>
    <pubDate>Sat, 31 May 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;ChatGPT, over iMessage.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://l.imsg.bot/heygpt&quot;&gt;https://l.imsg.bot/heygpt&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>HeyGPT</title>
    <link>https://heyg.pt/</link>
    <guid isPermaLink="true">/projects/heygpt</guid>
    <pubDate>Sat, 19 Apr 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;A faster way to talk to GPT.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://heyg.pt/&quot;&gt;https://heyg.pt/&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>bluesky-oauth-kit</title>
    <link>https://www.npmjs.com/package/bluesky-oauth-kit</link>
    <guid isPermaLink="true">/projects/bluesky-oauth-kit</guid>
    <pubDate>Tue, 04 Mar 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Drop-in Bluesky OAuth for Node and the browser — migrating apps off plaintext passwords.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.npmjs.com/package/bluesky-oauth-kit&quot;&gt;https://www.npmjs.com/package/bluesky-oauth-kit&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>Groovejunky</title>
    <link>https://www.groovejunky.com</link>
    <guid isPermaLink="true">/projects/groovejunky</guid>
    <pubDate>Thu, 13 Feb 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;Music, mine and otherwise.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.groovejunky.com&quot;&gt;https://www.groovejunky.com&lt;/a&gt;&lt;/p&gt;</description>
    <category>project</category>
  </item>
  <item>
    <title>Blogging, but with text again?</title>
    <link>/posts/blogging-but-with-text-again</link>
    <guid isPermaLink="true">/posts/blogging-but-with-text-again</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/aa9db4b41f7d9b0dc36947ae253aa53b.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey there, thanks for tuning in. I thought I&amp;#39;d share a little bit about what I&amp;#39;ve been working on for the past few weeks.&lt;/p&gt;
&lt;h2&gt;Project Overview&lt;/h2&gt;
&lt;p&gt;For &lt;strong&gt;Indie.am&lt;/strong&gt;, I&amp;#39;ve been developing a blog template that allows you to publish a nicely formatted static blog. This blog is automatically generated from your audio logs recorded in the app. You simply post as you normally do, and those posts are transformed into a well-formatted blog that you can use as your primary blog.&lt;/p&gt;
&lt;h2&gt;Key Features&lt;/h2&gt;
&lt;p&gt;This project involves a few key elements:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Automatic Generation&lt;/strong&gt;: Your audio logs are automatically converted into blog posts.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Editing and Customization&lt;/strong&gt;: After generation, you&amp;#39;ll need the ability to edit and add photos to these blog posts.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;User Interface Considerations&lt;/h2&gt;
&lt;p&gt;I&amp;#39;m still determining whether the editing interface should be optimized for desktop or remain within the app. Since I&amp;#39;ll be using this for my personal blog, I&amp;#39;ll experiment to see what works best for me. Afterward, I&amp;#39;ll share it with others to gather feedback and ensure it meets broader needs.&lt;/p&gt;
&lt;p&gt;Stay tuned for more updates as I continue to refine this exciting feature!&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/aa9db4b41f7d9b0dc36947ae253aa53b.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Did the AI bubble just Burst?</title>
    <link>/posts/did-the-ai-bubble-just-burst</link>
    <guid isPermaLink="true">/posts/did-the-ai-bubble-just-burst</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/d616945541dbb1002928db6ccab3269b.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey, so the question on everybody&amp;#39;s mind today is, did the AI bubble just pop? I think no. The stock market thinks yes. Let&amp;#39;s explore why I believe that perspective is a bit short-sighted and doesn&amp;#39;t consider the bigger picture.&lt;/p&gt;
&lt;h2&gt;The Expanding Role of AI&lt;/h2&gt;
&lt;p&gt;Here&amp;#39;s how I use AI in 2025 for tasks that weren&amp;#39;t possible just 24 months ago:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Writing and Editing&lt;/strong&gt;: AI helps me write and edit blog posts.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Creative Arts&lt;/strong&gt;: I use it to create music and generate fan art.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Content Summarization&lt;/strong&gt;: It summarizes YouTube videos for me.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Transcription&lt;/strong&gt;: AI handles a lot of audio and video transcription.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Language Learning&lt;/strong&gt;: I use AI for learning new languages.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Search Replacement&lt;/strong&gt;: In many cases, AI replaces traditional Google searches.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Database Queries&lt;/strong&gt;: It assists in writing database queries, especially those not in SQL.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Calculations and Problem Solving&lt;/strong&gt;: AI helps with back-of-the-envelope calculations and thinking through problems.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Translation and Coding&lt;/strong&gt;: I use it to translate manga and even to code and build apps, just like this one.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Two years ago, these applications of AI were not possible because the models simply didn&amp;#39;t exist. We&amp;#39;re only a couple of years into this transformation, and the potential applications of AI are still largely untapped.&lt;/p&gt;
&lt;h2&gt;Limitations and Future Potential&lt;/h2&gt;
&lt;p&gt;Currently, AI can&amp;#39;t handle tasks like doing taxes or providing legal advice. The training data exists—case law is just a collection of books that someone spends years understanding. While AI might not take over the legal industry, it could make knowledge of tax law or other legal fields more accessible through well-trained models, but we&amp;#39;re not there yet.&lt;/p&gt;
&lt;h2&gt;Demand for AI Remains Strong&lt;/h2&gt;
&lt;p&gt;The demand for AI hasn&amp;#39;t changed. Despite headlines claiming that a model was trained for $6 million to compete with OpenAI&amp;#39;s cutting-edge model, I believe that&amp;#39;s mostly propaganda. Significant advancements include activating fewer parameters per token and using a mixture of experts. In the coming days, OpenAI is expected to disclose how GPT-4 Turbo was made cheaper and more resource-efficient than previous versions.&lt;/p&gt;
&lt;h2&gt;Infrastructure Challenges&lt;/h2&gt;
&lt;p&gt;Building a data center to run these models still requires hundreds of millions of dollars. It&amp;#39;s not like new models will suddenly run on different chips. They will continue to operate on H100s in data centers that require significant electricity and human resources to build and maintain. We are still not meeting the demand for AI infrastructure, as more people want to use tools like Stable Diffusion or ChatGPT than there is capacity for.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The assertion that AI demand has decreased is misleading. There are still new applications for AI models, and the infrastructure to support them is continually evolving. The claim that a model was trained for $6 million on half a billion dollars worth of GPUs is part of a larger story about the ongoing development and deployment of AI technologies.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/d616945541dbb1002928db6ccab3269b.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>How does Google Scrape library data from Itunes?</title>
    <link>/posts/how-does-google-scrape-library-data-from-itunes</link>
    <guid isPermaLink="true">/posts/how-does-google-scrape-library-data-from-itunes</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/aa31eaf5514b7641cb9698438a59a2cf.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hello! Today, I want to discuss something intriguing that caught my attention a couple of months ago and has been on my mind ever since. It appears that Google has found a way to scrape data from an iTunes music library on the same device through one of their apps. However, I&amp;#39;m uncertain which app is responsible, and it doesn&amp;#39;t seem to involve any information sharing or consensual data sharing with Google.&lt;/p&gt;
&lt;h2&gt;The Mystery of Unrelated Music Recommendations&lt;/h2&gt;
&lt;p&gt;I have a specific set of music, primarily tracks I copied into my iTunes music library years ago, which are now part of my Apple Music library. These tracks have never left the app, and I don&amp;#39;t search for these artists or songs on YouTube. Interestingly, this niche music from my library began appearing in YouTube notifications and recommendations around November or December, seemingly out of nowhere.&lt;/p&gt;
&lt;h2&gt;Unexpected YouTube Music Suggestions&lt;/h2&gt;
&lt;p&gt;YouTube started suggesting, &amp;quot;Hey, you don&amp;#39;t listen to music on YouTube. Why don&amp;#39;t you try YouTube Music? We already have all of your music from your library. You could switch right now and start listening.&amp;quot; This was surprising because my music was siloed in iTunes and Apple Music. I&amp;#39;m unaware of how Google could access it without some OAuth mechanism.&lt;/p&gt;
&lt;h2&gt;Potential Data Access Methods&lt;/h2&gt;
&lt;p&gt;In iOS app development, there&amp;#39;s a mechanism to add a &amp;quot;Sign in with Apple Music&amp;quot; button, allowing third-party apps to access data. However, it seems Google has found a way to scrape song names and artist names from the entire iTunes music library, possibly through one of their installed apps on my device. This data appears to be used to promote YouTube Music, a competitor app.&lt;/p&gt;
&lt;h2&gt;Apple&amp;#39;s Potential Concerns&lt;/h2&gt;
&lt;p&gt;It&amp;#39;s puzzling because one would assume Apple would go to great lengths to prevent a competitor app from scraping this data. Presumably, the only use for this data is to advertise within Google apps, encouraging users to migrate from Apple Music to YouTube Music. It&amp;#39;s surprising that Google has managed to achieve this, despite Apple&amp;#39;s likely efforts to prevent it.&lt;/p&gt;
&lt;h2&gt;Distinguishing from Common Misconceptions&lt;/h2&gt;
&lt;p&gt;Before jumping to conclusions, I&amp;#39;ve thought about this extensively. This isn&amp;#39;t like those instances where people Google something and then see related ads elsewhere, not understanding how tracking works. I&amp;#39;m aware that phones aren&amp;#39;t spying on us in that manner. While this situation might sound similar, I&amp;#39;ve considered it for months and can&amp;#39;t think of any way Google could access this information except through an app installed on the same device.&lt;/p&gt;
&lt;h2&gt;Possible Methods and Speculations&lt;/h2&gt;
&lt;p&gt;Perhaps it&amp;#39;s easier on macOS, and maybe Google used the Chrome binary to read my iTunes music library, which would be even more surprising. Whatever method they employed to obtain this data is likely interesting, and I imagine there are some Apple developers sending angry emails to Google about not adhering to developer terms.&lt;/p&gt;
&lt;p&gt;In conclusion, I find this situation fascinating and worth pondering. How Google managed to access this data remains a mystery, but it certainly raises questions about data privacy and app permissions.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/aa31eaf5514b7641cb9698438a59a2cf.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie.am Updates: RSS fixes, social sharing options</title>
    <link>/posts/indie-am-updates-rss-fixes-social-sharing-options</link>
    <guid isPermaLink="true">/posts/indie-am-updates-rss-fixes-social-sharing-options</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/3f4ef213e7b4d68fba0f4327431c2922.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;Recent Fixes and Improvements&lt;/h2&gt;
&lt;h3&gt;RSS Feed Fixes&lt;/h3&gt;
&lt;p&gt;I&amp;#39;ve just published some fixes to the RSS feed. Years ago, I hardcoded 2021 as the year, which caused issues with all subsequent feeds. I&amp;#39;ve now corrected this mistake. Additionally, I&amp;#39;m using ChatGPT to format transcripts into blog posts, converting Markdown to HTML. This ensures that the content is nicely formatted when opened in podcast apps.&lt;/p&gt;
&lt;h3&gt;Custom Component for Podcast Apps&lt;/h3&gt;
&lt;p&gt;I&amp;#39;ve also worked on a custom component to integrate the old Podlog. This feature allows users to click an RSS icon in the app, redirecting them to their chosen podcast app based on their platform. It&amp;#39;s a small but significant fix.&lt;/p&gt;
&lt;h2&gt;Background Work&lt;/h2&gt;
&lt;h3&gt;Transcriptions with Whisper&lt;/h3&gt;
&lt;p&gt;Transcriptions are now handled by Whisper, which provides high-quality results. However, it&amp;#39;s resource-intensive on the server. I&amp;#39;ve implemented a system that queues jobs as users browse older Indie.am podcasts, re-transcribing them with Whisper for more accurate timestamps, especially for subtitles.&lt;/p&gt;
&lt;h3&gt;Video Generation&lt;/h3&gt;
&lt;p&gt;I&amp;#39;ve reworked video generation but haven&amp;#39;t integrated it into the apps yet. This feature will be complex, involving 15 video templates. Users will be able to:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Add a share button&lt;/li&gt;&lt;li&gt;Create a video&lt;/li&gt;&lt;li&gt;Choose a template from the gallery&lt;/li&gt;&lt;li&gt;Customize options&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The video generation process will take about 10 to 20 seconds. If you exit, it will save back to the item and notify you once complete. This complex UI feature is still in development.&lt;/p&gt;
&lt;h2&gt;Social Media Sharing Enhancements&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve made several improvements around social media sharing, including meta tags and adding a share button. This is essential for sharing content to other social media feeds. You can embed it in Twitter (formerly known as X), but Blue Sky doesn&amp;#39;t yet support audio posts. You can link to them, but playback issues occur due to their in-app browser.&lt;/p&gt;
&lt;h3&gt;Blue Sky Playback Issue&lt;/h3&gt;
&lt;p&gt;There&amp;#39;s a peculiar issue with Blue Sky&amp;#39;s in-app browser muting audio by default. If I share an audio post to Blue Sky and launch the podcast app via their browser, I can then return and play the audio file. It&amp;#39;s a strange behavior, and I&amp;#39;m investigating why this happens.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve accomplished a lot and thought it would be fun to share these updates. I&amp;#39;m also testing out the long recording feature. I&amp;#39;ll stop here and see how this turns out.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/3f4ef213e7b4d68fba0f4327431c2922.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie Maker Update</title>
    <link>/posts/indie-maker-update</link>
    <guid isPermaLink="true">/posts/indie-maker-update</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/cdfe4c1225870a896f31b2502aa1795d.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;All right, this is probably my last Indie Maker update specifically for Indie.am. This will be my Indie Maker update in general then.&lt;/p&gt;
&lt;h2&gt;Completion of Indie.am Features&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve basically completed all the features I wanted to complete for Indie.am. Most of this is around GPT and video generation, and those things are working fairly well. I&amp;#39;ll continue to use the app and make little tweaks, but I&amp;#39;m pretty happy with where it is. This is more of one of those baseline things that I&amp;#39;m really happy that it exists again. I don&amp;#39;t have to go through TestFlight, and I want it just so I can publish my own audio blog and see how it turns out.&lt;/p&gt;
&lt;h2&gt;New Creative Pursuits&lt;/h2&gt;
&lt;p&gt;Lately, I&amp;#39;ve been focusing on a different app to stream music and working on some different creative pursuits. I&amp;#39;ve been writing music, recording, and streaming a couple of games on YouTube, which has been a lot of fun. I&amp;#39;m trying to get in the mindset of creating content in different mediums, playing around with it, and seeing what I can learn from that. I&amp;#39;m having a lot of fun.&lt;/p&gt;
&lt;h2&gt;Development Insights&lt;/h2&gt;
&lt;p&gt;I&amp;#39;ve got like four or five of these Capacitor Framework 7 Vue apps, and each one I build feels a little bit more native and polished. I&amp;#39;m going back and forth between them, trying to re-implement the things I&amp;#39;ve learned from one app to the other and solving some issues.&lt;/p&gt;
&lt;p&gt;For the PWA, I basically have to swap out Framework 7&amp;#39;s Vue router for Vue Router to use Vue with Framework 7 in a way that works and feels good. I had to figure out how to get all the animations and swipe back functionality to work. I also usually swap out Framework 7 Store for Pinia and have moved away from any Capacitor APIs unless absolutely necessary. This allows me to build the PWA straight from Vue and only use Capacitor where I need the extra functionality. Building a PWA in Vue with Framework 7 versus a Capacitor build of that PWA results in a completely different set of little works to the app.&lt;/p&gt;
&lt;h2&gt;Future Plans&lt;/h2&gt;
&lt;p&gt;I need to go back and update the Mastodon client that I created. I want to get short video working for when TikTok shuts down in a couple of days. I have a TikTok-style video feed inside of that app, but I need to swap out Vue Router for a Framework 7 Router to fix a few bugs and glitches. Once that&amp;#39;s done, I can put it back up.&lt;/p&gt;
&lt;p&gt;Other than that, I&amp;#39;ve mostly been focusing on music right now. Maybe I&amp;#39;ll share more of that in the next few days, but as far as my Indie Maker update goes, that&amp;#39;s pretty much it.&lt;/p&gt;
&lt;p&gt;Thanks for listening.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/cdfe4c1225870a896f31b2502aa1795d.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Indie Maker Update: Create Sharable Videos!</title>
    <link>/posts/indie-maker-update-create-sharable-videos</link>
    <guid isPermaLink="true">/posts/indie-maker-update-create-sharable-videos</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/b3a28144abb1c40abbf8cc35f76dd0cd.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s my update for Wednesday on the progress with Endmaker.&lt;/p&gt;
&lt;h2&gt;Polishing the App&lt;/h2&gt;
&lt;p&gt;I spent a couple of days focusing on refining the app. This involved:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Fixing various bugs&lt;/li&gt;&lt;li&gt;Adjusting visual elements&lt;/li&gt;&lt;li&gt;Correcting alignment and button positions&lt;/li&gt;&lt;li&gt;Addressing minor issues noticed during app usage&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Share Video Feature&lt;/h2&gt;
&lt;p&gt;I developed an MVP version of the &lt;strong&gt;Share Video&lt;/strong&gt; feature. This feature allows users to:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Hit the share button.&lt;/li&gt;&lt;li&gt;Create a video from a template.&lt;/li&gt;&lt;li&gt;Preview a list of templates.&lt;/li&gt;&lt;li&gt;Generate a video from the transcript that matches the selected template.&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Currently, I&amp;#39;ve added six out of the first 15 templates. I found the process a bit exhausting, so I paused to polish the rest of the feature. I plan to add more templates later, which will keep me busy and I&amp;#39;m excited to see how this feature evolves.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/b3a28144abb1c40abbf8cc35f76dd0cd.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>New feature: Logo Idents!</title>
    <link>/posts/new-feature-logo-idents</link>
    <guid isPermaLink="true">/posts/new-feature-logo-idents</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/f42d5378b529befd96ca27a5092e18f6.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hey there, welcome back. I&amp;#39;m James, and this is my indie maker update for Saturday.&lt;/p&gt;
&lt;h2&gt;New Audio File Format&lt;/h2&gt;
&lt;p&gt;What you&amp;#39;re hearing is a new audio file format. Optionally, you can add a logo identity to the beginning of your personal podcast updates. This addition makes it sound a little bit more professional, a little bit more like a real podcast. However, right now, it&amp;#39;s limited to one very generic, very inoffensive logo identity.&lt;/p&gt;
&lt;h2&gt;Customization and Ease of Use&lt;/h2&gt;
&lt;p&gt;I handpicked and edited the logo to be short and very easy to add to any spoken audio track without requiring many tweaks to the way you record your audio. It works best if you start your audio in a certain way, like &amp;quot;Hey, welcome back&amp;quot; or &amp;quot;Hey, I&amp;#39;m James,&amp;quot; instead of the more typical, boring way I normally start my audio recordings.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Hopefully, if this test goes well, this will be the track that is published and introduces the new feature. Thanks for listening.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/f42d5378b529befd96ca27a5092e18f6.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Social Media broke Society. Then Elon broke Social Media. Now, There’s AI.</title>
    <link>/posts/social-media-broke-society-then-elon-broke-social-media-now-</link>
    <guid isPermaLink="true">/posts/social-media-broke-society-then-elon-broke-social-media-now-</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/68037cb7abc2ec3b94eed04b07f844da.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;h2&gt;The Erosion of Social Connections&lt;/h2&gt;
&lt;p&gt;Roughly, here&amp;#39;s what I think happened: social media broke society. There&amp;#39;s a statistic that&amp;#39;s often tracked—it&amp;#39;s the number of close friends the average adult has. In 1990, this number was around 13, but it has declined every decade. By 2020, it was down to something like one to three, which is quite alarming.&lt;/p&gt;
&lt;h2&gt;The Shift to Online Interactions&lt;/h2&gt;
&lt;p&gt;I believe what happened is that we replaced real-life social interactions with online social media interactions. These parasocial interactions with people online—whom we never actually meet or interact with, like watching YouTube videos—became even more prevalent during and after lockdown.&lt;/p&gt;
&lt;h2&gt;The Impact of Major Events&lt;/h2&gt;
&lt;p&gt;Elon Musk&amp;#39;s influence on social media and the impact of elections further deteriorated the quality of these platforms. Twitter, for instance, used to be tolerable, but now it&amp;#39;s filled with bots and garbage. The rise of AI is likely to exacerbate this issue. Not enough people have migrated to other platforms like Blue Sky.&lt;/p&gt;
&lt;h2&gt;The Rise of AI and Its Consequences&lt;/h2&gt;
&lt;p&gt;My theory is that AI models like GPT and LLaMA are becoming increasingly affordable. As they get cheaper, any platform based on text content will become completely unreliable. Websites where you scroll through a feed of text posts will turn into a mess, reminiscent of the early 2000s when bots would flood blog comment sections with spam.&lt;/p&gt;
&lt;h2&gt;The Future of Content Platforms&lt;/h2&gt;
&lt;p&gt;I think we&amp;#39;re about to experience this bot takeover on any platform that gains traction and relies on text content. It will be more bots than humans. The only way to ensure that a real person is behind a post or piece of content might be to change the format to audio or video. Text and image content, which AI can easily generate, will become so cluttered with garbage that it won&amp;#39;t be worth your time.&lt;/p&gt;
&lt;h2&gt;The Decline of Text-Based Platforms&lt;/h2&gt;
&lt;p&gt;Platforms that rely on text and image content will suffer. You&amp;#39;ll open your feed, and it will be filled with garbage, leading to frustration and eventual abandonment. Platforms like Twitter and Reddit might struggle. Reddit has some human curation through upvotes and downvotes, but if comments become 80% bot-generated, the system will collapse. Text-based platforms like Twitter, Blue Sky, and Mastodon might not survive once AI becomes ubiquitous.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/68037cb7abc2ec3b94eed04b07f844da.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Streaming Apps get zero credit for success</title>
    <link>/posts/streaming-apps-get-zero-credit-for-success</link>
    <guid isPermaLink="true">/posts/streaming-apps-get-zero-credit-for-success</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/7131d0b44667333eb624eaafe094f89f.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been working on a new app, a Progressive Web App (PWA) for music streaming. Despite its incredible performance and how much I enjoy using it daily, I hesitate to release it. Why? It&amp;#39;s due to a counterintuitive principle regarding how users perceive utility apps.&lt;/p&gt;
&lt;h2&gt;User Perception of Utility Apps&lt;/h2&gt;
&lt;p&gt;From my experience at HBO, I&amp;#39;ve learned that certain types of apps are expected to function flawlessly, yet users don&amp;#39;t necessarily care about the app itself. These apps often serve as conduits to other content, causing the app to fade into the background. Unlike video games or entertainment media, users don&amp;#39;t love the app; they love what it delivers. Consequently, they rarely leave reviews or provide feedback. In essence, you receive zero points for a perfect experience.&lt;/p&gt;
&lt;h2&gt;The Negative-Sum Game of App Reviews&lt;/h2&gt;
&lt;p&gt;The app review landscape is a negative-sum game. On the App Store, I built a tool to aggregate reviews for our app at HBO and analyzed competitor apps. A common pattern emerged: users don&amp;#39;t flood the platform with five-star reviews for a seamless experience. Instead, they leave one-star reviews for trivial negative experiences. These are users who have paid for the app for years, use it frequently, and generally have a great experience. Yet, a minor issue can provoke them to leave scathing reviews.&lt;/p&gt;
&lt;p&gt;For instance, a user might complain about a subtitle color being slightly off-white, despite the app&amp;#39;s overall success. As a developer, it can be baffling to see such minor issues result in negative reviews, especially considering the challenges overcome to make the app work.&lt;/p&gt;
&lt;h2&gt;The Reality of Utility Apps&lt;/h2&gt;
&lt;p&gt;When building a utility app or one that serves as a content delivery conduit, this is the reality you face. Users expect perfection because they&amp;#39;ve paid for it. You get zero points for excelling 29 days of the month; a single negative experience can render your app worthless in their eyes. The phrase &amp;quot;I&amp;#39;d give this app zero stars if I could&amp;quot; is a common refrain in reviews, often for seemingly insignificant problems.&lt;/p&gt;
&lt;p&gt;These issues, while minor to most, are crucial to a small subset of users. Even if you assure them that a fix is underway, satisfaction isn&amp;#39;t guaranteed. The app review scale feels like it ranges from zero to negative five.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;This is why, despite building a music streaming app that I might use for years, I hesitate to release it widely. It may remain a personal project shared with only a few dozen people. I thought I&amp;#39;d share this insight into the challenges of releasing a utility app.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/7131d0b44667333eb624eaafe094f89f.mp3" type="audio/mpeg" length="0"/>
  </item>
  <item>
    <title>Tariffs and inflation</title>
    <link>/posts/tariffs-and-inflation</link>
    <guid isPermaLink="true">/posts/tariffs-and-inflation</guid>
    <pubDate>Sun, 05 Jan 2025 16:00:00 GMT</pubDate>
    <description>&lt;p&gt;&lt;audio controls src=&quot;https://api.indie.am/audiofile/james/375e093fa4af54feee469616cfc88d78.mp3&quot;&gt;&lt;/audio&gt;&lt;/p&gt;
&lt;p&gt;Hello, welcome to my thoughts on tariffs and inflation. Here&amp;#39;s a bit of background: I sell a digital product online and have a significant number of Canadian and European customers, along with others around the world. My business extends well beyond the United States.&lt;/p&gt;
&lt;h2&gt;The Impact of Tariffs&lt;/h2&gt;
&lt;p&gt;When the idea of tariffs was introduced, I immediately started researching. I realized I needed to read the USMCA and examine Canada&amp;#39;s list of retaliatory tariffs on U.S. goods. I had to consider the implications if the U.S. imposed tariffs on Canada, Mexico, or the EU, and if retaliatory tariffs would affect my product.&lt;/p&gt;
&lt;h3&gt;Digital Goods and Tariffs&lt;/h3&gt;
&lt;p&gt;The good news is that the USMCA prohibits tariffs on digital goods. Digital goods are inherently difficult to tariff because they don&amp;#39;t cross borders in the traditional sense or go through customs. It&amp;#39;s challenging to imagine a scenario where digital goods are specifically targeted without a prolonged trade war or a significant effort from one side. Currently, neither the U.S. nor Canada has the mechanisms to impose tariffs on digital goods effectively.&lt;/p&gt;
&lt;h3&gt;The Real Issue: Customer Confidence&lt;/h3&gt;
&lt;p&gt;The real concern isn&amp;#39;t the potential 25% tariff itself—I&amp;#39;d be willing to offer a 25% discount to my customers to offset it. The core issue is the impact on customer confidence in the EU and Canada when considering purchases from U.S. companies. If the U.S. starts imposing tariffs broadly, it could erode trust and confidence in U.S. businesses.&lt;/p&gt;
&lt;h2&gt;Marketing and Messaging&lt;/h2&gt;
&lt;p&gt;To address this, I need to develop a marketing campaign that communicates our stance against tariffs. We could emphasize that we absorb the tariff costs and offer discounts to our customers who are affected by them.&lt;/p&gt;
&lt;h3&gt;Broader Implications&lt;/h3&gt;
&lt;p&gt;Even if digital goods aren&amp;#39;t directly targeted by tariffs, U.S. suppliers in Canada and the EU might face negative repercussions. Companies may instruct their procurement teams to be cautious about buying from U.S. companies if alternatives exist, due to the uncertainty tariffs introduce.&lt;/p&gt;
&lt;h2&gt;Inflation: A Misunderstood Term&lt;/h2&gt;
&lt;p&gt;Many claim that tariffs are inflationary. However, the term &amp;quot;inflation&amp;quot; is often misused. Inflation should refer to what we now call &amp;quot;monetary inflation,&amp;quot; a purely monetary construct. It&amp;#39;s important to distinguish this from price changes, as inflation is the result of market dynamics.&lt;/p&gt;
&lt;p&gt;In conclusion, while digital goods might be safe from direct tariffs, the broader implications on customer confidence and international trade relationships are significant concerns that need addressing.&lt;/p&gt;</description>
    <category>post</category>
    <enclosure url="https://api.indie.am/audiofile/james/375e093fa4af54feee469616cfc88d78.mp3" type="audio/mpeg" length="0"/>
  </item>
</channel>
</rss>
