Different ways of integrating React into Rails - Mikhail Bortnyk

Ruby Meditation
Ruby MeditationRuby Meditation
React on Rails
Different ways of integrating. Pros and Cons
Different ways of integrating React into Rails - Mikhail Bortnyk
About me
• name’s Mikhail Bortnyk
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org

• Ruby language researcher
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org

• Ruby language researcher

• twitter: @mikhailbortnyk
About me
• name’s Mikhail Bortnyk

• team leader in Amoniac OU

• co-founder of kottans.org

• Ruby language researcher

• twitter: @mikhailbortnyk

• github: @vessi
Short history of SPA in Rails
Short history of SPA in Rails
• Started from UJS
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)

• progressed to angular.js
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)

• progressed to angular.js

• appeared react.js support (3rd party gems)
Short history of SPA in Rails
• Started from UJS

• continued with Backbone.js (Marionette.js afterwards)

• progressed to angular.js

• appeared react.js support (3rd party gems)

• webpack becomes part of Rails via webpacker gem
DHH dislikes SPAs
DHH dislikes SPAs
https://www.reddit.com/r/ruby/comments/341dyk/
why_does_dhh_dislike_spas_so_much/
We are not DHH
and sometimes we need something more than Rails
How do we do frontend in Rails
from some hands-on experience
Case 1. Boring
(Standalone application)
Standalone frontend
• Pros and Cons
Standalone frontend
• Pros:

• full control on frontend development process
Standalone frontend
• Pros:

• full control on frontend development process

• use what you actually want
Standalone frontend
• Pros:

• full control on frontend development process

• use what you actually want

• no need to fight with assets pipeline
Standalone frontend
• Pros:

• full control on frontend development process

• use what you actually want

• no need to fight with assets pipeline

• SPA loads independently
Standalone frontend
• Cons:

• +1 AJAX request to load data
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment

• dependencies hell management
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment

• dependencies hell management

• coordinate, coordinate, and coordinate again
Standalone frontend
• Cons:

• +1 AJAX request to load data

• you need to coordinate build and deployment

• dependencies hell management

• coordinate, coordinate, and coordinate again

• and don’t forget about API versioning!
Case 1.5. Creepy as hell
(In-Rails JS)
In-Rails JS
• Pros and Cons
In-Rails JS
• Pros:

• Almost nothing
In-Rails JS
• Pros:

• Almost nothing

• Deployed at the same time
In-Rails JS
• Cons:

• Hardly maintainable
In-Rails JS
• Cons:

• Hardly maintainable

• supports only in-browser JSX
In-Rails JS
• Cons:

• Hardly maintainable

• supports only in-browser JSX

• dependencies hell
In-Rails JS
• Cons:

• Hardly maintainable

• supports only in-browser JSX

• dependencies hell

• suits only for very simple SPAs
Case 2. Outdated
(react-rails gem)
react-rails gem
• Pros and Cons
react-rails gem
• Pros:

• fixed react.js version
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering

• components generators
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering

• components generators

• UJS integration
react-rails gem
• Pros:

• fixed react.js version

• server-side rendering

• components generators

• UJS integration

• turbolinks integration
react-rails gem
• Cons:

• fixed react.js version
react-rails gem
• Cons:

• fixed react.js version

• deep integration with assets pipeline
react-rails gem
• Cons:

• fixed react.js version

• deep integration with assets pipeline

• no source maps
react-rails gem
• Cons:

• fixed react.js version

• deep integration with assets pipeline

• no source maps

• forget about “all-in-component” behavior
Case 3. Current
(react_on_rails gem)
react_on_rails gem
• Pros and Cons
react_on_rails gem
• Pros:

• separate SPA folder
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux

• templates for SPAs
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux

• templates for SPAs

• webpack as an app builder
react_on_rails gem
• Pros:

• separate SPA folder

• a lot of helpers for react and redux

• templates for SPAs

• webpack as an app builder

• yarn as a package manager
react_on_rails gem
• Cons:

• separate SPA folder
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working

• complicated documentation
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working

• complicated documentation

• need to wait for upgrade dependencies
react_on_rails gem
• Cons:

• separate SPA folder

• dirty dances to get HMR working

• complicated documentation

• need to wait for upgrade dependencies

• a lot of side-selling in documentation
Case 4. Probably future
(webpacker gem)
webpacker gem
• Pros and Cons
webpacker gem
• Pros:

• easily managed components (via packs)
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box

• integrated into Rails starting from 5.1
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box

