[HN Gopher] WebR - R in the Browser
___________________________________________________________________
WebR - R in the Browser
Author : creata
Score : 95 points
Date : 2025-11-24 15:27 UTC (5 days ago)
(HTM) web link (webr.sh)
(TXT) w3m dump (webr.sh)
| dash2 wrote:
| Impressively, this managed to download the large nycflights13
| library very quickly, and run a regression on its multimillion-
| row data in just a second or two.
| em500 wrote:
| That entire library/dataset is less than 5Mb compressed, which
| is barely larger than the size of modern commercial websites.
| An entire bible in uncompressed plaintext is only about 4Mb
| (compressed about 1Mb). Computers can really handle tons of
| data really fast; we've just become too accustomed to
| inefficiencies everywhere.
| patmorgan23 wrote:
| Yeah modern computers are stupid fast. Like 1000x faster than
| stuff in the 90s, but we squander all that computing power on
| poorly built software.
| juujian wrote:
| Would be interesting to see if we can run shiny entirely client
| side with this.
| georgestagg wrote:
| You can, yes:
|
| https://shinylive.io/r/examples/
| ekianjo wrote:
| Yes, it makes it possible to run Shiny without a Shiny server.
| There are a few limitations but it works well.
| stateofinquiry wrote:
| Impressive how nice this looks, and I am also impressed by how
| quickly it runs. I don't know who did this (could not find any
| "about" info), but kudos on a job well done.
|
| However: Aside from the above, and doing it "because one can", I
| don't understand why anyone would spend the effort to make this.
| R is FOSS software, if you can run a web browser, you can run R
| itself. R is not hard to install or maintain. Running in a web
| browser requires network, and resources on someone else's
| machine.
|
| So, I am a strange combination of impressed with this site and
| confounded trying to figure out why it exists. I'm probably
| missing something.
| fn-mote wrote:
| Use case: teaching classes.
|
| On HN, it seems trivial to install software, but for most
| people it is not.
|
| Also, tablet and Chromebook users.
| levocardia wrote:
| Yes, the first 15-20 min of every programming presentation I
| ever went to was "getting it set up on your computer." Very
| wasteful!
| kevmo314 wrote:
| > Running in a web browser requires network, and resources on
| someone else's machine.
|
| The site is running completely locally. You can disable your
| network in devtools and it will continue to work.
| ekianjo wrote:
| > I don't know who did this
|
| I believe it's George Stagg https://github.com/georgestagg
| apwheele wrote:
| When you want to run stuff client side instead of your server
| is one question to determine.
|
| For R specifically, it is focused on stats/graphing. So if you
| wanted an app where someone could upload data and fit a
| complicated regression model, this would be a good use case.
| (There are probably javascript libraries for regression, but if
| willing to live with the bit of start up lag, worth it for
| anything mildly complicated -- factors in R for example would
| not like to worry about writing my own code in javascript to
| make the design matrix.)
|
| In the case where you run the server, the data has to travel to
| your server, your computer estimates the model, and it sends it
| back. WASM apps this all happens client side.
|
| It is a good use case for dynamic graphs/dashboards as well. If
| the data is small enough to entirely fit in memory, can
| basically have a local interactive session with the data and
| everything will be quite snappy (do not need to continually go
| back and forth with your server to query data).
| electroly wrote:
| This project is brand new to me but I have a use case I'm
| immediately considering, when combined with the "shiny"
| dashboard library as seen here:
| https://shinylive.io/r/examples/
|
| At work we have analysts who sometimes produce web-based
| dashboards for the business to consume. When we had Python
| folks, they used Plotly Dash and we had to host a server for
| them. It's a bit silly--the dashboard just accesses APIs and
| static data, crunches a bit, and renders some HTML. There's no
| inherent need for it to require its own server. There is
| "WebDash" [1] but I have not gotten it to work and it says it's
| alpha quality.
|
| Now that we're getting into R, I don't have any path to
| production for dashboards. I want to avoid getting into another
| Plotly Dash situation where every analyst with a one-time idea
| ends up creating long-term IT burden. Enter WebR: now we only
| need to serve static files. That's a lot easier; I can serve
| essentially an unlimited number of dashboards from existing
| infra this way. Our client machines are beefy with tons of
| headroom and our EC2 instances are as small as possible, so
| shifting work from the server to the client makes sense here.
| I'm gonna try it and see if I've missed something.
|
| [1] https://github.com/ibdafna/webdash
| maxi-k wrote:
| This is an awesome project. We recently used it to build a
| statically hosted EC2 instance comparison website, using this for
| plotting (ggplot2) and DuckDB-Wasm for querying the instance
| data. Only the first page load is slow b/c of all the wasm and R
| packages, but it's fast for interactive querying and plotting and
| was really easy to create.
| carbocation wrote:
| If the URL is public, it would be neat to see if you want to
| share it.
| maxi-k wrote:
| Sure! https://cloudspecs.fyi/ (feedback welcome!)
|
| Since it's now accepted, I guess I can also share the
| accompanying paper [1] about cloud hardware evolution; the
| idea is that every plot in the paper is clickable and opens
| an interactive version of itself. WebR was perfect for this
| use case.
|
| https://www.cs.cit.tum.de/fileadmin/w00cfj/dis/papers/clouds.
| ..
| jansim wrote:
| I love this, thanks for sharing! Linking to interactive
| versions of figures is such a great idea and use of WASM.
| maxi-k wrote:
| Thanks! We hope other papers will adopt the idea as well.
| I think most use either python+matplotlib or R+ggplot for
| figures, so WebR is a real win.
|
| Since it's only static files, you can also imagine
| "reproducibility archives" that you can just run in the
| browser (hopefully) years later w/o installing anything.
| cscheid wrote:
| (Disclosure: I work on https://quarto.org, for the same
| company that the author of WebR works on) Thanks for
| sharing that PDF link. It's so good! Would you be willing
| to write a bit about how you produced that PDF? It's a
| great example of what places like CIDR should be
| encouraging in terms of academic publications.
| maxi-k wrote:
| I didn't know Quarto, it looks interesting, thanks for
| sharing!
|
| cloudspecs encodes the entire state (sql code, R code,
| view state) in the URL compressed and base64 encoded,
| since we wanted to be able to send links around to share
| interesting plots/tables with each other and revisit old
| plots if the data changes, e.g., if new EC2 instances
| come out.
|
| The PDF is produced by good old latex, and the state-in-
| URL mechanism allows us to just use regular hyperlinks
| for the clickable plot. The limit is the max URL length
| browsers allow, but we haven't hit it.
|
| Since we use R+ggplot for research anyway in the local
| environment (emacs+RSS), we just copied the code into
| cloudspecs, then copied the resulting link into latex. So
| a bit of manual work if we want to change the plots in
| the paper.
|
| Let me know if you're curious about specific things or
| want to collaborate. Cheers!
| georgestagg wrote:
| This is great! Thanks for sharing!
| maxi-k wrote:
| Well, based on your username, thanks for WebR! It took an
| hour or two to integrate with our DuckDB-Wasm prototype
| and just worked(TM). Really fantastic.
| gavmor wrote:
| Can R be meaningfully run against datasets small enough to fit in
| the browser?
| harvey9 wrote:
| Yes. There are domains where the data is not web-scale.
| kasperset wrote:
| I use R a lot but I still prefer Javascript libraries for
| interactivity. Javascript libraries feels lot more smoother than
| something like webR. Having said that, it is impressive that R is
| able to transcend in the interactivity with just internet
| browser.
| motohagiography wrote:
| there should be another "browser" with better observability
| features. wasm is turning browsers into a hypervisor for virtual
| machines that run containers for a variety of languages now,
| including R.
|
| great that these products are finding a way, but there seems to
| be an opportunity to do this right.
| droelf wrote:
| Cool! Emscripten-forge also recently got a R distribution that
| runs natively on the browser: https://blog.jupyter.org/r-in-the-
| browser-announcing-our-web...
| tkschmidtme wrote:
| WebR is awesome and I'm trying to use it more and more instead of
| in operating fixed figures (https://tkschmidt.me/posts/dagstuhl-
| problem/). I would really recommend to stay with a fixed webR
| version (and use a CI/CD) process to check if newer versions are
| still compatible with your scripts.
___________________________________________________________________
(page generated 2025-11-29 23:00 UTC)