← Extractions

Turbo Native: Hybrid Apps Done Right (wroclove.rb 2023)

Ayush Newatia's wroclove.rb 2023 talk 'Native apps are dead, long live native apps' argues that hybrid apps have a bad reputation (a 'tethered cat' dating back to Mark Zuckerberg's 2012 HTML5 quote and tools like Cordova/React Native) but that mobile JavaScript performance and tools like Hotwire's Turbo Native now make hybrid a compelling choice. He explains the web-to-native bridge, recommends separate iOS/Android code bases, and shows how HEY, Basecamp, and the BBC Sport app validate the approach.

Model
claude-opus-4-7
Ingestion
447c3f93
Input tokens
256,471
fresh
157,785
cached
88,677
cache write
10,009
Output tokens
16,265
Duration
238.3s
Roundtrips
7
Tool calls
19
Cost
$0.00
Nodes/edges extracted
41 / 54
Read set (nodes/edges)
102 / 2

Nodes (41)

create Just a Spec project
kind (empty) → project
name (empty) → Just a Spec
slug (empty) → just-a-spec
attrs (empty) → {"status" => "active"}
description (empty) → Podcast co-hosted by Ayush Newatia and his friend Jared about the projects, people and protocols that make the open s...
short_description (empty) → Podcast on the people, projects and protocols behind the open internet.
update Ayush Newatia person
attrs (empty) → {"role" => "freelancer", "location" => "London"}
description Conference speaker. → London-based developer and conference speaker. Was a mobile developer for five years before switching to Ruby and Rai...
short_description Conference speaker. → London-based freelance Rails developer and author; Hotwire/Turbo Native advocate.
update Native apps are dead, long live native apps talk
attrs {"type" => "talk"} → {"date" => "2023-03-31", "type" => "talk"}
description Talk at wroclove.rb 2023. → Ayush Newatia's wroclove.rb 2023 talk arguing that hybrid apps have an undeservedly bad reputation. He frames the bia...
short_description Talk at wroclove.rb 2023. → Ayush Newatia's wroclove.rb 2023 talk on Turbo Native and building hybrid apps right.
create BBC Sport App project
kind (empty) → project
name (empty) → BBC Sport App
slug (empty) → bbc-sport-app
attrs (empty) → {"status" => "active"}
description (empty) → BBC's sports mobile application. A hybrid app that renders web content within native navigation (the app version of a...
short_description (empty) → BBC Sport mobile app built as a native-backbone-plus-webview hybrid.
create Bridgetown project
kind (empty) → project
name (empty) → Bridgetown
slug (empty) → bridgetown
attrs (empty) → {"status" => "active", "license" => "open-source"}
description (empty) → A progressive static site generator, originally forked from Jekyll but having since taken on its own life. Newatia is...
short_description (empty) → Progressive Ruby static site generator forked from Jekyll.
create Scattergun project
kind (empty) → project
name (empty) → Scattergun
slug (empty) → scattergun
attrs (empty) → {"status" => "paused"}
description (empty) → A small indie web app built by Ayush Newatia: a privacy-focused mailing list platform. Development was on pause at th...
short_description (empty) → Privacy-focused indie mailing list platform (on pause).
create Turbo Native tool
kind (empty) → tool
name (empty) → Turbo Native
slug (empty) → turbo-native
attrs (empty) → {"license" => "MIT", "category" => "library"}
description (empty) → Part of the Hotwire suite by 37signals. A native library written in Swift on iOS and Kotlin on Android — conceptually...
short_description (empty) → Native iOS/Android library extending Turbo Drive for hybrid apps.
create Turbo Drive tool
kind (empty) → tool
name (empty) → Turbo Drive
slug (empty) → turbo-drive
attrs (empty) → {"category" => "library"}
description (empty) → The page-navigation component of Turbo on the web. A JavaScript library that intercepts link clicks, fetches the dest...
short_description (empty) → Hotwire primitive that intercepts link clicks and swaps the body element.
create Strada tool
kind (empty) → tool
name (empty) → Strada
slug (empty) → strada
attrs (empty) → {"status" => "unreleased", "category" => "library"}
description (empty) → Third component of the Hotwire suite (alongside Turbo and Stimulus), not released at the time of the wroclove.rb 2023...
short_description (empty) → Unreleased Hotwire component standardizing the web-to-native bridge.
create Hybrid App concept
kind (empty) → concept
name (empty) → Hybrid App
slug (empty) → hybrid-app
attrs (empty) → {"category" => "architecture"}
description (empty) → A mobile app that combines web technologies like HTML, CSS and JavaScript with native APIs. The degree of mix varies ...
short_description (empty) → Mobile app combining web technologies (HTML/CSS/JS) with native APIs.
create Tethered Cat Fallacy concept
kind (empty) → concept
name (empty) → Tethered Cat Fallacy
slug (empty) → tethered-cat-fallacy
attrs (empty) → {"category" => "practice"}
description (empty) → Ancient Buddhist tale Newatia uses to explain principles that outlive their original justification. In the tale, monk...
short_description (empty) → Principles that outlive the conditions that created them.
create Chesterton's Fence concept
kind (empty) → concept
name (empty) → Chesterton's Fence
slug (empty) → chesterton-s-fence
attrs (empty) → {"category" => "principle"}
description (empty) → Principle named for G.K. Chesterton, illustrated by a tale of a man killed by a longhorn bull when he tore down a hed...
short_description (empty) → Don't remove a rule before fully understanding why it exists.
create Web-to-Native Bridge concept
kind (empty) → concept
name (empty) → Web-to-Native Bridge
slug (empty) → web-to-native-bridge
attrs (empty) → {"category" => "pattern"}
description (empty) → Pattern enabled by the native APIs on iOS and Android that let native code communicate with JavaScript in a webview. ...
short_description (empty) → Two-way messaging pathway between a webview's JavaScript and native code.
create Cordova tool
kind (empty) → tool
name (empty) → Cordova
slug (empty) → cordova
attrs (empty) → {"aliases" => "PhoneGap", "category" => "framework"}
description (empty) → Hybrid mobile framework formerly known as PhoneGap. Builds the entire app UI in HTML/CSS/JavaScript with a single sha...
short_description (empty) → Hybrid mobile framework (formerly PhoneGap) rendering entire UI in HTML/CSS/JS.
create React Native tool
kind (empty) → tool
name (empty) → React Native
slug (empty) → react-native
attrs (empty) → {"category" => "framework"}
description (empty) → Hybrid-ish framework from Facebook where developers write JavaScript but the runtime renders fully native components....
short_description (empty) → Facebook framework letting JavaScript render fully native UI components.
create Swift tool
kind (empty) → tool
name (empty) → Swift
slug (empty) → swift
attrs (empty) → {"category" => "language"}
description (empty) → Apple's programming language for iOS and macOS development. Used to implement Turbo Native on iOS and to handle nativ...
short_description (empty) → Apple's programming language for iOS/macOS development.
create Kotlin tool
kind (empty) → tool
name (empty) → Kotlin
slug (empty) → kotlin
attrs (empty) → {"category" => "language"}
description (empty) → JetBrains-designed language used for Android development. Turbo Native's Android implementation is written in Kotlin....
short_description (empty) → JetBrains language for Android and JVM development.
create Xcode tool
kind (empty) → tool
name (empty) → Xcode
slug (empty) → xcode
attrs (empty) → {"category" => "platform"}
description (empty) → Apple's IDE, used to build the iOS side of a Turbo Native hybrid app.
short_description (empty) → Apple's IDE for iOS and macOS development.
create Android Studio tool
kind (empty) → tool
name (empty) → Android Studio
slug (empty) → android-studio
attrs (empty) → {"category" => "platform"}
description (empty) → Google's IDE for Android development, used to build the Android side of a Turbo Native hybrid app.
short_description (empty) → Google's IDE for Android development.
create Django tool
kind (empty) → tool
name (empty) → Django
slug (empty) → django
attrs (empty) → {"category" => "framework"}
description (empty) → Python web application framework. Cited by Newatia as a full-stack framework where a hybrid Turbo-Native-style approa...
short_description (empty) → Python server-side web application framework.
create 37signals company
kind (empty) → company
name (empty) → 37signals
slug (empty) → 37signals
attrs (empty) → {"industry" => "SaaS"}
description (empty) → Company behind Basecamp and HEY and the Hotwire open-source suite (Turbo, Stimulus, Strada, Turbo Native). Everything...
short_description (empty) → Makers of Basecamp and HEY; stewards of the Hotwire/Rails ecosystem.
update Facebook company
description Social-media company. Mentioned as the originator of GraphQL, which it created to solve the multi-source data-fetchin... → Social network company. In 2012, Mark Zuckerberg declared betting on HTML5 over native 'the biggest mistake we've mad...
short_description Social-media company; originator of GraphQL. → Social network whose 2012 HTML5 retreat shaped hybrid-app perception.
create Mark Zuckerberg person
kind (empty) → person
name (empty) → Mark Zuckerberg
slug (empty) → mark-zuckerberg
description (empty) → CEO of Facebook. His 2012 statement — that betting on HTML5 over native was 'the biggest mistake we've made as a comp...
short_description (empty) → Facebook CEO whose 2012 HTML5 quote shaped anti-hybrid sentiment.
create G.K. Chesterton person
kind (empty) → person
name (empty) → G.K. Chesterton
slug (empty) → g-k-chesterton
description (empty) → British philosopher and writer who originated 'Chesterton's Fence': the principle that a rule should not be removed u...
short_description (empty) → British philosopher and writer; originator of Chesterton's Fence.
create HEY project
kind (empty) → project
name (empty) → HEY
slug (empty) → hey
attrs (empty) → {"status" => "active"}
description (empty) → Email service by 37signals. A flag-bearer Turbo Native hybrid app with very high App Store ratings, used by Newatia a...
short_description (empty) → 37signals email service shipped as a Turbo Native hybrid app.
create Basecamp project
kind (empty) → project
name (empty) → Basecamp
slug (empty) → basecamp
attrs (empty) → {"status" => "active"}
description (empty) → Project-management SaaS by 37signals. A flag-bearer Turbo Native hybrid app with very high App Store ratings, used by...
short_description (empty) → 37signals project-management SaaS shipped as a Turbo Native hybrid app.
create The Rails and Hotwire Codex resource
kind (empty) → resource
name (empty) → The Rails and Hotwire Codex
slug (empty) → the-rails-and-hotwire-codex
attrs (empty) → {"type" => "book"}
description (empty) → Book by Ayush Newatia described by him as the most comprehensive resource on Rails and Hotwire available. Pre-orders ...
short_description (empty) → Ayush Newatia's comprehensive book on Rails and Hotwire.
create Jumpstart Pro tool
kind (empty) → tool
name (empty) → Jumpstart Pro
slug (empty) → jumpstart-pro
attrs (empty) → {"category" => "service"}
description (empty) → A Rails 'app kit' starter by Chris Oliver. Provides iOS and Android starting kits that use Turbo Native. Newatia reco...
short_description (empty) → Rails application starter kit by Chris Oliver with Turbo Native iOS/Android kits.
create Chris Oliver person
kind (empty) → person
name (empty) → Chris Oliver
slug (empty) → chris-oliver
description (empty) → Rails developer; creator of Jumpstart Pro, a commercial Rails app kit that ships iOS/Android starting kits built on T...
short_description (empty) → Creator of Jumpstart Pro and GoRails.
create Jared person
kind (empty) → person
name (empty) → Jared
slug (empty) → jared
description (empty) → Friend and podcast co-host of Ayush Newatia. Together they run the 'Just a Spec' podcast on the open standards of the...
short_description (empty) → Ayush Newatia's co-host on the Just a Spec podcast.
create Rails World event
kind (empty) → event
name (empty) → Rails World
slug (empty) → rails-world
attrs (empty) → {"format" => "in-person"}
description (empty) → Official Ruby on Rails conference. Newatia notes Strada (the third Hotwire component) is scheduled to be released at ...
short_description (empty) → Official Ruby on Rails conference.
create Separate iOS and Android code bases for hybrid apps takeaway
kind (empty) → takeaway
name (empty) → Separate iOS and Android code bases for hybrid apps
slug (empty) → separate-ios-and-android-code-bases-for-hybrid-apps
attrs (empty) → {"type" => "recommendation"}
description (empty) → Newatia's core recommendation for doing hybrid right: use separate native code bases on iOS (Swift/Xcode) and Android...
short_description (empty) → Never share one codebase across iOS and Android — build native backbones in each.
create Use hybrid when your app's core is a server-rendered web app takeaway
kind (empty) → takeaway
name (empty) → Use hybrid when your app's core is a server-rendered web app
slug (empty) → use-hybrid-when-your-app-s-core-is-a-server-rendered-web-app
attrs (empty) → {"type" => "recommendation"}
description (empty) → Hybrid apps aren't a silver bullet. They work best when the beating heart of the product is a server-rendered web app...
short_description (empty) → Hybrid shines when HTML/CSS/JS is the beating heart; skip it for deep-native apps.
create The consumer doesn't care about your app's underlying technology takeaway
kind (empty) → takeaway
name (empty) → The consumer doesn't care about your app's underlying technology
slug (empty) → the-consumer-doesn-t-care-about-your-app-s-underlying-technology
attrs (empty) → {"type" => "insight"}
description (empty) → Newatia's closing insight: it's possible to build substandard fully-native apps and delightful hybrid apps. Users don...
short_description (empty) → Users judge apps by whether they accomplish the task, not by web vs native.
create Mobile JavaScript performance has improved ~3x since 2014 takeaway
kind (empty) → takeaway
name (empty) → Mobile JavaScript performance has improved ~3x since 2014
slug (empty) → mobile-javascript-performance-has-improved-3x-since-2014
attrs (empty) → {"type" => "insight"}
description (empty) → Anecdotal evidence from Newatia: a Speedometer test on an iPhone 6 scored 24.8; an iPhone 13 mini scored dramatically...
short_description (empty) → Modern phones make 2012-era anti-hybrid arguments obsolete.
create Does Turbo Native require separate iOS and Android code bases? question
kind (empty) → question
name (empty) → Does Turbo Native require separate iOS and Android code bases?
slug (empty) → does-turbo-native-require-separate-ios-and-android-code-bases
attrs (empty) → {"answer_summary" => "Yes — some native code in separate iOS and Android repos is required, but after the foundation ...
description (empty) → Audience member asks whether using Turbo Native means you need to create code bases specifically for iOS and Android....
short_description (empty) → Audience question confirming hybrid still needs some native code per platform.
create When is hybrid a bad idea? question
kind (empty) → question
name (empty) → When is hybrid a bad idea?
slug (empty) → when-is-hybrid-a-bad-idea
attrs (empty) → {"answer_summary" => "When the product's core isn't a web app speaking HTML/CSS/JS, because view reuse is the main ad...
description (empty) → Audience asks for use cases where hybrid turned out to be the wrong route. Newatia hasn't built many hybrid apps hims...
short_description (empty) → Audience question on use cases where hybrid shouldn't be chosen.
create Is there a generator or scaffold for Turbo Native apps? question
kind (empty) → question
name (empty) → Is there a generator or scaffold for Turbo Native apps?
slug (empty) → is-there-a-generator-or-scaffold-for-turbo-native-apps
attrs (empty) → {"answer_summary" => "No free scaffold; Jumpstart Pro by Chris Oliver and Newatia's book are the two known resources."}
description (empty) → Audience member asks whether there's a Rails-style generator or scaffold for quickly deploying a Turbo Native app to ...
short_description (empty) → Audience question about scaffolding Turbo Native apps.
create What licenses do Turbo Native libraries use? question
kind (empty) → question
name (empty) → What licenses do Turbo Native libraries use?
slug (empty) → what-licenses-do-turbo-native-libraries-use
attrs (empty) → {"answer_summary" => "MIT licensed — everything 37signals releases is MIT."}
description (empty) → Audience asks about licensing of the native Turbo Native libraries. Newatia confirms everything 37signals releases — ...
short_description (empty) → Audience question about licensing of Hotwire/Turbo Native.
create How does hybrid compare to React Native after a decade? question
kind (empty) → question
name (empty) → How does hybrid compare to React Native after a decade?
slug (empty) → how-does-hybrid-compare-to-react-native-after-a-decade
attrs (empty) → {"answer_summary" => "Hybrid lets you reuse web views, still use native code, and use native-language answers from St...
description (empty) → Audience member who moved from early-2010s hybrid to React Native asks what advantages they'd gain moving back to a h...
short_description (empty) → Audience question on migrating from React Native back to hybrid.
create Have you automated-tested Turbo Native hybrid apps? question
kind (empty) → question
name (empty) → Have you automated-tested Turbo Native hybrid apps?
slug (empty) → have-you-automated-tested-turbo-native-hybrid-apps
attrs (empty) → {"answer_summary" => "No — Newatia has no experience with automated testing for these apps."}
description (empty) → Audience asks whether Newatia has experience writing automated tests for hybrid apps. Short answer: no.
short_description (empty) → Audience question on automated testing of hybrid apps.

Edges (54)

create Ayush Newatia → recommends → The Rails and Hotwire Codex
context (empty) → Recommends his own book as a learning resource for Rails/Hotwire and Turbo Native foundations.
relation (empty) → recommends
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → ac6d0b53-5dc4-424d-b340-3a424765edd1
create Chris Oliver → works_on → Jumpstart Pro
attrs (empty) → {"role" => "creator"}
context (empty) → Jumpstart Pro is Chris Oliver's Rails app kit.
relation (empty) → works_on
source_node_id (empty) → bc1a0c98-9ec5-4206-b3a2-a133c8da538c
target_node_id (empty) → 11b2362b-a97d-4a06-8fe1-ff34481db3cf
create Jumpstart Pro → uses → Turbo Native
context (empty) → iOS and Android starting kits in Jumpstart Pro are built on Turbo Native.
relation (empty) → uses
source_node_id (empty) → 11b2362b-a97d-4a06-8fe1-ff34481db3cf
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
update Ayush Newatia → authored → Native apps are dead, long live native apps
context (empty) → Delivered this talk at wroclove.rb 2023.
update Native apps are dead, long live native apps → presented_at → wroclove.rb 2023
context (empty) → Talk given at wroclove.rb 2023.
create Native apps are dead, long live native apps → about → Turbo Native
context (empty) → Central subject of the talk.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
create Native apps are dead, long live native apps → about → Hybrid App
context (empty) → Talk defends and redefines the hybrid-app category.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → c06c6630-c062-4966-a914-4f134db85c5f
create Native apps are dead, long live native apps → about → Tethered Cat Fallacy
context (empty) → Used as framing for why industry dismisses hybrid apps.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 638e53f3-1ffd-47c3-a742-9100f77ba502
create Native apps are dead, long live native apps → about → Chesterton's Fence
context (empty) → Counterpoint to tethered-cat thinking, used to re-examine anti-hybrid rules.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 462ddcee-cb5b-4117-89cd-2426de4f8b78
create Native apps are dead, long live native apps → about → Web-to-Native Bridge
context (empty) → Talk explains how to implement native components in a webview-driven hybrid app.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 3ed2aac6-d899-4b7d-974d-b6b824d4597e
create Native apps are dead, long live native apps → about → Strada
context (empty) → Mentioned as the upcoming third Hotwire component to be released at Rails World.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 527a5b45-4f02-4f66-b3f8-a24c6d2630a6
create Native apps are dead, long live native apps → about → Cordova
context (empty) → Cited as a poor hybrid-app tool due to shared codebase + HTML UI.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 90c3e78a-3196-437a-aba4-8b73dea69ad3
create Native apps are dead, long live native apps → about → React Native
context (empty) → Criticized and contrasted with Turbo Native; addressed in Q&A.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 3244aefe-82e6-4dd5-a1f6-ac7e98897b86
create Turbo Native → related_to → Turbo Drive
context (empty) → Turbo Native installs itself as an adapter on Turbo Drive in hybrid apps.
relation (empty) → related_to
source_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
target_node_id (empty) → 1876d642-cad1-490f-925f-3cd2ea69ac9a
create Turbo Native → related_to → Hotwire
context (empty) → Turbo Native is part of the Hotwire suite (Turbo, Stimulus, Strada).
relation (empty) → related_to
source_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
target_node_id (empty) → a0a8a415-bd9e-46ed-8ee3-8448312af347
create Strada → related_to → Hotwire
context (empty) → Third component of the Hotwire suite.
relation (empty) → related_to
source_node_id (empty) → 527a5b45-4f02-4f66-b3f8-a24c6d2630a6
target_node_id (empty) → a0a8a415-bd9e-46ed-8ee3-8448312af347
create Turbo Drive → related_to → Turbo
context (empty) → Turbo Drive is the navigation component of Turbo.
relation (empty) → related_to
source_node_id (empty) → 1876d642-cad1-490f-925f-3cd2ea69ac9a
target_node_id (empty) → 0071d9d0-23d6-4880-af20-5c3369e78423
create Turbo Native → uses → Swift
context (empty) → Implemented in Swift on iOS.
relation (empty) → uses
source_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
target_node_id (empty) → 531c335a-43c9-41d2-a96a-35c866e1f6fc
create Turbo Native → uses → Kotlin
context (empty) → Implemented in Kotlin on Android.
relation (empty) → uses
source_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
target_node_id (empty) → b80f0a8f-84c7-4337-ad2e-6013c4b4eb8b
create Ayush Newatia → works_on → Bridgetown
attrs (empty) → {"role" => "core team"}
context (empty) → On the core team of Bridgetown.
relation (empty) → works_on
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → bd6326b8-c526-4fec-9aef-d64413bb2b7d
create Ayush Newatia → works_on → Scattergun
context (empty) → Runs this indie privacy-focused mailing list platform (currently paused).
relation (empty) → works_on
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → 1f89d575-0c44-411a-a1de-8a2954489ed7
create Ayush Newatia → works_on → Just a Spec
attrs (empty) → {"role" => "co-host"}
context (empty) → Co-hosts the Just a Spec podcast with Jared.
relation (empty) → works_on
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → eb48cd29-cf6a-4869-b281-42dfad22374f
create Jared → works_on → Just a Spec
attrs (empty) → {"role" => "co-host"}
context (empty) → Co-hosts with Ayush Newatia.
relation (empty) → works_on
source_node_id (empty) → fc14f913-36e8-4adc-b04a-61ba4c5d216e
target_node_id (empty) → eb48cd29-cf6a-4869-b281-42dfad22374f
create Ayush Newatia → authored → The Rails and Hotwire Codex
context (empty) → Wrote this book on Rails and Hotwire.
relation (empty) → authored
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → ac6d0b53-5dc4-424d-b340-3a424765edd1
create Ayush Newatia → has_skill → Ruby on Rails
attrs (empty) → {"level" => "expert"}
context (empty) → Freelancer specializing in Ruby/Rails websites since switching from mobile development in 2020.
relation (empty) → has_skill
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → 7aac705a-0987-49f2-b665-9d4e08a6acee
create Ayush Newatia → recommends → Turbo Native
context (empty) → Entire talk is an endorsement of Turbo Native as the right way to build hybrid apps.
relation (empty) → recommends
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
create Ayush Newatia → recommends → Jumpstart Pro
context (empty) → Recommends Jumpstart Pro as one of the two resources for scaffolding Turbo Native apps.
relation (empty) → recommends
source_node_id (empty) → c97901b3-81a6-42f4-a620-3ee3cb8fdbd0
target_node_id (empty) → 11b2362b-a97d-4a06-8fe1-ff34481db3cf
create HEY → uses → Turbo Native
context (empty) → Flag-bearer Turbo Native hybrid app from 37signals.
relation (empty) → uses
source_node_id (empty) → e8b3ff00-ad86-461d-924a-debf208460f1
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
create Basecamp → uses → Turbo Native
context (empty) → Flag-bearer Turbo Native hybrid app from 37signals.
relation (empty) → uses
source_node_id (empty) → bb5a81b0-ce5d-4a86-84e1-b824a71df67e
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
create BBC Sport App → related_to → Hybrid App
context (empty) → Built as a hybrid app (native nav + web content), though not using Turbo Native.
relation (empty) → related_to
source_node_id (empty) → 025e61ee-eb55-4e11-8a10-57a0bfba3639
target_node_id (empty) → c06c6630-c062-4966-a914-4f134db85c5f
create Mark Zuckerberg → works_at → Facebook
attrs (empty) → {"role" => "CEO"}
context (empty) → CEO of Facebook; made the 2012 HTML5 statement while leading the company.
relation (empty) → works_at
source_node_id (empty) → 95f42aa3-cd06-4a40-8c54-d227f0afbc36
target_node_id (empty) → 7a64ac69-5d72-4225-9f26-e97ce73dc261
create G.K. Chesterton → authored → Chesterton's Fence
context (empty) → Originator of the Chesterton's Fence principle.
relation (empty) → authored
source_node_id (empty) → 408380dc-c291-4a9f-8d37-079da3d85d83
target_node_id (empty) → 462ddcee-cb5b-4117-89cd-2426de4f8b78
create Hotwire → related_to → 37signals
context (empty) → Hotwire suite (Turbo, Stimulus, Strada, Turbo Native) is developed by 37signals and MIT-licensed.
relation (empty) → related_to
source_node_id (empty) → a0a8a415-bd9e-46ed-8ee3-8448312af347
target_node_id (empty) → b7de50f4-07ca-48d4-8f62-4e9a4c7acafb
create Separate iOS and Android code bases for hybrid apps → from_talk → Native apps are dead, long live native apps
context (empty) → Core architectural recommendation from the talk.
relation (empty) → from_talk
source_node_id (empty) → 3cc603f2-b47b-400c-af9c-92274fd169a9
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create Use hybrid when your app's core is a server-rendered web app → from_talk → Native apps are dead, long live native apps
context (empty) → Guidance on when hybrid makes sense.
relation (empty) → from_talk
source_node_id (empty) → 9d6fe88a-7ebd-4d2b-a550-cb3eb0e4cd6f
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create The consumer doesn't care about your app's underlying technology → from_talk → Native apps are dead, long live native apps
context (empty) → Closing insight of the talk.
relation (empty) → from_talk
source_node_id (empty) → 69db59ec-b4db-4179-b81e-9f886d22e0a8
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create Mobile JavaScript performance has improved ~3x since 2014 → from_talk → Native apps are dead, long live native apps
context (empty) → Empirical argument against outdated anti-hybrid beliefs.
relation (empty) → from_talk
source_node_id (empty) → c216b758-1027-4143-a6a9-c6b853d700b5
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create Separate iOS and Android code bases for hybrid apps → about → Hybrid App
context (empty) → Recommendation specifically about how to build hybrid apps.
relation (empty) → about
source_node_id (empty) → 3cc603f2-b47b-400c-af9c-92274fd169a9
target_node_id (empty) → c06c6630-c062-4966-a914-4f134db85c5f
create Use hybrid when your app's core is a server-rendered web app → about → Hybrid App
context (empty) → Guidance about hybrid-app use cases.
relation (empty) → about
source_node_id (empty) → 9d6fe88a-7ebd-4d2b-a550-cb3eb0e4cd6f
target_node_id (empty) → c06c6630-c062-4966-a914-4f134db85c5f
create The consumer doesn't care about your app's underlying technology → about → Hybrid App
context (empty) → Defends hybrid apps on UX grounds.
relation (empty) → about
source_node_id (empty) → 69db59ec-b4db-4179-b81e-9f886d22e0a8
target_node_id (empty) → c06c6630-c062-4966-a914-4f134db85c5f
create Does Turbo Native require separate iOS and Android code bases? → asked_at → Native apps are dead, long live native apps
context (empty) → Audience Q&A.
relation (empty) → asked_at
source_node_id (empty) → b883f423-1812-4fe6-8d13-3acf6bcf188b
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create When is hybrid a bad idea? → asked_at → Native apps are dead, long live native apps
context (empty) → Audience Q&A.
relation (empty) → asked_at
source_node_id (empty) → 6c320c0a-ca09-4c15-ba26-f714677aa2e2
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create Is there a generator or scaffold for Turbo Native apps? → asked_at → Native apps are dead, long live native apps
context (empty) → Audience Q&A.
relation (empty) → asked_at
source_node_id (empty) → afdeab53-6990-4f2a-b876-5bf0f3f0b8fa
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create What licenses do Turbo Native libraries use? → asked_at → Native apps are dead, long live native apps
context (empty) → Audience Q&A.
relation (empty) → asked_at
source_node_id (empty) → b52aa1e6-ac6d-4895-ba88-aaa743b550e3
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create How does hybrid compare to React Native after a decade? → asked_at → Native apps are dead, long live native apps
context (empty) → Audience Q&A comparing hybrid to React Native.
relation (empty) → asked_at
source_node_id (empty) → 499804f4-9069-42aa-827d-9a4432409d51
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create Have you automated-tested Turbo Native hybrid apps? → asked_at → Native apps are dead, long live native apps
context (empty) → Audience Q&A.
relation (empty) → asked_at
source_node_id (empty) → 4ab6092f-f0db-4847-964a-0e76f0609444
target_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
create Does Turbo Native require separate iOS and Android code bases? → about → Turbo Native
context (empty) → Question about needing platform-specific native repos.
relation (empty) → about
source_node_id (empty) → b883f423-1812-4fe6-8d13-3acf6bcf188b
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
create Is there a generator or scaffold for Turbo Native apps? → about → Jumpstart Pro
context (empty) → Jumpstart Pro was the primary answer.
relation (empty) → about
source_node_id (empty) → afdeab53-6990-4f2a-b876-5bf0f3f0b8fa
target_node_id (empty) → 11b2362b-a97d-4a06-8fe1-ff34481db3cf
create What licenses do Turbo Native libraries use? → about → Turbo Native
context (empty) → Concerns the licensing of Turbo Native libraries.
relation (empty) → about
source_node_id (empty) → b52aa1e6-ac6d-4895-ba88-aaa743b550e3
target_node_id (empty) → 23594f06-ede3-41dc-a281-ca191338605e
create How does hybrid compare to React Native after a decade? → about → React Native
context (empty) → Compares hybrid (Turbo Native) to React Native.
relation (empty) → about
source_node_id (empty) → 499804f4-9069-42aa-827d-9a4432409d51
target_node_id (empty) → 3244aefe-82e6-4dd5-a1f6-ac7e98897b86
create Native apps are dead, long live native apps → about → Stimulus
context (empty) → Used to build the 'Bridge element' controller on the web side of the native bridge.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 87cb1332-bd03-4cc9-a0b1-c8c83aae8051
create Native apps are dead, long live native apps → about → Ruby on Rails
context (empty) → Cited as an ideal full-stack framework for hybrid apps; audience expects Rails-style generators.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 7aac705a-0987-49f2-b665-9d4e08a6acee
create Native apps are dead, long live native apps → about → Laravel
context (empty) → Cited as a full-stack framework where hybrid makes sense.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → b825bd83-2934-4d30-8885-028d898b7e87
create Native apps are dead, long live native apps → about → Django
context (empty) → Cited as a full-stack framework where hybrid makes sense.
relation (empty) → about
source_node_id (empty) → c23dfc17-af16-4000-bb10-7bf643ce8b13
target_node_id (empty) → 255af5e6-84f0-41a6-a2fb-1cd925674ac2

Read set

102 nodes

tool Turbo Laravel search_nodes tool Turbo search_nodes tool Turbo Frames search_nodes concept Progressive Web Apps search_nodes tool Turbo Streams search_nodes talk Native apps are dead, long live native apps search_nodes+get_node_edges tool Hotwire search_nodes tool Electron search_nodes concept HTTP Turbo Streams vs WebSocket Turbo Streams search_nodes takeaway Pre-compile engine assets to shield host apps search_nodes takeaway Name Things To Find Their Properties search_nodes person Ayush Newatia search_nodes+get_node_edges tool ChatGPT search_nodes resource Rocket Real-Time Benchmark search_nodes project Ruby News search_nodes tool RealtimeBoard search_nodes project AnyCable search_nodes company SpaceX search_nodes resource HotBits search_nodes tool Rails 5.2 search_nodes project logux-rails search_nodes tool Action Cable search_nodes talk 18 months of using hotwire and viewcomponent in production search_nodes talk When REST is Not Enough: Implementing Alternative Protocols in Ruby on Rails search_nodes tool ViewComponent search_nodes talk Better WebPerformance with Rails search_nodes tool esbuild search_nodes tool webpagetest.org search_nodes concept Live Reload search_nodes tool cssbundling-rails search_nodes talk Events events events search_nodes tool GitHub Releases search_nodes tool Release Drafter search_nodes tool Tailwind CSS search_nodes tool Babel search_nodes concept On-the-fly Processing search_nodes event wroclove.rb 2023 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2025 search_nodes event wroclove.rb 2019 search_nodes event wroclove.rb 2026 search_nodes event wroclove.rb 2018 search_nodes talk Mutation testing workshop wroclove.rb 2019 search_nodes talk Building LLM powered applications in Ruby search_nodes talk Fantastic Databases and Where to Find Them search_nodes tool Stimulus search_nodes question Have you heard of Stimulus? search_nodes tool StimulusReflex search_nodes takeaway Don't create controllers at Rails boot time search_nodes concept Command Form search_nodes takeaway Turbo Frames, Turbo Streams and Stimulus can be used independently search_nodes tool Ember.js search_nodes concept Cynefin Framework search_nodes tool React search_nodes project monolith framework search_nodes tool Preact search_nodes tool MobX search_nodes tool Fulcro search_nodes company Salesforce search_nodes tool CircleCI search_nodes tool Redmine search_nodes resource awesome-ddd search_nodes resource Ironin blog search_nodes tool Miro search_nodes takeaway Sign serverlessforruby.org petition search_nodes tool JIRA search_nodes talk No-build Utopia: Modern User Experiences with Rails & Web Standards search_nodes question How do you test ViewComponents and Hotwire flows? search_nodes concept Reactive Programming search_nodes takeaway Buy Faster Hardware search_nodes tool PureScript search_nodes tool Crystal search_nodes tool Go search_nodes tool Rust search_nodes tool GraphQL search_nodes tool TypeScript search_nodes concept Conway's Law search_nodes takeaway Stop delegating decisions to popular library authors search_nodes takeaway Avoid complexity before fighting it search_nodes concept Application Logic vs Business Logic search_nodes takeaway Silver Bullet Anti-Pattern search_nodes concept Boolean Flags as Implicit State search_nodes takeaway Prefer conventions over custom code search_nodes question Is the sufficient-funds check a feature envy smell? search_nodes tool Ruby on Rails search_nodes tool Rack search_nodes resource Woman on Rails search_nodes tool merb search_nodes takeaway Ruby as a Data Management Language search_nodes tool Discourse search_nodes tool Active Admin search_nodes tool Laravel search_nodes tool Plezi search_nodes takeaway Signed On-the-fly URLs search_nodes takeaway Write Domain Code Free of Frameworks search_nodes concept Unique Per-Site Email Leak Detection search_nodes takeaway Use Unique Per-Site Emails To Catch Leaks search_nodes resource Short Ruby Newsletter search_nodes talk Building Beautiful UIs with Ruby A Rails-Native Approach search_nodes talk Towards the post framework future search_nodes talk Multi-region data governance in Rails application search_nodes

2 edges