• integrated into Rails starting from 5.1

• package.json lives in the same folder
webpacker gem
• Pros:

• easily managed components (via packs)

• works with Turbolinks

• supports hot loading out of box

• integrated into Rails starting from 5.1

• package.json lives in the same folder

• config lives altogether with your app config
webpacker gem
• Cons:

• No server-side rendering
webpacker gem
• Cons:

• No server-side rendering

• SPA is highly integrated into Rails App source code
webpacker gem
• Cons:

• No server-side rendering

• SPA is highly integrated into Rails App source code

• Still needs some setup ceremonies
Different ways of integrating React into Rails - Mikhail Bortnyk
Showtime
Conclusions
Questions?
Thanks!
1 of 76

Recommended

Riding IronRuby on Rails by
Riding IronRuby on RailsRiding IronRuby on Rails
Riding IronRuby on RailsShay Friedman
1.1K views28 slides
Practical IronRuby by
Practical IronRubyPractical IronRuby
Practical IronRubyShay Friedman
766 views25 slides
ASP.NET MVC by
ASP.NET MVCASP.NET MVC
ASP.NET MVCShay Friedman
878 views24 slides
Modern javascript by
Modern javascriptModern javascript
Modern javascriptKevin Ball
1.2K views62 slides
A Day of REST by
A Day of RESTA Day of REST
A Day of RESTScott Taylor
3.2K views50 slides
In-house web automation? by
In-house web automation?In-house web automation?
In-house web automation?Adam Christian
861 views86 slides

More Related Content

What's hot

improving the performance of Rails web Applications by
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web ApplicationsJohn McCaffrey
1.6K views33 slides
AWS Users Meetup April 2015 by
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015Jervin Real
669 views36 slides
How NOT to get lost in the current JavaScript landscape by
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscapeRadosław Scheibinger
1.6K views75 slides
Rapid development with Rails by
Rapid development with RailsRapid development with Rails
Rapid development with RailsYi-Ting Cheng
2.2K views92 slides
Live Coverage at The New York Times by
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York TimesScott Taylor
5.3K views43 slides
Torquebox rubyhoedown-2012 by
Torquebox rubyhoedown-2012Torquebox rubyhoedown-2012
Torquebox rubyhoedown-2012Lance Ball
698 views31 slides

What's hot(20)

improving the performance of Rails web Applications by John McCaffrey
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
John McCaffrey1.6K views
AWS Users Meetup April 2015 by Jervin Real
AWS Users Meetup April 2015AWS Users Meetup April 2015
AWS Users Meetup April 2015
Jervin Real669 views
How NOT to get lost in the current JavaScript landscape by Radosław Scheibinger
How NOT to get lost in the current JavaScript landscapeHow NOT to get lost in the current JavaScript landscape
How NOT to get lost in the current JavaScript landscape
Rapid development with Rails by Yi-Ting Cheng
Rapid development with RailsRapid development with Rails
Rapid development with Rails
Yi-Ting Cheng2.2K views
Live Coverage at The New York Times by Scott Taylor
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
Scott Taylor5.3K views
Torquebox rubyhoedown-2012 by Lance Ball
Torquebox rubyhoedown-2012Torquebox rubyhoedown-2012
Torquebox rubyhoedown-2012
Lance Ball698 views
Ruby Masters 2011 by Fabio Akita
Ruby Masters 2011Ruby Masters 2011
Ruby Masters 2011
Fabio Akita553 views
Taking Micronaut out for a spin by Andres Almiray
Taking Micronaut out for a spinTaking Micronaut out for a spin
Taking Micronaut out for a spin
Andres Almiray644 views
REST In Action: The Live Coverage Platform at the New York Times by Scott Taylor
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York Times
Scott Taylor1.5K views
What I wish I knew about maven years ago by Andres Almiray
What I wish I knew about maven years agoWhat I wish I knew about maven years ago
What I wish I knew about maven years ago
Andres Almiray1K views
WordPress: Getting Under the Hood by Scott Taylor
WordPress: Getting Under the HoodWordPress: Getting Under the Hood
WordPress: Getting Under the Hood
Scott Taylor53.9K views
2015 WordCamp Maine Keynote by Scott Taylor
2015 WordCamp Maine Keynote2015 WordCamp Maine Keynote
2015 WordCamp Maine Keynote
Scott Taylor1.8K views
Deployment Nirvana by Adrian Pike
Deployment NirvanaDeployment Nirvana
Deployment Nirvana
Adrian Pike455 views
淺談 Startup 公司的軟體開發流程 v2 by Wen-Tien Chang
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang38.8K views
An Introduction to the Laravel Framework (AFUP Forum PHP 2014) by daylerees
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
daylerees4.2K views
They why behind php frameworks by Kirk Madera
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
Kirk Madera254 views
Merging two big Symfony based applications - SymfonyCon 2017 by Ivo Lukac
Merging two big Symfony based applications - SymfonyCon 2017Merging two big Symfony based applications - SymfonyCon 2017
Merging two big Symfony based applications - SymfonyCon 2017
Ivo Lukac1K views
Web a Quebec - JS Debugging by Rami Sayar
Web a Quebec - JS DebuggingWeb a Quebec - JS Debugging
Web a Quebec - JS Debugging
Rami Sayar870 views
Transactions and Concurrency Control Patterns - 2019 by Vlad Mihalcea
Transactions and Concurrency Control Patterns - 2019Transactions and Concurrency Control Patterns - 2019
Transactions and Concurrency Control Patterns - 2019
Vlad Mihalcea1.2K views

