[!IMPORTANT] surveydown is an early stage project under active development and may not yet be a good fit for you. If you are interested in experimenting with it, we welcome your feedback!
[!NOTE] Visit the main documentation site at surveydown.org for more information!
surveydown is an open-source, markdown-based platform for interactive and reproducible Surveys using R, Quarto, Shiny, and PostgreSQL databases like Supabase.
Here’s how it works:
The {surveydown} R package provides functions to bring this all together.
See the complete documentation to get started making your own surveydown survey!
Most survey platforms (e.g., Google forms, Qualtrics, etc.) use graphic interfaces or spreadsheets to define survey content, making version control, collaboration, and reproducibility difficult or impossible. The surveydown package was designed to address these problems. As an open-source, markdown-based platform, all survey content is defined using plain text (markdown and R code) in two files:
survey.qmd
: A Quarto document that contains the survey
content (pages, questions, etc).app.R
: An R script defining a shiny app that contains
global settings (libraries, database configuration, etc.) and server
configuration options (e.g., conditional skipping / display, etc.).This approach makes your survey easy to reproduce, share, and version control with common tools like Git. And since all survey data is stored in a PostgreSQL database, you have total control over where your survey data lives. We provide direct support for Supabase as a free, secure, and easy to use option.
In case you’re interested in the background behind the project, this blog post provides something of an origin story. Note that the design discussed in the post is now quite outdated with what ultimately became surveydown.
You need both:
We also recommend working with an IDE that has good support for R, Quarto, and Shiny.
RStudio is great, and we also like VSCode and Positron.
You can install {surveydown} from CRAN in your R console:
install.packages("surveydown")
or you can install the development version from GitHub:
# install.packages("pak")
::pak('surveydown-dev/surveydown') pak
Load the package with:
library(surveydown)
You can also check which version you have installed:
::sd_version() surveydown
See our todo repo for a running list of things we’re working on / have already added to the project.
See the License.
If you use this package for in a publication, please cite it! You can
get the citation by running citation("surveydown")
in your
R console:
citation("surveydown")