This is a collection of some personal projects I’ve worked on that are easily viewable online. Anything that is not browser-friendly will not make the cut :(
I’m also available for consulting, so feel free to contact me if you’d like to work together.
My YouTube channel contains educational videos on various R/Shiny/programming topics for all levels. New content is always added, so make sure to subscribe to know about new videos.
I have an interactive, online video course “Case Studies in Shiny” hosted on DataCamp. It’s designed to give you practice building Shiny apps for real-life scenarios, while also helping your learn some advanced Shiny concepts. At the time of writing, 2.5 years after it was released, this course is the #2 best-rated course on DataCamp.
- Rental Cashflow Calculator - The quickest way to analyze your next investment rental property - written entirely in Shiny.
- CRANalerts - Get email alerts when a CRAN package gets updated - written entirely in Shiny.
Beautiful Jekyll - a very popular Jekyll theme (> 10k websites built) I created when making this website. You can view a demo or use it yourself to make a pretty website similar to this one by visiting the project page. The theme is extremely easy to install - you can have a site up and running in 2 minutes, and it’s designed to look great on both mobile devices and laptops.
R Shiny apps
If you got here after reading some of my blog posts, you’ll know that I’m a big fan and advocate of Shiny. I also run a company providing Shiny consultancy. Unfortunately all my coolest big Shiny apps that were made for clients are private, but you can see a sample of the Shiny apps I’ve built for myself on my Shiny server.
timevis - 📅 Create interactive timeline visualizations in R (can be embedded into Shiny apps and R markdown documents, or simply viewed from the R console). Live demo
colourpicker - 🎨 A colour picker tool for Shiny and for selecting colours in plots. Live demo
shinyalert - 🗯️ Easily create pretty popup messages (modals) in Shiny. Live demo
addinslist - 📜 Browse through a continuously updated list of existing RStudio addins and install/uninstall their corresponding packages.
shinycssloaders - ⌛ Add loading animations to a Shiny output while it’s re-calculating. Originally developed by Andrew Sali, I took ownership in 2019. Live demo
shinybrowser - 🌐 Find out information about a user’s web browser in Shiny apps. Live demo
shinydisconnect - 🔌 Show a nice message when a shiny app disconnects or errors. Live demo
shinyscreenshot - 📷 Capture screenshots of entire pages or parts of pages in Shiny apps. Live demo
ggExtra - 📊 Easily add histograms/density plots to ggplot2 scatterplots, plus a few more ggplot2 convenience functions. Live demo
cometr - ☄️ A convenient R wrapper to the ‘Comet’ API, providing easy interaction with the ‘Comet’ cloud platform for tracking and optimizing machine learning models.
ezknitr - Avoid the typical working directory pain when using ‘knitr’. If you’re into R and reproducible research/generating reports with knitr, then do check it out.
shinyforms - 📝 Easily create questionnaire-type forms with Shiny. Check out a demo online. (In development, looking for funding).
ddpcr - 🔬 Analyze and visualize droplet digital PCR data. Manuscript in F1000Research. Live demo
lightsout - 🔦 An implementation of the puzzle game Lights Out using R. Play the game online
Chrome / Firefox extensions
GitHub Diff Navigator - allows you to easily navigate through the changes in a file that has been edited on GitHub. Especially useful when editing a markdown file within the browser, as GitHub will only show you the full changed file but not show you where the edits were made. I find this very helpful every time I make small edits to someone else’s large markdown document. Install the Chrome extension or Firefox add-on
Cashflow Calculator for Zillow/Trulia/Redfin - Cashflow Calculator extension for Zillow, Trulia, and Redfin (works in Chrome/Firefox/Edge). Install the Chrome extension or Firefox add-on.
Google Slides Auto Resize Speaker Notes - the slide previews in the Speaker Notes window of Google Slides are tiny and unreadable. This extension dynamically resizes the slides based on the window size to make them useful. Get the extension at the Google Web Store
Old School GitHub - GitHub rolled out a brand new UI on June 23, 2020. There are a few aspects of the new UI that I (and many others) don’t like and this extension brings back a few features from the classic GitHub look. Install the Chrome extension or Firefox add-on
Project Free TV Ad Bypass - Project Free TV serves a 10-second ad page before allowing users to continue to the video - this extension bypasses the ad page. Get the extension at the Google Web Store
Smileyfy My Facebook - Chrome extension that adds infinite happiness to your Facebook browsing, plus a little bonus rickrolling :) This is not the most useful (if at all..), but it was a way for me to learn about some more advanced features of Chrome extension development. Get the extension at the Google Web Store
Wish.com - a very popular shopping platform. I was one of the few original developers of the site (before it was even called Wish!) and contributed mostly to the frontend. I was part of Wish’s inception and initial growth, but since then it has grown to be a #1 Android Shopping app, and I can’t claim any credit to that. :)
MakeupBee.com - website for women to discover and talk about interesting makeup applications. Clearly my area of expertise! The site was mostly developed by Brent Francia (CEO) and I, and I was responsible for all aspects of the development, seeing as we were usually a 2-3 person team.
Glittr.com - spin-off of MakeupBee that was designed to be more focused on mainstream looks and have a cleaner feel. I’ve written most of the code for this site.
Jauntr.com - travel site with a social component, that is meant to help users discover and share places to go. It never really took off, but it was my first introduction to web development.
daattali.com - small personal website that I run on a virtual server just because I wanted a place to host my own R Shiny server and RStudio server.
deanattali.com - the site you’re currently on. Just a simple site to have some virtual presence.
- Keynote/main speaker:
- Workshop instructor:
- 2017 RStudio Conf (Orlando, USA)
- 2018 RStudio Conf (San Diego, USA)
- 2019 SER International Seminar on Statistics with R (Rio, Brazil)
- 2019 Open Data Science Conference (San Francisco, USA)
- 2022 New York R Conference (New York, USA)
- Conference talks:
- 2016-08 Simon Fraser University Meetup (Vancouver, Canada)
- 2017-07 Budapest Users of R Network (Budapest, Hungary)
- 2018-05 R Israel Meetup (Tel Aviv, Israel)
- 2018-09 Seattle useR Group (Seattle, USA)
- 2019-04 Toronto R Users Group (Toronto, Canada)
- 2021-01 North East Data Scientists (Newcastle, UK)
Paid writing gigs
- Persistent data storage in Shiny apps - written for RStudio.
- How to Set Up R on Ubuntu 14.04 - written for DigitalOcean.
- How to Set Up Shiny Server on Ubuntu 14.04 - written for DigitalOcean.
- Book reviewer for Learning Shiny.
Organizer of the Toronto R Meetup.
Impact Replays - I participated in a national hackathon (SportsHack15) and won 3rd place with this app. We had to build something that would increase engagement of CFL (Canadian Football League) fans. This app uses play-by-play data from games to let you focus on just the action moments of games.
Settlers of Catan Turn Analyzer - You really think that 4 came up more than the 8? Tired of everyone “wrongly” claiming you take the longest turns? Only one way to find out!
Minesweeper - tiny Minesweeper game I built as part of the interview process with Airbnb. It’s not fancy at all, but it’s the best I could do in the two hours they allotted me back in the day.
Building your own portable oldies gaming console - I bought a raspberry pi and turned it into an awesome portable gaming console that supports SNES/PS1/GameGear/GameBoy. Super cool.
I have several cool Java games I wrote, but I currently don’t have a way to host the applet online without paying way too much money to buy a certificate. I might find a way around that in the future.