Viewers also liked

Adventures of a risk arbitrageur by
Adventures of a risk arbitrageurAdventures of a risk arbitrageur
Adventures of a risk arbitrageurSanjay Bakshi
925 views96 slides
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We... by
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...Seth Levine
410 views29 slides
Is Value Investing the “Holy Grail” of financial investing ? by
Is Value Investing the “Holy Grail” of financial investing ?Is Value Investing the “Holy Grail” of financial investing ?
Is Value Investing the “Holy Grail” of financial investing ?Fabio Michetti
2.2K views40 slides
What is Value Investing by
 What is Value Investing  What is Value Investing
What is Value Investing Paresh Thakker
6.9K views31 slides
Angel Investing 101 - Part 1 - Pre-screening by
Angel Investing 101 - Part 1 - Pre-screeningAngel Investing 101 - Part 1 - Pre-screening
Angel Investing 101 - Part 1 - Pre-screeningAli Jafri
2.1K views16 slides
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov by
Machine Learning as a Daily Work for a Programmer- Volodymyr VorobiovMachine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Machine Learning as a Daily Work for a Programmer- Volodymyr VorobiovRuby Meditation
795 views208 slides

Viewers also liked(12)

Adventures of a risk arbitrageur by Sanjay Bakshi
Adventures of a risk arbitrageurAdventures of a risk arbitrageur
Adventures of a risk arbitrageur
Sanjay Bakshi925 views
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We... by Seth Levine
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...
Lets Get Real About Angel Investing Presentation for BSW16 Boulder Startup We...
Seth Levine410 views
Is Value Investing the “Holy Grail” of financial investing ? by Fabio Michetti
Is Value Investing the “Holy Grail” of financial investing ?Is Value Investing the “Holy Grail” of financial investing ?
Is Value Investing the “Holy Grail” of financial investing ?
Fabio Michetti2.2K views
What is Value Investing by Paresh Thakker
 What is Value Investing  What is Value Investing
What is Value Investing
Paresh Thakker6.9K views
Angel Investing 101 - Part 1 - Pre-screening by Ali Jafri
Angel Investing 101 - Part 1 - Pre-screeningAngel Investing 101 - Part 1 - Pre-screening
Angel Investing 101 - Part 1 - Pre-screening
Ali Jafri2.1K views
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov by Ruby Meditation
Machine Learning as a Daily Work for a Programmer- Volodymyr VorobiovMachine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Machine Learning as a Daily Work for a Programmer- Volodymyr Vorobiov
Ruby Meditation795 views
How to be an Angel Investor, Part 3 by Tyler Willis
How to be an Angel Investor, Part 3How to be an Angel Investor, Part 3
How to be an Angel Investor, Part 3
Tyler Willis546.9K views
Aggregate db Lessons Learned H4Dip Stanford 2016 by Stanford University
Aggregate db Lessons Learned H4Dip Stanford 2016Aggregate db Lessons Learned H4Dip Stanford 2016
Aggregate db Lessons Learned H4Dip Stanford 2016
Stanford University131.8K views
Hacking CT Lessons Learned H4Dip Stanford 2016 by Stanford University
Hacking CT Lessons Learned H4Dip Stanford 2016Hacking CT Lessons Learned H4Dip Stanford 2016
Hacking CT Lessons Learned H4Dip Stanford 2016
Stanford University128.6K views
Trace Lessons Learned H4Dip Stanford 2016 by Stanford University
Trace Lessons Learned H4Dip Stanford 2016 Trace Lessons Learned H4Dip Stanford 2016
Trace Lessons Learned H4Dip Stanford 2016
Stanford University125.9K views
Space Evaders Lessons Learned H4Dip Stanford 2016 by Stanford University
Space Evaders Lessons Learned H4Dip Stanford 2016Space Evaders Lessons Learned H4Dip Stanford 2016
Space Evaders Lessons Learned H4Dip Stanford 2016
Stanford University122K views
Peacekeeping Lessons Learned H4Dip Stanford 2016 by Stanford University
Peacekeeping Lessons Learned H4Dip Stanford 2016Peacekeeping Lessons Learned H4Dip Stanford 2016
Peacekeeping Lessons Learned H4Dip Stanford 2016
Stanford University121.5K views

