← 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 NewatiarecommendsThe 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 Oliverworks_onJumpstart 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 ProusesTurbo 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 NewatiaauthoredNative apps are dead, long live native apps
context (empty) Delivered this talk at wroclove.rb 2023.
update Native apps are dead, long live native appspresented_atwroclove.rb 2023
context (empty) Talk given at wroclove.rb 2023.
create Native apps are dead, long live native appsaboutTurbo 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 appsaboutHybrid 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 appsaboutTethered 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 appsaboutChesterton'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 appsaboutWeb-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 appsaboutStrada
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 appsaboutCordova
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 appsaboutReact 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 Nativerelated_toTurbo 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 Nativerelated_toHotwire
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 Stradarelated_toHotwire
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 Driverelated_toTurbo
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 NativeusesSwift
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 NativeusesKotlin
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 Newatiaworks_onBridgetown
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 Newatiaworks_onScattergun
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 Newatiaworks_onJust 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 Jaredworks_onJust 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 NewatiaauthoredThe 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 Newatiahas_skillRuby 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 NewatiarecommendsTurbo 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 NewatiarecommendsJumpstart 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 HEYusesTurbo 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 BasecampusesTurbo 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 Apprelated_toHybrid 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 Zuckerbergworks_atFacebook
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. ChestertonauthoredChesterton'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 Hotwirerelated_to37signals
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 appsfrom_talkNative 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 appfrom_talkNative 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 technologyfrom_talkNative 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 2014from_talkNative 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 appsaboutHybrid 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 appaboutHybrid 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 technologyaboutHybrid 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_atNative 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_atNative 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_atNative 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_atNative 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_atNative 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_atNative 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?aboutTurbo 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?aboutJumpstart 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?aboutTurbo 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?aboutReact 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 appsaboutStimulus
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 appsaboutRuby 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 appsaboutLaravel
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 appsaboutDjango
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