<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: joemasilotti</title><link>https://news.ycombinator.com/user?id=joemasilotti</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 03:02:28 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=joemasilotti" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by joemasilotti in "Building a framework-agnostic Ruby gem (and making sure it doesn't break)"]]></title><description><![CDATA[
<p>You still need to pay $99 to Apple (every year). Ruby Native doesn't replace your accounts, it just augments them.</p>
]]></description><pubDate>Thu, 09 Apr 2026 20:14:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47709207</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=47709207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47709207</guid></item><item><title><![CDATA[New comment by joemasilotti in "Building a framework-agnostic Ruby gem (and making sure it doesn't break)"]]></title><description><![CDATA[
<p>Yep! Ruby Native actually uses Hotwire Native under the hood in some scenarios.</p>
]]></description><pubDate>Thu, 09 Apr 2026 17:51:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47706956</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=47706956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47706956</guid></item><item><title><![CDATA[Building a framework-agnostic Ruby gem (and making sure it doesn't break)]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/on-building-a-framework-agnostic">https://newsletter.masilotti.com/p/on-building-a-framework-agnostic</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47680061">https://news.ycombinator.com/item?id=47680061</a></p>
<p>Points: 48</p>
<p># Comments: 6</p>
]]></description><pubDate>Tue, 07 Apr 2026 19:18:29 +0000</pubDate><link>https://newsletter.masilotti.com/p/on-building-a-framework-agnostic</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=47680061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47680061</guid></item><item><title><![CDATA[New comment by joemasilotti in "Show HN: What I've learned from shipping 25 mobile apps"]]></title><description><![CDATA[
<p>Got it, thanks! Will do.</p>
]]></description><pubDate>Tue, 24 Feb 2026 18:12:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47140496</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=47140496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47140496</guid></item><item><title><![CDATA[What I've learned from shipping 25 mobile apps]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/what-ive-learned-from-shipping-25">https://newsletter.masilotti.com/p/what-ive-learned-from-shipping-25</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47140487">https://news.ycombinator.com/item?id=47140487</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 24 Feb 2026 18:12:39 +0000</pubDate><link>https://newsletter.masilotti.com/p/what-ive-learned-from-shipping-25</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=47140487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47140487</guid></item><item><title><![CDATA[Show HN: What I've learned from shipping 25 mobile apps]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/what-ive-learned-from-shipping-25">https://newsletter.masilotti.com/p/what-ive-learned-from-shipping-25</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47124972">https://news.ycombinator.com/item?id=47124972</a></p>
<p>Points: 3</p>
<p># Comments: 2</p>
]]></description><pubDate>Mon, 23 Feb 2026 16:57:19 +0000</pubDate><link>https://newsletter.masilotti.com/p/what-ive-learned-from-shipping-25</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=47124972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47124972</guid></item><item><title><![CDATA[Show HN: The Rails developers' guide to mobile app frameworks]]></title><description><![CDATA[
<p>Article URL: <a href="https://masilotti.com/rails-developers-guide-to-mobile-app-frameworks/">https://masilotti.com/rails-developers-guide-to-mobile-app-frameworks/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46993790">https://news.ycombinator.com/item?id=46993790</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 12 Feb 2026 19:28:58 +0000</pubDate><link>https://masilotti.com/rails-developers-guide-to-mobile-app-frameworks/</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46993790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46993790</guid></item><item><title><![CDATA[New comment by joemasilotti in "AI makes it easier to build the wrong thing faster"]]></title><description><![CDATA[
<p>Or, why I threw away 20,000+ lines of working code and started over with nothing.</p>
]]></description><pubDate>Wed, 11 Feb 2026 15:41:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46976328</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46976328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46976328</guid></item><item><title><![CDATA[AI makes it easier to build the wrong thing faster]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/ai-makes-it-easier-to-build-the-wrong">https://newsletter.masilotti.com/p/ai-makes-it-easier-to-build-the-wrong</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46976327">https://news.ycombinator.com/item?id=46976327</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 11 Feb 2026 15:41:50 +0000</pubDate><link>https://newsletter.masilotti.com/p/ai-makes-it-easier-to-build-the-wrong</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46976327</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46976327</guid></item><item><title><![CDATA[New comment by joemasilotti in "I went off the deep end with AI"]]></title><description><![CDATA[
<p>For the past few weeks I ran an experiment: build something real, almost entirely with AI. Here’s what I learned, what’s shifting in how I think about code, and what I’m honestly terrified about.</p>
]]></description><pubDate>Tue, 27 Jan 2026 12:24:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46779075</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46779075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46779075</guid></item><item><title><![CDATA[I went off the deep end with AI]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/i-went-off-the-deep-end-with-ai">https://newsletter.masilotti.com/p/i-went-off-the-deep-end-with-ai</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46779074">https://news.ycombinator.com/item?id=46779074</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 27 Jan 2026 12:24:34 +0000</pubDate><link>https://newsletter.masilotti.com/p/i-went-off-the-deep-end-with-ai</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46779074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46779074</guid></item><item><title><![CDATA[Show HN: PurchaseKit – In-app purchases for Rails and Hotwire Native]]></title><description><![CDATA[
<p>I built PurchaseKit to add in-app purchases to Hotwire Native apps without writing native code.<p>Adding subscriptions to a native app means learning StoreKit and Play Billing. Two platforms, two languages, two sets of documentation. Then you try to wire it all up to your Rails backend.<p>PurchaseKit gives you drop-in bridge components for iOS and Android. Your paywall stays in ERB. No Swift, no Kotlin.<p>It also normalizes Apple and Google webhooks into four events (created, updated, canceled, expired) so you don't have to deal with their different formats.<p>Works with the Pay gem or your own models.<p>Free for up to 10 paying customers, $99/mo after.<p><a href="https://purchasekit.dev" rel="nofollow">https://purchasekit.dev</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46541025">https://news.ycombinator.com/item?id=46541025</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 08 Jan 2026 13:59:26 +0000</pubDate><link>https://purchasekit.dev</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46541025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46541025</guid></item><item><title><![CDATA[New comment by joemasilotti in "Matz 2/2: The trajectory of Ruby's growth, Open-Source Software today etc."]]></title><description><![CDATA[
<p>Have you tried Hotwire Native yet? In my (extremely biased) opinion, it truly does bring “the ease of Rails development to native mobile app development”.<p><a href="https://native.hotwired.dev/" rel="nofollow">https://native.hotwired.dev/</a><p><a href="https://newsletter.masilotti.com/p/build-mobile-apps-the-rails-way-with?r=9nfdo&utm_campaign=post&utm_medium=web" rel="nofollow">https://newsletter.masilotti.com/p/build-mobile-apps-the-rai...</a></p>
]]></description><pubDate>Mon, 05 Jan 2026 22:48:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46506225</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46506225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46506225</guid></item><item><title><![CDATA[Show HN: The week my products felt real]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/the-week-my-products-finally-felt">https://newsletter.masilotti.com/p/the-week-my-products-finally-felt</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46140049">https://news.ycombinator.com/item?id=46140049</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 03 Dec 2025 20:58:06 +0000</pubDate><link>https://newsletter.masilotti.com/p/the-week-my-products-finally-felt</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=46140049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46140049</guid></item><item><title><![CDATA[Show HN: A step-by-step guide for push notifications on iOS, Android, + Rails]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/hotwire-native-deep-dive-push-notifications">https://newsletter.masilotti.com/p/hotwire-native-deep-dive-push-notifications</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45994509">https://news.ycombinator.com/item?id=45994509</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 20 Nov 2025 16:35:46 +0000</pubDate><link>https://newsletter.masilotti.com/p/hotwire-native-deep-dive-push-notifications</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=45994509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45994509</guid></item><item><title><![CDATA[New comment by joemasilotti in "Ruby already solved my problem"]]></title><description><![CDATA[
<p>> The author's AppVersion class is so nicely done, it's nuts how succinct eg the compare implementation is.<p>Why thank you! :D</p>
]]></description><pubDate>Fri, 07 Nov 2025 22:26:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45851921</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=45851921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45851921</guid></item><item><title><![CDATA[Ruby already solved my problem]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/ruby-already-solved-my-problem">https://newsletter.masilotti.com/p/ruby-already-solved-my-problem</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45849528">https://news.ycombinator.com/item?id=45849528</a></p>
<p>Points: 262</p>
<p># Comments: 126</p>
]]></description><pubDate>Fri, 07 Nov 2025 18:45:35 +0000</pubDate><link>https://newsletter.masilotti.com/p/ruby-already-solved-my-problem</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=45849528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45849528</guid></item><item><title><![CDATA[Mobile Apps, the Rails Way]]></title><description><![CDATA[
<p>Article URL: <a href="https://newsletter.masilotti.com/p/build-mobile-apps-the-rails-way-with">https://newsletter.masilotti.com/p/build-mobile-apps-the-rails-way-with</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45606707">https://news.ycombinator.com/item?id=45606707</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 16 Oct 2025 15:37:47 +0000</pubDate><link>https://newsletter.masilotti.com/p/build-mobile-apps-the-rails-way-with</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=45606707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45606707</guid></item><item><title><![CDATA[Show HN: I wrote a book on how to make iOS/Android apps with Ruby on Rails]]></title><description><![CDATA[
<p>Hi all! Joe Masilotti here. After 2+ years my book, "Hotwire Native for Rails Developers", is finally available for sale.<p>It contains everything I know about building, shipping, and maintaining iOS and Android apps with Ruby on Rails and Hotwire Native. Always with one simple goal in mind: making it easier for Rails developers to build mobile apps.<p>The book teaches you how to:<p>- Build your first Hotwire Native apps on iOS & Android
- Add navigation, modals, and native tab bars
- Mix in native screens and components
- Send and route push notifications
- Ship to physical devices via TestFlight and Play Store</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45375921">https://news.ycombinator.com/item?id=45375921</a></p>
<p>Points: 9</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 25 Sep 2025 17:24:29 +0000</pubDate><link>https://www.amazon.com/Hotwire-Native-Rails-Developers-Mobile/dp/B0DYHZ58F5/</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=45375921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45375921</guid></item><item><title><![CDATA[New comment by joemasilotti in "How to Draw a Space Invader"]]></title><description><![CDATA[
<p>This would be awesome as a random avatar generator!</p>
]]></description><pubDate>Tue, 19 Aug 2025 23:12:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=44957120</link><dc:creator>joemasilotti</dc:creator><comments>https://news.ycombinator.com/item?id=44957120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44957120</guid></item></channel></rss>