Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building interactive Ruby gem tutorials with Wa...

Building interactive Ruby gem tutorials with Wasm – yes, right in the browser!

What if you could experiment with a gem instantly? No environment setup, no need to install a library, clone a repo, or read tons of docs. That could accelerate adoption—especially for new gems finding an audience. Well, it's possible! My talk is on bringing Ruby gems into browsers via WebAssembly!

Avatar for Albert Pazderin

Albert Pazderin

September 22, 2025
Tweet

More Decks by Albert Pazderin

Other Decks in Programming

Transcript

  1. Authentication? Authorization? Payments? Pagination? Admin Interface? Devise Pundit Kaminari ActiveAdmin

    ActiveMerchant OmniAuth Sorcery Clearance Authlogic Rodauth CanCanCan ActionPolicy Pagy WillPaginate Administrate RailsAdmin Rolify Acl9 Consul Stripe Pay Braintree ... Paypal Monetize
  2. IDE, Node.js runtime Terminal, file system npm install All in

    the browser, no server attached Zero-setup development experience
  3. Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker)

    WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe Editor
  4. Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker)

    WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker) WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe Editor
  5. Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker)

    WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe Editor
  6. Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker)

    WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe Editor
  7. +

  8. Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker)

    WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe ruby.wasm ?
  9. Web Applicaiton (main JS thread) WebContainer runtime (isolated Web Worker)

    WebContainer API Client Terminal UI Node.js Runtime (V8 based) Virtual File System (in memory) Service Worker (browser-level network proxy) (HTTP Traffic) (HTTP Traffic) Preview Iframe ruby.wasm
  10. What’s it good for? UI component libraries Rails engines &

    admin panels Online courses & tutorials* RubyUI *beware of the WebContainers licensing!
  11. TODO: ▢ UX/DX improvements ▢ Tutorials for Martian gems (action_policy,

    anyway_config, ...) ▢ Other Ruby frameworks (Sinatra, Roda, etc.)
  12. TODO: ▢ UX/DX improvements ▢ Tutorials for Martian gems (action_policy,

    anyway_config, ...) ▢ Other Ruby frameworks (Sinatra, Roda, etc.) ▢ Pure Ruby pipeline