Skip to content

Shiny

Using LLMs in Shiny (for R & Python): The Shiny Side of LLMs

You might have seen The Shiny Side of LLMs pop up on the Shiny blog, which is my latest three-part blog series written for anyone who wants to understand what large language models (LLMs) actually do, and how to use them in a Shiny app. It’s a complete (mini?) guide on how to work with LLMs in both Python and R. Why I wrote this series Before we jump into… Read More »Using LLMs in Shiny (for R & Python): The Shiny Side of LLMs

Customizable Select with Chrome 135 (and Shiny!)

Select inputs, aka dropdowns or pickers, show up on nearly every web page or app, but their default look is pretty… basic. Or to put it differently: it’s sometimes even downright ugly. That’s because browsers handle most of their styling, using the system’s native styles, which makes customization tricky. Your normal CSS styling becomes pretty much useless. The usual fix is turning to JavaScript libraries like selectize.js, which Shiny also… Read More »Customizable Select with Chrome 135 (and Shiny!)

Shiny Source Code Explained: Secrets of Observers

Shiny’s reactive system has a few key players, and one of them is observers. The idea is pretty straightforward: whenever there’s a change in a reactive value or input, you want to do something. Shiny observers make that happen. But there’s more than meets the eye: observers have their little secrets! Before we can uncover any secrets, it’s good to take a step back first and focus on what observers… Read More »Shiny Source Code Explained: Secrets of Observers

Shiny Source Code Explained: Shiny Options and Developer Mode

With Shiny options, you can control some of Shiny’s behaviour. And there are many options to choose from: think about setting the host and port, enabling trace options and activating developer mode. What do all these options do, and how is it handled behind the scenes? In this edition of “Shiny Source Code Explained” you will find out!  First, you’ll get to know the various available Shiny options, and how… Read More »Shiny Source Code Explained: Shiny Options and Developer Mode

Shiny Source Code Explained: Busy Indicators

Shiny 1.9 (released in July 2024) comes with a new feature: a spinner overlay on outputs or a page-level pulsing banner that shows up whenever the app is busy. No more boring “faded out” outputs when they are recalculating, but a nice visual cue! Such visual cues improve loading experience for your users, ultimately decreasing perceived waiting time. And that’s what we want! But how does it work? What happens… Read More »Shiny Source Code Explained: Busy Indicators

JavaScript for Shiny: The Ultimate Cheatsheet

Adding custom JavaScript is a great way to give your Shiny application that extra spark. Whether you’re looking to build custom UI components, change the appearance of elements, add animations or leverage external JavaScript libraries: you can do it all! There is a variety of JavaScript methods and events available that help you achieve all of it, and Shiny comes with built-in JavaScript events and functions too. If you want… Read More »JavaScript for Shiny: The Ultimate Cheatsheet

JavaScript for Shiny: A Beginner’s Guide

Shiny is great for building interactive web apps, and the great thing is: you can start building without any JavaScript knowledge at all. That’s the beauty of Shiny. But you might be looking for something more unique: custom UI elements, animations, adjustments to existing components… That’s where JavaScript comes in! With a little help from JavaScript, you can add that extra spark to your app. In this JavaScript for Shiny… Read More »JavaScript for Shiny: A Beginner’s Guide

Shiny Source Code Explained: the use of R6

Did you know you can find several of R’s Object-Oriented Programming (OOP) systems in Shiny? One of them is R6. Shiny uses R6 classes in several places: for setting up the reactive environment, managing a Shiny session, and in functions like reactiveValues and ExtendedTask. So how does it work, and why is R6 being used? Find out in this edition of “Shiny Source Code Explained”!  Objected-Oriented Programming in R When… Read More »Shiny Source Code Explained: the use of R6

Shiny Source Code Explained: Launching the Server

Clicking on the “Run App” button in RStudio will launch your Shiny application. It’s like magic! But ever wondered what goes on behind the code launching your application? In this series, you will dive into the Shiny source code to better understand what happens. The first part was all about the UI, or HTML, side of your Shiny application. This second part is all about the server!  Table of Contents… Read More »Shiny Source Code Explained: Launching the Server

Shiny Source Code Explained: Rendering the UI

Ever wondered what goes on behind the shinyApp function from Shiny? There’s actually a lot happening to turn your UI and server into something that displays and works in the web browser! In this series, you will dive into the Shiny source code to better understand what happens when you click on the “Run App” button. Let’s start with the UI, or HTML, side of your Shiny application.  The Shiny… Read More »Shiny Source Code Explained: Rendering the UI