Foundations of Application Development

Author

Freddy Drennan

Published

October 24, 2023

Preface

When I started my first job after college, I had the opportunity to explore whether we should adopt RStudio Connect. We were using DeployR then, but it wasn’t being actively maintained. The R community quickly embraced the newly released plumber package, and we recognized the need to transition. Should we develop our own deployment solution or opt for RStudio’s (now Posit) software?

After about a month of research and experimentation, I set up our API in-house without RStudio Connect, using tools similar to those in ndexr. This was nearly eight years ago. However, communicating the necessity of using NGINX and Docker to scale our application proved challenging, especially for upper management. Despite my efforts and the available budget, the decision was made to outsource the task.

This experience left me feeling somewhat disheartened. After I developed a process for deploying R APIs, I shared it with a well-known member of the R community who later offered a course on “AWS, Shiny, and NGINX.” Seeing my work being commercialized by others was frustrating.

In response, I ventured into creating courses myself, aiming to offer something more substantial. However, I quickly realized that my strengths lay in automating processes, not in creating educational content. The rapidly growing number of online educators on platforms like LinkedIn also influenced my decision to step back from teaching.

My philosophy is simple: if I’m teaching R in production, I should use it in managing my services. I don’t believe in teaching something I don’t practice. This principle has guided the development of ndexr, which leverages AWS to provide tools like load balancers, shiny apps, domain management, and security, all at a lower cost. It’s designed to make setting up a production R system straightforward and accessible.

I’m excited about the future of ndexr. You’ll see new features like multi-domain management on a single server and multiple project deployment and management. The goal is to offer a comprehensive, cost-effective solution that simplifies the use of these tools, backed by the insight of an engineer.

I’m proud of what I’ve accomplished with ndexr over the past year and look forward to its continued evolution.

Links: