Markdown-Based Surveys With Quarto Shiny Documents.

Note: This is still a very early-stage project and not quite production ready, though we’re happy if you’d like to try it out and give us feedback!



This project brings together three open source technologies (Quarto, shiny, and supabase) to create dynamic, markdown-based surveys. Here’s the basic concept:

  1. Design your survey as a Quarto shiny document using markdown and R code.
  2. Render your doc into a shiny app that can be hosted online and sent to respondents.
  3. Store your survey responses in a supabase database.

The {surveydown} R package works in tandem with our surveydown Quarto extension to make everything work. After installing the package, we recommend working from one of our template example surveys to design your own.

See the documentation page to get started making your own surveydown survey!

Background & Motivation

surveydown was created as a markdown-based alternative to platforms like Google Forms, Qualtrics, Survey Monkey, etc. Unlike every other platform, it allows the user to define their entire survey content using markdown and R code, making the survey itself fully reproducible and easy to share and collaborate with others. The resulting shiny app for each survey can be hosted on a number of platforms, like shinyapps.io or huggingface, and the survey data collected is owned by the survey designer in their supabase account. Best of all, everything is open source and free :)

If you’re curious where this whole idea came from, check out this blog post, which outlines more on the general idea and the motivation for it. The post is now outdated in terms of the overall design, but it provides something of an origin story and some of the motivation for developing this project.

TODO List

This is a running list of things we’re working on adding to the project:

  • Question types:

Resources / examples:

  • shinysurveys
  • shinyforms
  • Example of adding JS modules to shiny app (pop up message) - could be useful for adding any number of JS-based features, like pop ups for required questions, JS-based progress bar, etc.

Documentation TODO

Vignettes for each of the following:

Citation Information

If you use this package for in a publication, please cite it! You can get the citation by typing citation("surveydown") into R:

citation("surveydown")