Build custom Shiny inputs, outputs, and htmlwidgets from scratch — the deep R/JS interface skills that make you the developer who can build what other Shiny devs can't.
Taught by Veerle Eeftink - van Leemput. Included free with AthlyticZ Membership.
Veerle Eeftink - van Leemput
Head of Operations, AthlyticZ
David Granjon, PhD
Senior Curriculum Advisor
Who this is for
Shiny developers who want to go under the hood — custom widgets, JavaScript integration, and htmlwidgets.
Not for you if
You're new to Shiny — build fundamentals first
You never need custom components
You want Python
You want surface-level, not internals
What you leave with
Custom Shiny inputs and outputs, built from scratch
R-to-JavaScript communication over the WebSocket
Your own htmlwidget — an interactive bracket
Package-development discipline for reusable components
The full curriculum
13 sections · 41 lessons. Every section is listed with its lesson count; click any section to see its lessons.
Expand all
01Introduction to the Course2 lessons
1.1Making Outstanding Shiny Apps
1.2Introducing Outstanding User Interfaces by David Granjon
02Package Development2 lessons
2.1The Why and How
2.2Package Development Workflow
03Web Application Concepts3 lessons
3.1The Client-Server Model and HTTP Requests
3.2WebSockets
3.3The Shiny App Lifecycle
Career payoffBuilding custom components makes you the person a Shiny team can’t easily replace.
04Discover Shiny Dependencies3 lessons
4.1Understanding Dependencies in Shiny Applications
4.2Bootstrap
4.3jQuery
05Handle HTML dependencies with {htmltools}2 lessons
5.1Declaring and Attaching Dependencies
5.2Resolving Dependency Conflicts
06JavaScript for Shiny4 lessons
6.1Introduction to JavaScript
6.2jQuery Syntax
6.3Adding JavaScript to Shiny
6.4Using External JavaScript Libraries
Career payoffR-to-JavaScript fluency is rare and directly hireable.
07Communicate between R and JS3 lessons
7.1Data Exchange between R and JS
7.2Sending Messages through the WebSocket
7.3Receiving Messages through the WebSocket
08Managing JS and CSS5 lessons
8.1The Need For Asset Management
8.2Organize Your JS and CSS Files
8.3Bundling Your JS and CSS Code
8.4Bundling Components
8.5Working with npm
09Shiny Inputs6 lessons
9.1Input Bindings
9.2Updating Inputs
9.3Building A Complex Custom Input (Part 1)
9.4Building A Complex Custom Input (Part 2)
9.5Building A Complex Custom Input (Part 3)
9.6Summarizing the Input Lifecycle
10Shiny Outputs2 lessons
10.1Output Functions
10.2Output Bindings
Career payoffYour own htmlwidget is a standout portfolio piece.
11Mastering Shiny Events2 lessons
11.1Exploring Event Types
11.2Custom Loaders
12Design Widgets5 lessons
12.1Introduction to {htmlwidgets}
12.2Building {brackets} with {htmlwidgets}
12.3Advanced techniques in {htmlwidgets} (Part 1)
12.4Advanced Techniques in {htmlwidgets} (Part 2)
12.5Updating Your Widgets
13Course Recap and Next Steps2 lessons
13.1Course Summary
13.2What's Next?
What's included
Lifetime accessEvery module and lesson, yours to keep and revisit, forever.
Posit cloud workspaceA provisioned enterprise IDE and compute. Nothing to install.
Project files and codeEvery notebook, dataset, and finished build, to keep and adapt.
All future updatesNew lessons and refreshes as the tools move, at no extra cost.
Self-pacedStart today, go at your own pace, no cohort to wait for.
Free with MembershipOr get this course and the full catalog with Membership.
Your instructors
Veerle Eeftink - van Leemput
Head of Operations, AthlyticZ
Known for Shiny, Production R, R Consulting
Veerle is the founder of Hypebright and a Shiny enthusiast and software engineer since 2016. After years as a data scientist across multiple industries, she founded Hypebright in 2019 to help professionals leverage the full potential of Shiny: building applications that convey a message and deliver measurable impact. Her philosophy is simple. The best way to learn is by building something real: production-grade tools that tell a story, solve problems, and matter in professional settings. She focuses on bridging the gap between analysis and impact, helping people build tools that are scalable, polished, and built to last.
David joined cynkra in 2023 and holds a PhD in applied mathematics from Universite Pierre et Marie Curie and Universite de Lausanne. He is the founder of the open source RinteRface organization, where he develops Shiny extensions, writes books, and delivers advanced Shiny workshops. David previously worked in the pharmaceutical industry, where he helped design production-ready Shiny apps. He is the creator of shinyMobile, whose 2.0 release was funded by AthlyticZ and developed together with Veerle van Leemput.
Yes. AthlyticZ Membership ($2,999/yr) includes this and the entire course catalog, plus the live Masterclass. If you plan to take more than a couple of courses, Membership is the better math.
Is it self-paced?
Yes. Start today and go at your own pace, with lifetime access to every lesson and all future updates.
Do I need to install anything?
No. You work on the provisioned Posit platform in the browser, on the same enterprise tools professional teams use.
Taking more than one course? Get everything.
This is $1,149. Membership is $2,999/yr and includes it, the full course catalog, 1,000+ lessons, and every live Masterclass — the whole catalog for less than a few courses bought alone.
Build custom Shiny inputs, outputs, and htmlwidgets from scratch — the deep R/JS interface skills that make you the developer who can build what other Shiny devs can't.