Similar to Different ways of integrating React into Rails - Mikhail Bortnyk

大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会 by
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会Takayuki Kyowa
10.6K views57 slides
Node.JS: Do you know the dependency of your dependencies dependency by
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependencyWim Selles
112 views65 slides
Scaling with swagger by
Scaling with swaggerScaling with swagger
Scaling with swaggerTony Tam
6.2K views39 slides
AJAX & jQuery - City University WAD Module by
AJAX & jQuery - City University WAD ModuleAJAX & jQuery - City University WAD Module
AJAX & jQuery - City University WAD ModuleCharlie Perrins
889 views64 slides
EmberCLI Rails: An Integration Love Story. by
EmberCLI Rails: An Integration Love Story.EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.Jonathan Jackson
1.4K views59 slides
Contributing to rails by
Contributing to railsContributing to rails
Contributing to railsLukas Eppler
399 views29 slides

Similar to Different ways of integrating React into Rails - Mikhail Bortnyk(20)

大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会 by Takayuki Kyowa
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
Takayuki Kyowa10.6K views
Node.JS: Do you know the dependency of your dependencies dependency by Wim Selles
Node.JS: Do you know the dependency of your dependencies dependencyNode.JS: Do you know the dependency of your dependencies dependency
Node.JS: Do you know the dependency of your dependencies dependency
Wim Selles112 views
Scaling with swagger by Tony Tam
Scaling with swaggerScaling with swagger
Scaling with swagger
Tony Tam6.2K views
AJAX & jQuery - City University WAD Module by Charlie Perrins
AJAX & jQuery - City University WAD ModuleAJAX & jQuery - City University WAD Module
AJAX & jQuery - City University WAD Module
Charlie Perrins889 views
EmberCLI Rails: An Integration Love Story. by Jonathan Jackson
EmberCLI Rails: An Integration Love Story.EmberCLI Rails: An Integration Love Story.
EmberCLI Rails: An Integration Love Story.
Jonathan Jackson1.4K views
Contributing to rails by Lukas Eppler
Contributing to railsContributing to rails
Contributing to rails
Lukas Eppler399 views
Windycityrails page performance by John McCaffrey
Windycityrails page performanceWindycityrails page performance
Windycityrails page performance
John McCaffrey2.9K views
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement by Zach Lendon
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
Zach Lendon1.1K views
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014) by Zach Lendon
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Zach Lendon14.9K views
Reactive All the Way Down the Stack by Steve Pember
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the Stack
Steve Pember275 views
Streams API (Web Engines Hackfest 2015) by Igalia
Streams API (Web Engines Hackfest 2015)Streams API (Web Engines Hackfest 2015)
Streams API (Web Engines Hackfest 2015)
Igalia660 views
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno... by DevDay.org
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
DevDay.org391 views
RubyConf China 2015 - Rails off assets pipeline by Florian Dutey
RubyConf China 2015 - Rails off assets pipelineRubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipeline
Florian Dutey199 views
UPenn on Rails intro by Mat Schaffer
UPenn on Rails introUPenn on Rails intro
UPenn on Rails intro
Mat Schaffer823 views
WordPress 4.4 and Beyond by Scott Taylor
WordPress 4.4 and BeyondWordPress 4.4 and Beyond
WordPress 4.4 and Beyond
Scott Taylor58.2K views
My Little Webap - DevOpsSec is Magic by Apollo Clark
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is Magic
Apollo Clark1.7K views
Single Page Application Development with backbone.js and Simple.Web by Chris Canal
Single Page Application Development with backbone.js and Simple.WebSingle Page Application Development with backbone.js and Simple.Web
Single Page Application Development with backbone.js and Simple.Web
Chris Canal5.3K views
Application Deployment at UC Riverside by Michael Kennedy
Application Deployment at UC RiversideApplication Deployment at UC Riverside
Application Deployment at UC Riverside
Michael Kennedy1.1K views
JavaScript Build System Battle Royale | PrDC 2017 by David Wesst
JavaScript Build System Battle Royale | PrDC 2017JavaScript Build System Battle Royale | PrDC 2017
JavaScript Build System Battle Royale | PrDC 2017
David Wesst275 views

