Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to Hotwire
Search
Onur Ozer
October 11, 2023
Programming
85
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Hotwire
Onur Ozer
October 11, 2023
More Decks by Onur Ozer
See All by Onur Ozer
Breaking Rules to Ship Products: A Beginner's Rails Journey
onurozer
0
48
From Ruby to Revenue: Mastering Marketing for Developers
onurozer
0
28
Foundations of Marketing
onurozer
0
30
Other Decks in Programming
See All in Programming
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
140
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
690
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
270
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
180
Inside Stream API
skrb
1
720
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.6k
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
130
CSC307 Lecture 17
javiergs
PRO
0
320
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.1k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
6k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Practical Orchestrator
shlominoach
191
11k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Building the Perfect Custom Keyboard
takai
2
790
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.4k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Designing for humans not robots
tammielis
254
26k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
410
Transcript
Onur Ozer Founder, Simple Matters Introduction to Hotwire ⚡ Ruby
Singapore Meetup, Sep 2023
My modern web development journey
(╯°□°)╯︵ ┻━┻
Rails and Javascript Prototype.js Script.aculo.us Rails 1 2005 jQuery
Co ff eescript Rails 3 2010 Webpacker Rails 6 2019 importmaps Rails 7 2021 Turbolinks 2015 ActionCable 2016 Stimulus.js 2018
How do you build modern web apps? • That are
fast and responsive • With a simple, productive work fl ow • While keeping template rendering on the server • Without introducing additional complexity
Traditional Web Apps Rails application HTTP Request HTML Response
JS Component Approach JS component AJAX Request JSON Response Rails
application
Single Page Applications (SPAs) Rails JSON API AJAX Request
JSON Response
H T M L O V E R T H
E W I R E
Philosophy • Responsiveness of an SPA without the complexity of
an SPA • Reuse partials • Sending HTML instead of JSON
Ingredients • Turbo • Turbo Drives • Turbo Frames •
Turbo Streams • Stimulus • Strada
Turbo Drive Accelerate navigation without full page reload <body> Rails
application AJAX GET/POST (Fetch) HTML Response <head>
Turbo Frames Partial page updates scoped to individual contexts Rails
application AJAX GET/POST HTML Partial (Turbo Frame) Turbo Frame <turbo frame id=“8”>
Turbo Streams Update multiple parts of a page in response
to a request Rails application AJAX GET/POST HTML Partial (Turbo Streams) Turbo Stream <turbo stream action=“replace” target=“content"> Turbo Stream <turbo stream action=“replace” target=“header”>
Turbo Streams Update multiple parts of a page in response
to a request Rails application (Action Cable) WebSocket Connection WebSocket Connection
Stimulus Organise Javascript with controllers and actions HTML Element HTML
Element Stimulus Controller Stimulus Controller
Demo: Todo App https://github.com/onurozer/hotwire-introduction
Getting Started • Rails 7 - comes by default •
Rails 6 - install turbo-rails and stimulus-rails gems https://github.com/hotwired/turbo-rails#installation https://github.com/hotwired/stimulus-rails#installing-with-installer • Others - install turbo and stimulus npm packages https://www.npmjs.com/package/@hotwired/turbo https://www.npmjs.com/package/stimulus
Resources • Hotwire for Rails Developers Course https://pragmaticstudio.com/hotwire-rails • Turbo
Rails Tutorial https://www.hotrails.dev/ • Hotwire Devs Newsletter https://masilotti.com/hotwire/ • Rails + Hotwire Jobs https://railshotwirejobs.com/
Thank You • Connect on LinkedIn https://www.linkedin.com/in/onurozer/ • Connect on
Mastodon https://ruby.social/@onurozer • My personal website https://onurozer.me/ • My company https://simplematters.co/