James Balamuta @coatless.bsky.social · 3hOn iPad: File, Code, Run and View menus (hold Command to see them), plus Projects and History in the four-pane view. Everywhere: VoiceOver reads results and errors aloud, and the app respects larger text, reduced motion and higher contrast. 110
James Balamuta @coatless.bsky.social · 3hR can reach the web now. Fetch live data with httr2 and chart it with ggplot2, right on your phone. By default that traffic goes through a small helper running on your own device, not through anyone else's server. 110
James Balamuta @coatless.bsky.social · 3hBig tables open quickly and you can filter, sort and search them. The package list tells you what each package does, and your saved packages load several times faster. 110
James Balamuta @coatless.bsky.social · 3hGot an R script in your email? It opens straight into webRios now, from Mail, Files and other apps. CSV files too. The editor also stays quick on long scripts, with text sizes up to 30 pt. 110
James Balamuta @coatless.bsky.social · 3hCharts you can touch. Interactive plots now open in the app, so you can tap, zoom and pan. Plots you pin stay pinned, even after you close the app. 110
James Balamuta @coatless.bsky.social · 3hPlots can show up right in the Console now, under the code that drew them. Fit a model, plot it, and the chart sits beside the numbers. 110
James Balamuta @coatless.bsky.social · 3hThe big one: a Stop button. Started a loop that never ends? Tap Stop, or press Command-period on a keyboard, and R stops right where it is. Your variables stay put. The old advice, "restart the app", is officially retired. 110
James Balamuta @coatless.bsky.social · 3hWhat's new in webRios 1.2.0, the app that puts R on your iPhone and iPad (and works offline)? A quick tour. #rstats Take a look: webrios.caffeinatedmath.com Download on the App Store: apps.apple.com/app/id675807... 131
James Balamuta @coatless.bsky.social · 07/10/2026webRios 1.2.0 is off to the App Store for review! It's an R editor for iPhone and iPad, built on webR. Now with: R 4.6, a Stop button for runaway loops, plotly and leaflet widgets, and httr2 on the device. Fashionably late to the party, but on its way. webrios.caffeinatedmath.com 1133
James Balamuta @coatless.bsky.social · 04/10/2026No compute server sits behind the site. A static host hands out the files and the reader's browser does the computing, so GitHub Pages, Netlify, Cloudflare Pages or your own web server can publish it. 191
James Balamuta @coatless.bsky.social · 04/10/2026The page is a small workspace, with an editor, an R console, your files and your plots. Visitors run your script, change it, and share their version as a link. Their edits stay in their own browser. There is a live demo to try. coatless-wasm.github.io/webrarian/de... 143
James Balamuta @coatless.bsky.social · 04/10/2026Five steps take a folder to a site. catalog() starts a collection, acquire_package() and acquire_file() fill it, bind() builds the site, reading_room() previews it, and circulate_via_github() sets up publishing on GitHub Pages. Watch it in 100 seconds. youtu.be/Ujoa-zBFKpY 150
James Balamuta @coatless.bsky.social · 04/10/2026webrarian is a new R package. It turns a folder of R scripts and data into a static website where R runs in the visitor's browser, with no compute server and nothing to install. blog.thecoatlessprofessor.com/posts/introd... #rstats #webr #webassembly 516166
James Balamuta @coatless.bsky.social · 27/09/2026Lastly, for the tablet users out there, we've greatly improved the classic four-pane Workspace layout. If you haven't yet, try out webRoid on your Android 15 or later Phone or Tablet! Google Play: play.google.com/store/apps/d... Release write-up: blog.thecoatlessprofessor.com/posts/webroi... 020
James Balamuta @coatless.bsky.social · 27/09/2026webRoid also now allows you to request a "Copy Files Back from R" to sync files to your folders. Plus, you can now tap an excel file opens Import Dataset, which reads Excel once readxl is installed. 100
James Balamuta @coatless.bsky.social · 27/09/2026Starting in webRoid v1.1.1, you can restart R instead of restarting the app! After a minute, a banner says R is still working and offers a fresh session. Your variables in the current session will go away though and need to be redefined! 100
James Balamuta @coatless.bsky.social · 27/09/2026One heads-up before you update... The new R version can’t load R packages installed by the old one. So, the app clears them the first time it opens. A notice lists them, and one tap on Reinstall brings back each one the webR repository has. R on PC requires the same when going from 4.5 to 4.6. 100
James Balamuta @coatless.bsky.social · 27/09/2026webRoid 1.1.1 is on Google Play. The app that runs R on your Android phone or tablet moves up to R 4.6.0, and its charts are now the kind you’re allowed to poke. App: play.google.com/store/apps/d... Docs: webroid.caffeinatedmath.com #rstats #webr #android #webassembly 161
James Balamuta @coatless.bsky.social · 08/09/2026Responses will be delayed for a couple of weeks. 030
James Balamuta @coatless.bsky.social · 01/09/2026Install at the gate, write Python at cruising altitude without worrying about plane wifi. Pyodios 1.1.0 makes it happen with #Python 3.14 via #Pyodide (#WebAssembly) on #iOS 26+. apps.apple.com/us/app/pyodi... 030
James Balamuta @coatless.bsky.social · 10/08/2026Nothing says your niche R Observatory project has made it like a hosting provider gently asking if you are aware you are being attacked. Happy Monday! 270
James Balamuta @coatless.bsky.social · 08/08/2026Every painter has a gpaint_*() twin that returns a real ggplot, so it works with ggsave() and patchwork() like other ggplot2 extension packages. Thus, you get the same drawing either way, in four palettes. 100
James Balamuta @coatless.bsky.social · 08/08/2026Formatting further aims to emphasize magnitude by showing significant figures, but the digits it drops go grey rather than vanishing, so 123456.789 still reads as a bold 123 with a faded 457 with decimals rounded if its a large number. NA is red. Inf is blue. 100
James Balamuta @coatless.bsky.social · 08/08/2026show_indices = 'cell' stamps every matrix cell with the [row, column] that reaches it. Useful when the thing you are explaining is not the values but the addressing. 100
James Balamuta @coatless.bsky.social · 08/08/2026You already know a data frame is a list whose elements happen to share a length. Your students do not. paint_list() and paint_data_frame() draw the same card until one element changes length and the bottom edge goes ragged. That is the lesson, drawn. 100
James Balamuta @coatless.bsky.social · 08/08/2026Every R course has the whiteboard moment where you draw a vector as a row of boxes. {paintr} draws it and writes the accessor in each cell, so the diagram and the code are one object. Now on CRAN. #rstats blog.thecoatlessprofessor.com/software-rel... 1171
James Balamuta @coatless.bsky.social · 24/07/2026Now on CRAN: {livelink}. Hand it a string, a file path, or your clipboard and get back a URL that opens a live R session in the browser, code already loaded. CRAN: cran.r-project.org/web/packages... Release notes: blog.thecoatlessprofessor.com/software-rel... #rstats 0183
James Balamuta @coatless.bsky.social · 21/07/2026{livelink} will also soon be expanded over to Python just after Pyodidarian launches as the later comes with a Pyodide powered Python enhanced 4-panel editor based off of webR's. #pyodide #livelink #python 023
James Balamuta @coatless.bsky.social · 21/07/2026#webR and #Shinylive already share browser-runnable links from their editors. livelink is a small #Rstats wrapper around that idea: build those links from R (scripts & projects) and decode any of them back into files. GH github.com/coatless-rpk... Post blog.thecoatlessprofessor.com/programming/... 092
James Balamuta @coatless.bsky.social · 12/07/2026I know I'm sleeping, 'cause this dream's too amazin' 052
James Balamuta @coatless.bsky.social · 10/07/2026It was part of the underlying rule set in addition to the CRAN cookbook. blog.thecoatlessprofessor.com/programming/... 100
James Balamuta @coatless.bsky.social · 10/07/2026After 2 years collecting dust on GH, peeky has finally peeked out onto CRAN and kept its own release quiet for a week. It downloads & rebuilds the source behind any published #Shinylive app, in #Rstats | #Python CRAN: cran.r-project.org/package=peeky blog.thecoatlessprofessor.com/programming/... 041
James Balamuta @coatless.bsky.social · 10/07/2026The best part of getting on CRAN wasn't the acceptance email. It was the PS. This made my whole week. 010
James Balamuta @coatless.bsky.social · 10/07/2026R CMD check comes back clean. Then CRAN emails you about title case and a missing @ return tag. checktor is in. It catches those before you submit. On CRAN as of last week 7/2! CRAN: cran.r-project.org/package=chec... Blog: blog.thecoatlessprofessor.com/programming/... #rstats 4256
James Balamuta @coatless.bsky.social · 09/07/2026Yes, yes it was a #quarto playground I spied back in the day. Confirmed by @shikokuchuo.net 's #user2026 talk. Quarto levels up via: quarto-hub.com 061
James Balamuta @coatless.bsky.social · 08/07/2026Thanks, we were overprotective regarding periods. data.table and other packages with periods should now show up on search now. 020
James Balamuta @coatless.bsky.social · 08/07/2026That's a slice of it. It's free and works for decently well for many of the 25K packages on CRAN as well as having some Bioconductor support (still improving!), so go look up one you maintain or rely on. r-observatory.thecoatlessprofessor.com 020
James Balamuta @coatless.bsky.social · 08/07/2026R Observatory has pages for authors, not just packages: your published packages, their check results, your overall impact, and a collaborator network graph. Go look up your own. r-observatory.thecoatlessprofessor.com/authors/ 130
James Balamuta @coatless.bsky.social · 08/07/2026ggplot2's license quietly moved from GPL-2 to MIT. R Observatory's version diff catches that, plus minimum R, download size, contributors added or dropped, and how code, tests, and docs grew. r-observatory.thecoatlessprofessor.com/packages/ggp... 110
James Balamuta @coatless.bsky.social · 08/07/2026Then there's the license side. You add one small package, it brings a few of its own, and now a GPL dependency is sitting under your MIT project. RObs walks the whole install tree so you can see the license picture instead of guessing at it. r-observatory.thecoatlessprofessor.com/packages/ggp... 120
James Balamuta @coatless.bsky.social · 08/07/2026On each package page, the call graph is tinted by test coverage: functions green where tests reach them, red where they don't. That needs the package to have tests. covr measures your own coverage; here you can see it for other packages too. r-observatory.thecoatlessprofessor.com/packages/Rcp... 120
James Balamuta @coatless.bsky.social · 08/07/2026The download number everyone cites is a single CRAN mirror. R Observatory also counts conda-forge, Bioconductor, bioconda, r2u, & more, so you see much more of where a package actually gets installed. Still not every source, but well past one mirror. r-observatory.thecoatlessprofessor.com/downloads 221
James Balamuta @coatless.bsky.social · 08/07/2026Checking on an R package usually takes five open tabs: CRAN, GitHub, download counts, reverse deps, check results. R Observatory collects all of that on one page, for every CRAN and Bioconductor package. r-observatory.thecoatlessprofessor.com #rstats 5329
James Balamuta @coatless.bsky.social · 02/07/2026Signing desktop apps is per developer, per platform: macOS needs Apple Developer credentials ($99/yr), Windows a certificate ($100+/yr). We cover Apple but do not develop on Windows, so the demos there trip SmartScreen. Click More info → Run anyway to launch. 000
James Balamuta @coatless.bsky.social · 02/07/2026Five runtime strategies to pick from: offline shinylive (WebR/Pyodide), a bundled interpreter, the system install, auto-download on first launch, or a container. One export() call converts the app and builds the installer for each platform. 110
James Balamuta @coatless.bsky.social · 02/07/2026Try the demos, read the write-up, or browse the code: Demos + docs: r-pkg.thecoatlessprofessor.com/shinyelectron Write-up: blog.thecoatlessprofessor.com/posts/reintr... Source: github.com/coatless-rpk... 130
James Balamuta @coatless.bsky.social · 02/07/2026Turn a Shiny app into a desktop app your users just double-click. shinyelectron wraps #rstats or #Python Shiny in Electron and builds a native installer for macOS, Windows, and Linux, with a runtime of your choice (including a fully offline build). Build locally or in CI. #rshiny #pyshiny 3729
James Balamuta @coatless.bsky.social · 02/07/202673/76. The desktop is coming for your Shiny apps. Or your Shiny apps are coming for the desktop. Hard to tell from in here. Either way, the machines have been at it for an hour and they're almost done. #rshiny #pyshiny #rstats #python 1111
James Balamuta @coatless.bsky.social · 30/06/2026Apparently I shipped Mac versions of my iPhone/iPad apps by leaving a checkbox on. Pyodios #python and webRios #rstats run on macOS now. #WebAssembly really does go anywhere. TIL. 080
James Balamuta @coatless.bsky.social · 27/06/2026@posit.co any chance #P3M download stats could be published like cran-logs.rstudio.com? cran-logs only logs CRAN-mirror source pulls, so the Linux binaries P3M serves (CI, Docker, etc.) are invisible to authors. The API has a downloads field but returns count: 0. #rstats 240