More from Ruby Meditation

Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30 by
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30Ruby Meditation
207 views22 slides
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky... by
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Ruby Meditation
462 views141 slides
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29 by
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Ruby Meditation
210 views49 slides
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ... by
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Ruby Meditation
1.6K views59 slides
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 by
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 Ruby Meditation
366 views23 slides
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28 by
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28Ruby Meditation
459 views20 slides

More from Ruby Meditation(20)

Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30 by Ruby Meditation
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Ruby Meditation207 views
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky... by Ruby Meditation
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Ruby Meditation462 views
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29 by Ruby Meditation
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Ruby Meditation210 views
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ... by Ruby Meditation
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Ruby Meditation1.6K views
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 by Ruby Meditation
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
Ruby Meditation366 views
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28 by Ruby Meditation
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
Ruby Meditation459 views
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh... by Ruby Meditation
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Ruby Meditation462 views
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby... by Ruby Meditation
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Ruby Meditation475 views
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio... by Ruby Meditation
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Ruby Meditation320 views
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or... by Ruby Meditation
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
Ruby Meditation285 views
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27 by Ruby Meditation
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
Ruby Meditation1.1K views
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26 by Ruby Meditation
New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
Ruby Meditation577 views
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26 by Ruby Meditation
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Ruby Meditation299 views
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (... by Ruby Meditation
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Ruby Meditation455 views
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26 by Ruby Meditation
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Ruby Meditation204 views
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25 by Ruby Meditation
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25
Ruby Meditation577 views
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita... by Ruby Meditation
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Ruby Meditation511 views
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me... by Ruby Meditation
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Ruby Meditation299 views
Rails App performance at the limit - Bogdan Gusiev by Ruby Meditation
Rails App performance at the limit - Bogdan GusievRails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan Gusiev
Ruby Meditation418 views
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23 by Ruby Meditation
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
Ruby Meditation179 views

Recently uploaded

Future of Learning - Yap Aye Wee.pdf by
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdfNUS-ISS
38 views11 slides
ChatGPT and AI for Web Developers by
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web DevelopersMaximiliano Firtman
174 views82 slides
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTVSplunk
86 views20 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
21 views37 slides
Java Platform Approach 1.0 - Picnic Meetup by
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic MeetupRick Ossendrijver
25 views39 slides
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr TsukurFwdays
40 views31 slides

Recently uploaded(20)

Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by Fwdays
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
Fwdays40 views
Liqid: Composable CXL Preview by CXL Forum
Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum121 views
MemVerge: Past Present and Future of CXL by CXL Forum
MemVerge: Past Present and Future of CXLMemVerge: Past Present and Future of CXL
MemVerge: Past Present and Future of CXL
CXL Forum110 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS23 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman25 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
GigaIO: The March of Composability Onward to Memory with CXL by CXL Forum
GigaIO: The March of Composability Onward to Memory with CXLGigaIO: The March of Composability Onward to Memory with CXL
GigaIO: The March of Composability Onward to Memory with CXL
CXL Forum126 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
AMD: 4th Generation EPYC CXL Demo by CXL Forum
AMD: 4th Generation EPYC CXL DemoAMD: 4th Generation EPYC CXL Demo
AMD: 4th Generation EPYC CXL Demo
CXL Forum126 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
Understanding GenAI/LLM and What is Google Offering - Felix Goh by NUS-ISS
Understanding GenAI/LLM and What is Google Offering - Felix GohUnderstanding GenAI/LLM and What is Google Offering - Felix Goh
Understanding GenAI/LLM and What is Google Offering - Felix Goh
NUS-ISS39 views
CXL at OCP by CXL Forum
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum208 views
Micron CXL product and architecture update by CXL Forum
Micron CXL product and architecture updateMicron CXL product and architecture update
Micron CXL product and architecture update
CXL Forum27 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS32 views

Different ways of integrating React into Rails - Mikhail Bortnyk